Spring中的DI(二)

**技术分析之Spring框架的属性注入**

1. 对于类成员变量,常用的注入方式有两种
  * 构造函数注入
  * 属性setter方法注入

2. 在Spring框架中提供了前两种的属性注入的方式
1. 构造方法的注入方式,两步
  * 编写Java的类,提供构造方法

 1 public class Car {
 2     private String name;
 3     private double money;
 4     public Car(String name, double money) {
 5         this.name = name;
 6         this.money = money;
 7     }
 8 
 9     @Override
10     public String toString() {
11         return "Car [name=" + name + ", money=" + money + "]";
12     }
13 }
View Code

  * 编写配置文件

1 <bean id="car" class="com.itheima.demo4.Car">
2   <constructor-arg name="name" value="大奔"/>
3   <constructor-arg name="money" value="100"/>
4 </bean>

2. 属性的setter方法的注入方式
  * 编写Java的类,提供属性和对应的set方法即可
  * 编写配置文件

3. 如果Java类的属性是另一个Java的类,那么需要怎么来注入值呢?
  * <property name="name" rel="具体的Bean的ID或者name的值"/>
  * 例如:

1 <bean id="person" class="com.itheima.demo4.Person">
2   <property name="pname" value="美美"/>
3   <property name="car2" ref="car2"/>
4 </bean>

----------

**技术分析之Spring的2.5版本中提供了一种:p名称空间的注入(了解)**

1. 步骤一:需要先引入 p 名称空间
  * 在schema的名称空间中加入该行:xmlns:p="http://www.springframework.org/schema/p"

2. 步骤二:使用p名称空间的语法
  * p:属性名 = ""
  * p:属性名-ref = ""

3. 步骤三:测试
  * <bean id="person" class="com.itheima.demo4.Person" p:pname="老王" p:car2-ref="car2"/>
----------

**技术分析之Spring的3.0提供了一种:SpEL注入方式(了解)**

1. SpEL:Spring Expression Language是Spring的表达式语言,有一些自己的语法
2. 语法
  * #{SpEL}

3. 例如如下的代码

1 <!-- SpEL的方式 -->
2 <bean id="person" class="com.itheima.demo4.Person">
3     <property name="pname" value="#{'小风'}"/>
4     <property name="car2" value="#{car2}"/>
5 </bean>

4. 还支持调用类中的属性或者方法
* 定义类和方法,例如

1 public class CarInfo {
2     public String getCarname(){
3         return "奇瑞QQ";
4     }
5 }    
View Code

----------

**技术分析之数组,集合(List,Set,Map),Properties等的注入**

1. 如果是数组或者List集合,注入配置文件的方式是一样的

1 <bean id="collectionBean" class="com.itheima.demo5.CollectionBean">
2     <property name="arrs">
3         <list>
4             <value>美美</value>
5             <value>小风</value>
6         </list>
7     </property>
8 </bean>                

2. 如果是Set集合,注入的配置文件方式如下:

1 <property name="sets">
2     <set>
3         <value>哈哈</value>
4         <value>呵呵</value>
5     </set>
6 </property>        

3. 如果是Map集合,注入的配置方式如下:

1 <property name="map">
2     <map>
3         <entry key="老王2" value="38"/>
4         <entry key="凤姐" value="38"/>
5         <entry key="如花" value="29"/>
6     </map>
7 </property>        

4. 如果是properties属性文件的方式,注入的配置如下:

<property name="pro">
    <props>
        <prop key="uname">root</prop>
        <prop key="pass">123</prop>
    </props>
</property>

----------

**技术分析之Spring框架的配置文件分开管理(了解)**

1. 例如:在src的目录下又多创建了一个配置文件,现在是两个核心的配置文件,那么加载这两个配置文件的方式有两种!
  * 主配置文件中包含其他的配置文件:
    <import resource="applicationContext2.xml"/>

  * 工厂创建的时候直接加载多个配置文件:
  ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml","applicationContext2.xml");

猜你喜欢

转载自www.cnblogs.com/liyue-sqsf/p/9011947.html
今日推荐