zoukankan      html  css  js  c++  java
  • 多种方式实现依赖注入

    什么是Spring的注入:

    spring的注入是指在启动spring容器加载Bean配置的时候,完成对对变量的赋值行为。常见的spring注入的方式有两种,分别是设值注入和构造注入。

    IOC在加载的时候会扫描XML文件里面的Bean的相关配置,然后为这些Bean进行实例化(创建Bean)。所谓注入就是在创建的过程中完成对成员变量的赋值

    打个比方,假如在A类里面引入了一个B类声明了一个B类的变量b,注入就是在IOC容器初始化A的时候就把b的变量进行赋值。

     1,集合注入

    public class MyCollection {
        private String[] array;
        private List<String> list;
        private Set<String> set;
        private Properties properties;
        private Map<String,String> map;
    
        @Override
        public String toString() {
            return "MyCollection{" +
                    "array=" + Arrays.toString(array) +
                    ", list=" + list +
                    ", set=" + set +
                    ", properties=" + properties +
                    ", map=" + map +
                    '}';
        }
    
        public String[] getArray() {
            return array;
        }
    
        public void setArray(String[] array) {
            this.array = array;
        }
    
        public List<String> getList() {
            return list;
        }
    
        public void setList(List<String> list) {
            this.list = list;
        }
    
        public Set<String> getSet() {
            return set;
        }
    
        public void setSet(Set<String> set) {
            this.set = set;
        }
    
        public Properties getProperties() {
            return properties;
        }
    
        public void setProperties(Properties properties) {
            this.properties = properties;
        }
    
        public Map<String, String> getMap() {
            return map;
        }
    
        public void setMap(Map<String, String> map) {
            this.map = map;
        }
    }

      配置文件内容

    <bean id="collection" class="cn.demo.MyCollection">
            <property name="array">
                <array>
                    <value>足球</value>
                    <value>篮球</value>
                </array>
            </property>
            <property name="list">
                <list>
                    <value>李小龙</value>
                    <value>成龙</value>
                </list>
            </property>
    
            <property name="map">
                <map>
                    <entry key="S1">
                        <value></value>
                    </entry>
                    <entry key="S2">
                        <value></value>
                    </entry>
                    <entry key="S3">
                        <value></value>
                    </entry>
                </map>
            </property>
    
            <property name="set">
                <set>
                <value>C#</value>
                <value>Java</value>
                </set>
            </property>
    
            <property name="properties">
                <props>
                    <prop key="1">s1</prop>
                    <prop key="2">s2</prop>
                    <prop key="3">s3</prop>
                </props>
            </property>
        </bean>

    2,使用p命名空间注入

      这里不写类了,直接xml文件配置

     (注:需要引入p的依赖)

    xmlns:p="http://www.springframework.org/schema/p"
     <bean id="car" class="cn.demo.Car">
            <property name="color" value="黄色"></property>
            <property name="type" value="OFO"></property>
        </bean>
    
    
        <bean id="stu" class="cn.demo.Stu" p:name="柴" p:age="21" p:car-ref="car"></bean>

       3,构造注入

    <bean id="stu" class="cn.demo.Stu">
    <constructor-arg index="0" value="柴光亚"></constructor-arg>
    <constructor-arg index="1" value="21"></constructor-arg>
    </bean>
  • 相关阅读:
    UVa 116 单向TSP(多段图最短路)
    POJ 1328 Radar Installation(贪心)
    POJ 1260 Pearls
    POJ 1836 Alignment
    POJ 3267 The Cow Lexicon
    UVa 1620 懒惰的苏珊(逆序数)
    POJ 1018 Communication System(DP)
    UVa 1347 旅行
    UVa 437 巴比伦塔
    UVa 1025 城市里的间谍
  • 原文地址:https://www.cnblogs.com/ztm1021810064/p/8526674.html
Copyright © 2011-2022 走看看