SpringDay01

Spring的控制反转

Spring的依赖注入

  多种注入方式

  多种属性的注入方式

<bean id="userDao" class="dao.UserDaoImpl"></bean>


<!-- 构造方法的方式注入属性 -->
<bean id="car" class="entity.Car">
    <constructor-arg name="name" value="保时捷"></constructor-arg>
    <constructor-arg name="price" value="1000000"></constructor-arg>
</bean>

<!-- set方法的方式注入属性 -->
<bean id="car2" class="entity.Car2">
    <property name="name" value="奇瑞QQ"></property>
    <property name="price" value="40000"></property>
</bean>


<!-- 注入对象类型的注入 -->
<bean id="person" class="entity.Person">
    <property name="name" value="张三"></property>
    <property name="car" ref="car"></property>
</bean>


<!-- Spring的复杂类型的注入 -->
<bean id="collectionBean" class="entity.CollectionBean">
    <!-- 数组类型的属性 -->
    <property name="array">
        <list>
            <value>张三</value>
            <value>李四</value>
            <value>王五</value>
        </list>
    </property>
    
    <!-- 注入List集合的数据 -->
    <property name="list">
        <list>
            <value>张三</value>
            <value>李四</value>
            <value>王五</value>
        </list>
    </property>
    
    <!-- 注入Map集合 -->
    <property name="map">
        <map>
            <entry key="aaa" value="111"></entry>
            <entry key="bbb" value="222"></entry>
            <entry key="ccc" value="333"></entry>
        </map>
    </property>
</bean>
package test;


import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import dao.UserDao;
import entity.Car;
import entity.Car2;
import entity.CollectionBean;
import entity.Person;

public class Test1 {

    @Test
    public void demo(){
        //创建Spring的工厂类:
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
        //通过工厂解析XML获取Bean的实例.
        UserDao userDao = (UserDao) applicationContext.getBean("userDao");
        userDao.sayHello();
        
        Car car = (Car) applicationContext.getBean("car");
        System.out.println(car.getName());
        System.out.println(car.getPrice());
        
        System.out.println("---------------------------");
        
        Car2 car2 = (Car2) applicationContext.getBean("car2");
        System.out.println(car2.getName());
        System.out.println(car2.getPrice());
        
        
        System.out.println("---------------------------");
        Person person = (Person) applicationContext.getBean("person");
        System.out.println(person.getName());
        System.out.println(person.getCar().getName());
        
        System.out.println("---------------------------");
        CollectionBean collectionBean = (CollectionBean) applicationContext.getBean("collectionBean");
        System.out.println(collectionBean.getArray().length);
        System.out.println(collectionBean.getList().toString());
        System.out.println(collectionBean.getMap().toString());
    }
}
原文地址:https://www.cnblogs.com/deepSleeping/p/10438691.html