我是 Java 配置的新手。我有这样的代码。SomeDao 有自己的依赖,既然我们在做new,难道不应该设置依赖吗?有人可以帮我理解这段代码吗?
@Configuration
public class DAOConfiguration {
@Bean(name = "someDao")
public SomeDao someDao() {
return new SomeDao();
}
我是 Java 配置的新手。我有这样的代码。SomeDao 有自己的依赖,既然我们在做new,难道不应该设置依赖吗?有人可以帮我理解这段代码吗?
@Configuration
public class DAOConfiguration {
@Bean(name = "someDao")
public SomeDao someDao() {
return new SomeDao();
}
您熟悉如何在 xml 中完成此操作吗?与此极为相似。
下面是在 xmlSomeDao
中配置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
too,所以你可以将所有这三个 bean 自动装配到另一个类中,如下所示:
@Controller
public class MyController {
@Autowired
private SomeDao someDao;
@Autowired
private Dep1 dep1;
//...some methods
}