Spring-依賴注入-多參數的構造函數注入方式

  1. 創建項目
        項目名稱:spring092601
    2.引入spring jar包
        commons-logging.jar
        junit-4.4.jar
        log4j.jar
        spring-beans-3.2.0.RELEASE.jar
        spring-context-3.2.0.RELEASE.jar
        spring-core-3.2.0.RELEASE.jar
        spring-expression-3.2.0.RELEASE.jar
    3.添加配置文件
        在conf下添加spring的核心配置文件applicationContext.xml,配置如下:
        <?xml version="1.0" encoding="UTF-8"?>
        <beans xmlns="http://www.springframework.org/schema/beans"
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xmlns:p="http://www.springframework.org/schema/p"
               xmlns:util="http://www.springframework.org/schema/util"
               xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
        </beans>
    4.創建業務bean
        在src目錄下創建
        包名:cn.jbit.spring092601.domain
        package cn.jbit.spring092601.domain;
        import java.io.Serializable;
        /**
         * 學校
         * @author Administrator
         *
         */
        public class School implements Serializable {
            private Integer id;//學校編號
            private String name;//學校名稱
            public School() {
                super();
            }
            public School(String name) {
                super();
                this.name = name;
            }
            public School(Integer id,String name) {
                super();
                this.id = id;
                this.name = name;
            }
            public void setId(Integer id) {
                this.id = id;
            }

            public Integer getId() {
                return id;
            }
            public void setName(String name) {
                this.name = name;
            }
            public String getName() {
                return name;
            }
        }
    5.在配置文件中編寫bean的配置,並注入屬性值,也就是我們的DI(Dependency Injection)依賴注入
        配置如下:
        <?xml version="1.0" encoding="UTF-8"?>
        <beans xmlns="http://www.springframework.org/schema/beans"
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xmlns:p="http://www.springframework.org/schema/p"
               xmlns:util="http://www.springframework.org/schema/util"
               xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
            <!--
             構造函數注入
          -->
          <bean id="school" class="cn.jbit.spring092601.domain.School">
                <!-- index:表示構造函數中參數的索引 -->
              <constructor-arg index="0">
                  <value>1</value>
              </constructor-arg>
              <constructor-arg index="1">
                  <value>lisi</value>
              </constructor-arg>    
          </bean>
        </beans>
    6.測試bean的屬性注入
        在test目錄下測試
        包名:cn.jbit.spring092601.domain
        /**
         * 構造函數注入
         */
        @Test
        public void testConstr(){
            /*
             *
             */
            BeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("applicationContext.xml"));
            School school = (School) beanFactory.getBean("school");
            System.out.println(school.getName()+school.getId());
        }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章