
构造函数依赖注入在 Spring 配置类中的隐患
在 Spring 中使用 @C%ignore_a_1%nfiguration 注解的类通常用于定义配置信息。近期有开发者在使用 @Configuration 类时采用了一种特殊的写法,即在构造函数中直接进行数据库查询获取配置数据。此写法引起了 IDE 的警告,提示无法自动装配 ConfigMapper 类型的 Bean。然而,代码却能正常运行并成功获取数据。
值得注意的是,这种写法确实存在一定的隐患:
Lessie AI
一款定位为「People Search AI Agent」的AI搜索智能体
297 查看详情
概念不一致:@Configuration 注解通常用于定义配置信息,而不适合用来进行业务逻辑。将其用于构造函数依赖注入违背了 Spring 的设计原则。IDE 警告:IDE 的警告表明 Spring 无法自动装配 ConfigMapper Bean,这意味着该写法可能会在某些场景下引发问题。Spring 初始化方式多样:Spring 提供了多种方式进行 bean 初始化,例如 InitializingBean、@PostConstruct、ApplicationRunner 等。使用这些标准初始化方式可以保证代码的可维护性和可预测性。
考虑到这些隐患,建议使用以下更合适的初始化方式:
使用 @PostConstruct 注解:可以在类中定义一个 @PostConstruct 方法,在该方法中进行数据库查询获取配置数据。实现 ApplicationRunner 接口:可以实现 ApplicationRunner 接口并重写 run() 方法,在该方法中进行数据库查询获取配置数据。使用 @Configuration + @Bean:可以在 @Configuration 类中定义一个 @Bean 方法,在该方法中创建一个 ConfigMapper 实例,并返回该实例。Spring 容器会在启动时自动实例化该 Bean。
总之,为了避免隐患,建议在 Spring 配置类中使用 Spring 提供的标准初始化方式,而不是在构造函数中直接进行依赖注入。
以上就是Spring 配置类中构造函数依赖注入的隐忧是什么?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/810405.html
微信扫一扫
支付宝扫一扫