spring属性的配置注入
三种简单属性的配置注入
1、se方式注入
一个User对象,想通过set方法注入,那么在User中我们首先要提供set方法
然后在Spring配置文件中做如下配置:
代码测试:
ApplicationContext context = new ClassPathXmlApplicationContext("");
通过上下文获取管理bean的实例
测试结果: 张三
2、构造方法注入
有一个User1,User1中有一个变量叫做username,我希望通过构造方法给它注入值,那么在User1中提供相应的构造方法即可
然后在Spring配置文件中做如下配置:
这里配置的是constructor不再是property
代码测试:
测试结果:李四
3、p名称空间注入
有一个User2对象,User2中有一个username属性,我为该属性提供了set方法,我们来看看如何在配置文件中通过p名称空间进行注入
然后在Spring配置文件中做如下配置:
p名称空间注入需要在配置文件中添加p名称空间约束:
xmlns:p=“http://www.springframework.org/schema/p”
代码测试:
测试结果:王五
几种复杂属性的配置注入
1、对象的注入
这算是开发中最最常用的注入了。举一个常见的使用场景,我们在Dao层进行数据库的操作,在Service层进行业务逻辑操作,那我在Service中需要有一个Dao实例,UserService 中提供set方法,通过set方法进行注入:
Dao层:
Service层:
配置文件
将userDao注入到你的userService,就是说,你的UserService将要调用你的id为userDao所指向的class
< property name=“userDaoImpl” ref=“userDao” />
相当于
class UserService{
UserDAO userDAO = new UserDAOImpl();
}
代码测试:
测试结果:获取数据了
2、 数组注入&List集合注入&Map注入&Properties注入
有一个User3
配置文件:
测试代码:
测试结果:
张三、李四、王五
足球、篮球、乒乓球
key:username;value:张三,key:password;value:123,
赵六
spring属性的注解注入
1、简单属性值的注解注入
@Service // 需要被注入属性值的类需要被Spring管理
// 利用@Value注解,即使没有该属性或者属性文件也不会报错
// @Value输入属性值name,默认值xydefault
配置:
#src/main/resource新建文件info.properties
name=xy1
num=101
type=1
2、利用标签注入复杂属性
配置:
#src/main/resource新建文件info2.properties
name=xy2
num=102
type=2