您是否熟悉xml是如何完成的?這是非常相似的。
以下爲SomeDao
一個例子中的XML被設置成與Dep1
(通過構造注射)和Dep2
(通過setter注入):
<bean id="someDao" class="com.example.SomeDao">
<constructor-arg ref="dep1"/>
<property name="dep2" ref="dep2"/>
</bean>
<bean id="dep1" class="com.example.Dep1" />
<bean id="dep2" class="com.example.Dep2" />
在JavaConfig此相同的例子被配置爲這樣:
@Configuration
public class DAOConfiguration {
@Bean(name = "someDao")
public SomeDao someDao() {
final SomeDao someDao = new SomeDao(dep1());
someDao.setDep2(dep2());
return someDao;
}
@Bean(name="dep1")
public Dep1 dep1() {
return new Dep1();
}
@Bean(name-"dep2")
public Dep2 dep2() {
return new Dep2();
}
}
所有這三個bean仍然使用ApplicationContext
進行註冊,因此您可以將這三個bean自動裝配到另一個類中,如下所示:
@Controller
public class MyController {
@Autowired
private SomeDao someDao;
@Autowired
private Dep1 dep1;
//...some methods
}