Spring框架构造注入type属性实例详解
这篇文章主要介绍了Spring框架构造注入type属性实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
进行测试,验证一个问题,废话不多说了,上代码进行比较
package service.impl;
import service.UserService;
import dao.UserDao;
import entity.User;
/**
* 用户业务类,实现对User功能的业务管理
*/
public class UserServiceImpl implements UserService {
// 声明接口类型的引用,和具体实现类解耦合
private UserDao dao;
private String s1;
private String s2;
private int i1;
// 生成无参构造方法
public UserServiceImpl() {
}
// 带参数构造方法 为dao进行赋值
public UserServiceImpl(UserDao dao) {
this.dao = dao;
}
public UserServiceImpl(UserDao dao,String s1) {
this.dao = dao;
this.s1=s1;
}
public UserServiceImpl(String s2,UserDao dao) {
this.dao = dao;
this.s2=s2;
}
public UserServiceImpl(int i1,UserDao dao) {
this.dao = dao;
this.i1=i1;
}
public UserDao getDao() {
return dao;
}
// dao 属性的setter访问器,会被Spring调用,实现设值注入
public void setDao(UserDao dao) {
this.dao = dao;
}
public void addNewUser(User user) {
// 调用用户DAO的方法保存用户信息
dao.save(user);
System.out.println("s1="+s1);
System.out.println("s2="+s2);
System.out.println("i1="+i1);
}
}
核心配置文件:
<bean id="UserService" class="service.impl.UserServiceImpl">
<!--通过构造函数的方式,实现构造注入 -->
<constructor-arg>
<ref bean="userDao" />
</constructor-arg>
<constructor-arg>
<value>123</value>
</constructor-arg>
</bean>
运行结果:
保存用户信息到数据库
s1=null
s2=123
i1=0
由此可见,是没有附上值的 ,为i1变量
解决办法:对核心配置文件进行修改,使用type属性,指定数据类型
运行结果:
保存用户信息到数据库
s1=null
s2=null
i1=123
以上是 Spring框架构造注入type属性实例详解 的全部内容, 来源链接: utcz.com/z/312227.html