Spring3 @autowire解释?

时间:2011-12-15 14:53:02

标签: java spring

我一直在阅读Spring 3的教程 http://www.vaannila.com/spring/spring-annotation-controller-1.html

但是我对spring3的autowired功能有一个疑问。

如果您查看网站上提供的示例代码,则会在@Autowired方法之前使用setUserService。 现在我有几个问题。

  1. 这是使用autowire的标准吗?那就是创建一个接口,实现它的方法,最后在你的控制器类中使用接口类的setter方法。

  2. 如果我以这种方式使用autowire,我得到的好处是什么?

  3. 使用autowire的替代代码是什么?

1 个答案:

答案 0 :(得分:1)

  

0.1。这是使用autowire的标准吗?那就是创建一个接口,实现它的方法然后最后在你的控制器类中使用接口类的setter方法。

是的,这是或多或少的标准方式,但这只是一个惯例。 Some认为这是一种不好的做法。 Spring没有以任何方式强制执行(但如果不使用接口,可能会被迫将CGLIB添加到依赖项中)。

  

0.2。如果我以这种方式使用autowire我得到的好处是什么?

不知道那是什么意思,但仅举几个好处:更容易测试,解耦,减少基础设施代码......

  

0.3。什么是使用autowire的替代代码?

同样,很难说替代代码是什么意思。还有很多其他技术:您可以使用XML,@Configuration@Resource@Inject,(可能很少有其他 ats ),构造函数注入,字段注入, setter injection(教程中的那个),直接从BeanFactory ...

查找Spring bean