目录
一、属性注入
给属性设置值
1.1 set注入
属性类需要提供set方法
1.2 构造注入
属性类需要提供构造方法,以重载的形式存在
1.3 P名空间注入
引入p名称空间约束完成属性值的注入
xmlns:p="http://www.springframework.org/schema/p"
QueryItem.java
public class QueryItem {
private int qid;
private Product product;
//get、set方法
}
结果:
1.4 SpEL注入
一种类似EL表达式的注入方式#{内容},括号里面可以是字符串、表达式、比较运算(结果Boolean) ---参考文章
1.5 复杂类型注入
数组、list集合、set集合、map集合
数组类型:
application.xml
<!--数组类型-->
<bean id="query1" class="com.jc.entity.QueryItem">
<property name="arr">
<!--list和array均可-->
<list>
<value>小红1</value>
<value>小红2</value>
<value>小红3</value>
</list>
</property>
</bean>
QueryItem.java
加上arr数组属性private String []arr;
TestApplication
@Test
public void testIOC(){
ApplicationContext applicationContext=new ClassPathXmlApplicationContext("application.xml");
// Product product = (Product) applicationContext.getBean("product");
// QueryItem queryItem = (QueryItem)applicationContext.getBean("query");
QueryItem queryItem1 = (QueryItem)applicationContext.getBean("query1");
// System.out.println(product);
// System.out.println(queryItem);
for (String s : queryItem1.getArr()) {
System.out.println(s);
}
}
结果:
集合类型:
二、DI注入
DI注入属于属性注入的一种特殊情况。当注入的类型是恰好是一个对象,并且该对象也是由Spring的<bean>管理的,我们就称之为依赖注入(DI)。
常见于dao和service之间,service需要调用dao方法就要创建dao对象,而这个对象是Spring创建的,依赖于之前创建的dao。
三、分模块配置
开发中非常常见的一种模式,因为多人对同一个文件进行修改容易产生冲突。
- 每个人都有一个Spring的配置文件
- 由一个统一的Spring文件对这些文件进行引入
<!--导入其他配置文件:注意路径要写对-->
<import resource="applicationContext-di.xml"></import>