首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring @Autowired注解

Spring @Autowired注解
EN

Stack Overflow用户
提问于 2016-09-02 19:47:48
回答 1查看 138关注 0票数 0

Spring @Autowired

我对Spring @Autowired annotation.Please帮助有疑问.

在Spring中,当我尝试按以下顺序使用@Autowired时

控制器->服务

在控制器中,我自动定义了Service对象,在Service中使用了自动Dao对象。

这个注射链工作得很好。

在strutrs2+Spring中,我用这种方式应用了@ Annotation

操作->服务->Dao

这个注射链也很好。

如果我从这个链的外部调用一个函数(例如:定制的Taglib类(从jsp)到Service类中的funtion,那么在这个Service类中,自动发布的dao对象是空的(也就是说,这个调用会阻止这个链)。

我的问题是

:这是只在注入链中的@Autowired作品吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-02 20:44:38

具有@Autowired字段的Bean只有在通过发送它们时才设置它们--也就是说,就像您所说的,如果您自己对它们进行自动测试。这是构造函数注入比字段注入更受欢迎的一个重要原因。而不是做

代码语言:javascript
复制
@Service
public class MyService {
     @Autowired
     private MyDao dao;

     ...
}

你应该这样做

代码语言:javascript
复制
@Service
public class MyService {
    private final MyDao dao;

    @Autowired
    public MyService(MyDao dao) {
        this.dao = dao;
    }
}

这样,当您无法依赖服务进行后处理时(例如使用jsp标记库),您可以简单地用MyDao对象实例化一个新实例,并在您的愉快的过程中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39299746

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档