首页 > 解决方案 > @Configuration 中的逻辑

问题描述

您认为,是否允许在标记为@Configuration 的类中使用逻辑,因为该逻辑在应用程序开始时仅应用一次。例如:我们要配置缓存,为此,我们需要在标记为@Configuration 的类中进行几次注入,编写一些方法来创建缓存并添加@PostConstract。

不在@Service 或@Component 中,而是在@Configuration 中编写这样的东西有多合法?如果它很糟糕,那为什么?

@Configuration
public class SomeClass {

@Resource
private SomeCacheManager someCacheManager;

@Resource
private SomeCacheEvictor someCacheEvictor;


@PostConstruct
public void init(){
    createCache("Some cache");
    createCache("Other");
    createCache("More");
    ...
}


public void createCache(String cacheName){
    /*
    Some code to create cache
     */
}

}

标签: javaspring

解决方案


这可能会变得非常主观。但是,在我看来,配置应该是直截了当且无条件的。控制动态类型以及注入什么的逻辑应该导出到工厂 bean。这是一个示例https://howtodoinjava.com/spring-core/how-to-create-beans-using-spring-factorybean/amp/


推荐阅读