csc*_*aba 11 java spring annotations autowired
也许,由于我的英语错误,我无法理解使用@Autowired注释的好处.
根据教程,我们可以通过@Autowired将第一个(I.)案例简化为第二个案例(II.).
我的问题是,@ Autowired是什么意思?因为它不再告诉,因为不使用@Autowired,编译器可以根据声明得出"EmpDao emDao"和"EmpManager"密切相关.
从这里引用的代码
一世.
<bean id="empDao" class="EmpDao" />
<bean id="empManager" class="EmpManager">
<property name="empDao" ref="empDao" />
</bean>
public class EmpManager {
private EmpDao empDao;
public EmpDao getEmpDao() {
return empDao;
}
public void setEmpDao(EmpDao empDao) {
this.empDao = empDao;
}
...
}
Run Code Online (Sandbox Code Playgroud)
II.
<context:annotation-config />
<bean id="empManager" class="autowiredexample.EmpManager" />
<bean id="empDao" class="autowiredexample.EmpDao" />
import org.springframework.beans.factory.annotation.Autowired;
public class EmpManager {
@Autowired
private EmpDao empDao;
}
Run Code Online (Sandbox Code Playgroud)
Boz*_*zho 11
@Autowired是特定于春天的.@Inject是标准的等价物.它是一个注释,它告诉上下文(春天,或者在@Inject任何DI框架的情况下)尝试将对象设置到该字段中.
编译器与此无关 - 它是在运行时实例化对象的DI框架(spring),然后在您指定的点处设置它们的依赖关系 - 通过XML或通过注释.
我同意DI框架可能会尝试将依赖项注入所有字段,即使它们没有注释.(如果要排除特定字段,请对其进行注释).但是他们选择了另一种策略(配置超过惯例).顺便说说:
| 归档时间: |
|
| 查看次数: |
19534 次 |
| 最近记录: |