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>
  • 相关阅读:
    离线安装 Framework 3.5 镜像安装
    换行符处理
    使用 JSON JavaScriptSerializer 进行序列化或反序列化时出错。字符串的长度超过了为 maxJsonLength 属性设置的值。
    vs 无法启动iis express web服务器
    OracleInternal.MTS.DTCPSPEManager”的类型初始值设定项引发异常
    纯前端上传文件FormData----注意的地方
    LINQ 的一些相关基本语法
    Spread JS 随笔四 相关用法
    Spread JS 随笔三 列设置
    findbugs报OBL_UNSATISFIED_OBLIGATION_EXCEPTION_EDGE的修改实例
  • 原文地址:https://www.cnblogs.com/ztm1021810064/p/8526674.html
Copyright © 2011-2022 走看看