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

回到顶部