在Spring中是否可以只自动连接构造函数的特定参数?
我定义:
<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...
}
// ...
}
现在我想自动连接MyDao
对象,同时显式定义name
参数。可以吗?
使用XML定义bean需要手动定义所有参数?
5条答案
按热度按时间kh212irz1#
你不能用autowired构造函数这样做,因为它会影响所有的参数,但是你可以这样做:
这类似于为DAO提供一个setter,但是您没有在类中公开这个公共setter。
nwnhqdif2#
如果我没理解错的话,您是在问是否可以连接到在上下文中其他地方定义的MyDao示例,并为name参数提供硬编码的字符串值。
以及上下文文件中的其他位置
nkkqxpd93#
看来你应该把@Autowired加到MyDao道上;声明,然后将构造函数更改为只接受名称参数。您将自动能够访问MyDao
guicsvcw4#
您可以使用Java Config完成此操作。
cpjpxq1n5#
参考此链接:
static.springsource.org/spring/docs/3.0.x/reference/beans.html#beans-autowired-annotation-qualifiers