• 多种方式实现依赖注入


    什么是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>
  • 相关阅读:
    【Layui】11 滑块 Slider
    【Layui】10 颜色选择器 ColorPicker
    【Layui】09 动画 Anim
    【Layui】08 时间线 Timeline
    【Layui】07 徽章 Badge
    【Layui】06 面板 Panel
    【Layui】05 进度条 Progress
    【Layui】05 选项卡 Tabs
    【Layui】04 导航 Nav
    【Layui】03 按钮 Button
  • 原文地址:https://www.cnblogs.com/ztm1021810064/p/8526674.html
Copyright © 2020-2023  润新知