gpt4 book ai didi

spring - 为什么我不能将 Spring Environment 对象注入(inject)到我的 bean 中?

转载 作者:行者123 更新时间:2023-12-04 18:31:23 24 4
gpt4 key购买 nike

我在使用 Spring 框架的 Java 应用程序中遇到以下问题。

所以我有以下情况,进入root-context.xml配置文件我有这个bean配置:

<!-- Definition for datiPianiInterventiDaoImpl bean -->
<bean id="datiPianiInterventiDaoImpl" class="it.myCompany.myclient.batch.dao.DatiPianiInterventiDaoImpl">
<property name="dataSource" ref="dataSource" />
</bean>

好的,所以它工作正常,这个 bean 被正确创建并且工作正常。

问题是现在在这个 bean 中我还必须注入(inject) org.springframework.core.env.Environment Spring 类的实例。

所以我尝试这样做:

public class DatiPianiInterventiDaoImpl implements DatiPianiInterventiDao {

@Autowired
private Environment env;

...................................................
...................................................
...................................................
}

但这似乎行不通,因为当我执行我的应用程序时,Environment env 的值是 null

@Autowired 已激活,因为我在项目的其他类中使用了此注解。

那么可能是什么问题?我在想这可能取决于我将我的 bean 定义为 id="datiPianiInteventiDaoImpl" 到我的 root-context.xml 中(在这里我也在定义注入(inject)此 bean 的依赖项)。

所以也许我不能将 XML 依赖注入(inject)与 @Autowired 混合使用?

怎么了?我错过了什么?如何正确地将 Environment 实例注入(inject)到此类中?

最佳答案

Environment 为空的可能原因:

  • 您在 Environemnet 类顶部缺少 @Component/@Service 注释。
  • 您使用 new 运算符在某处创建了 DatiPianiInterventiDaoImpl 类的实例。
  • 您的输入:是否与正确的软件包库相对应?
  • 我假设 annotation-config 存在,因为 @Autowired 在其他地方工作。
  • 尝试使用 @Service 注释您的 DatiPianiInterventiDaoImpl

关于spring - 为什么我不能将 Spring Environment 对象注入(inject)到我的 bean 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35577242/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com