繁体   English   中英

如何在基于Java的配置中使用@Autowired?

[英]How to use @Autowired with Java-based config?

我在我的项目中使用基于Java的Spring配置,在@Configuration中的@Bean注释方法中指定了bean的构造。 最近,最近,我开始认为也许最好使用@Autowired从@Configuration中删除所有不重要的bean,而只保留其中的一小部分“ root”(关键服务和技术bean,例如那些Spring MVC)。

不幸的是,似乎Spring只能注意到@Autowired依赖项的实现,只要它们位于组件扫描的包中,而我不能不借助某些XML而这样做。

是否可以在不显式指定每个bean的情况下将@Autowired用于基于Java的配置?

如果我对您的理解正确,那么您期望Spring根据对Dao接口的自动连接依赖关系自动发现DaoImpl类。

这不会发生-您要么需要使用组件扫描,要么需要显式声明bean为<bean>@Bean

这样做的原因是Java没有提供机制来发现实现给定接口的类,而类加载器只是无法正常工作。

如果要通过dao实现Idao,并且希望通过@Autowire将该依赖项转换为引用变量...,则需要首先:定义bean,以便您(在Java Based Config中)只需将impl类返回到接口。 Bean名称就是您的方法名称。

自动接线时,它将在您要自动接线的参考变量和声明之间搜索匹配的名称。

那你会没事的。 希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM