在 Spring 中是否可以仅 Autowiring 构造函数的特定参数?
我定义了:
<bean class="MyClass">
<constructor-arg name="name" value="object name" />
</bean>
与:
public class MyClass{
private String name;
private MyDAO dao;
@Autowired
public MyClass(String name, MyDao dao){
// assign...
}
// ...
}
现在我想要 Autowiring MyDao
对象,同时显式定义 name
参数。
可能吗?
使用 XML 定义 bean 需要手动定义所有参数?
最佳答案
你不能用 Autowiring 的构造函数来做到这一点,因为它会影响所有参数,但你可以这样做:
public class MyClass{
private String name;
@Autowired
private MyDAO dao;
public MyClass(String name){
// assign only name
}
// ...
}
这类似于为 DAO 设置一个 setter,但您不会在您的类中公开该公共(public) setter。
关于java - 仅 Autowiring 构造函数的某些参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11346205/