我在使用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中我还要注入一个 org.springframework.core.env.Environment Spring类的内容。
所以我试着这样做:
public class DatiPianiInterventiDaoImpl implements DatiPianiInterventiDao {
@Autowired
private Environment env;
...................................................
...................................................
...................................................
}
但它似乎无法运作,因为当我执行我的应用程序时,环境环境的值为 null 。
@Autowired 已激活,因为我在项目的其他类中使用此注释。
那么可能是什么问题?我想也许这可能取决于我将 id =&#34; datiPianiInteventiDaoImpl&#34; 定义到我的 root-context.xml (和这里我也定义了注入这个bean的依赖项)。
所以也许我不能将XML依赖注入与使用 @Autowired 混合使用?
有什么问题?我错过了什么?如何正确地将环境实例注入此类?
答案 0 :(得分:5)
环境的可能原因为空:
答案 1 :(得分:2)
将XML依赖注入与@Autowired的使用混合没有问题。只要你的bean被spring bean工厂扫描,这是一个有效的语法。自动装配环境到Dao classe有问题,看看dave写了什么here,你可以在这个链接中找到解决方案(另一个答案)