Spring学习笔记(二)--属性注入


一、属性注入

给属性设置值

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。


三、分模块配置

开发中非常常见的一种模式,因为多人对同一个文件进行修改容易产生冲突。

  1. 每个人都有一个Spring的配置文件
  2. 由一个统一的Spring文件对这些文件进行引入
<!--导入其他配置文件:注意路径要写对-->
<import resource="applicationContext-di.xml"></import>
经验分享 程序员 微信小程序 职场和发展