Bean的依赖注入分析Bean的依赖注入概念Bean的依赖注入方式
set方法
另一种写法 构造方法 Bean的依赖注入的数据类型
普通数据类型集合数据类型总结
Bean的依赖注入分析
构造方法set方法 set方法
在UserServiceImpl中创建私有的userDao和一个setUserDao方法,传入UserDao对象参数。
然后在bean中加上相应的属性标签property,name是set后面的那部分,ref是对象引用上面那个bean的唯一标识,即userDao
另一种写法
在beans标签中加入命名空间p
然后bean中就可以直接使用p属性
但是这种方法没有上一种那么推荐,如果注入的很多的话可读性就会变差。
构造方法在UserServiceImpl中新建两个构造方法,一个带参一个不带
public UserServiceImpl(UserDao userDao)
{
this.userDao = userDao;
}
public UserServiceImpl() {
}
然后在bean中配置
Bean的依赖注入的数据类型
上面的操作,都是注入的引用Bean,除了对象的引用可以注入,普通数据类型,集合等都可以在容器中进行注入。
之前演示的都是引用数据类型,现在来看普通和集合数据类型的注入
private String username;
private int age;
public void setUsername(String username) {
this.username = username;
}
public void setAge(int age) {
this.age = age;
}
bean中
集合数据类型
在UserDaoImpl类中新增
private ListstrList; private Map userMap; private Properties properties; public void setStrList(List strList) { this.strList = strList; } public void setUserMap(Map userMap) { this.userMap = userMap; } public void setProperties(Properties properties) { this.properties = properties; }
在总包下新建domain.User类
package com.itheima.domain;
public class User {
private String name;
private String addr;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddr() {
return addr;
}
public void setAddr(String addr) {
this.addr = addr;
}
}
在bean中通过property注入
总结
aaa bbb ccc ppp1 ppp2 ppp3
注意:这里property标签中的name属性是set注入时setXXX方法中的XXX



