java - @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
*/
}
}
解决方案
这可能会变得非常主观。但是,在我看来,配置应该是直截了当且无条件的。控制动态类型以及注入什么的逻辑应该导出到工厂 bean。这是一个示例https://howtodoinjava.com/spring-core/how-to-create-beans-using-spring-factorybean/amp/
推荐阅读
- sql - 在googlesql中按百分位查询收入
- ios - UIContextualAction 显示 UIMenu
- python - xgboost 分类器中的测试集错误不会减少
- azure - Azure Active Directory 组和组成员限制
- typescript - 将函数作为参数并返回与输入函数具有相同类型的函数的正确类型是什么?
- c# - 将参数传递给 EntityFramework Core
- android - Flutter[firebase_storage] 无法使用 Flutter 在 iOS 14+ 上上传图片
- java - 在Java中用一位数字解析月份中的某一天
- c - CMake 没有制作 makefile
- node.js - Nginx 后面的 Node JS 内部错误日志