zoukankan      html  css  js  c++  java
  • 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());
        }
    }
  • 相关阅读:
    转载--编写高质量代码:改善Java程序的151个建议(第3章:类、对象及方法___建议31~35)
    转载---编写高质量代码:改善Java程序的151个建议(第2章:基本类型___建议26~30)
    转载---编写高质量代码:改善Java程序的151个建议(第2章:基本类型___建议21~25)
    月薪两万不是梦,麻辣隔壁的
    23种设计模式(转)
    因为最近项目用到了shiro,所以转了份笔记研讨
    单例模式(摘)
    aop日志管理(摘)
    理解线程副本类(摘)
    eclipse反编译插件安装
  • 原文地址:https://www.cnblogs.com/deepSleeping/p/10438691.html
Copyright © 2011-2022 走看看