java - 没有 Autowiring 注释的Spring注入(inject)

标签 java spring dependency-injection annotations autowired

我找到了一些答案:https://stackoverflow.com/a/21218921/2754014关于依赖注入(inject)。没有像 @Autowired 这样的注释, @Inject@Resource .假设此示例没有任何 XML 配置 TwoInjectionStyles bean(除了简单的 <context:component-scan base-package="com.example" />

不指定注解注入(inject)是否正确?

最佳答案

从 Spring 4.3 开始,构造函数注入(inject)不再需要注解。

public class MovieRecommender {

    private CustomerPreferenceDao customerPreferenceDao;

    private MovieCatalog movieCatalog;

    //@Autowired - no longer necessary
    public MovieRecommender(CustomerPreferenceDao customerPreferenceDao) {
        this.customerPreferenceDao = customerPreferenceDao;
    }

    @Autowired 
    public setMovieCatalog(MovieCatalog movieCatalog) {
        this.movieCatalog = movieCatalog;
    }
}

但是你仍然需要 @Autowired 来进行 setter 注入(inject)。我刚才检查了 Spring Boot 1.5.7(使用 Spring 4.3.11),当我删除 @Autowired 时,bean 没有被注入(inject).

关于java - 没有 Autowiring 注释的Spring注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46523305/

相关文章:

java - 发送图像文件时如何修复 NetworkOnMainThreadException

java - Tomcat - Eclipse - 尝试访问我的 webapp 时出现 404 错误

java - 如何将文件从表单复制到我的根 Web 应用程序 Java EE

java - Hibernate:如何在删除拥有的实体后更新父行

java - 为什么以下带有 mongodb 的 Spring Boot + HATEOAS 不起作用(MarshalException)?

java服务400错误请求错误

java - Spring Autowiring 不起作用

scala - Play 2.4 Scaldi WS 测试

java - 按需实例化 Spring beans,而不是在启动时实例化

c# - 根据触发解析的父树解析参数?