关于Spring静态注入属性的另一种优雅的方法

匿名 (未验证) 提交于 2019-12-02 23:55:01

以前使用的静态注入的方法都是通过@PostConstruct来实现的。

方法可行,也挺方法,但是有一个问题就是会报sonar。

因为调用类的实例方法去给静态常量赋值是不允许的。

公司严格要求Sonar,禁止出现新增坏味道,所以这个方法必须改,而且在后期也要对历史代码进行修改。

查阅资料找到一个新的方法。新的思路为在容器初始化之后,对静态常量进行赋值。

@Component public class TableConfig implements ApplicationListener<ContextRefreshedEvent> {    @Autowired    private ApplicationContext applicationContext;    @Override    public void onApplicationEvent(ContextRefreshedEvent contextRefreshedEvent) {       DataTableCleanUtil.setDbUnitCleanTableDao((DBUnitCleanTableDao) applicationContext.getBean("DBUnitCleanTableDao"));    } }

调用DataTableCleanUtil的set方法来注入,这样就不会出现坏味道了

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!