• 第二篇给类中的属性赋值(1)


      昨天算是开启了第一篇技术类的文章,第一篇就说Spring,有同学会问框架那么多为什么要说它呢?嘿!Spring门类的框架在同类型的框架里面可以说是最优秀的,目前各公司不论大小(除非是特别牛逼的自己写框架)基本上所有的新项目都在围绕着Spring全家桶转圈。它之所以优秀就在于它在很大限度上解决了代码过于冗余,以及耦合度高的问题,不论是盛极一时的SSH框架还是火遍所有互联网公司的SSM框架都少不了他的身影,当下又火起来的Spring Boot亦是基于Spring技术发展起来,所以,如果你想在java这条路上走的更远更深更久,那么我还是建议你深入的学习一下Spring框架。废话不说,下面是今天整理的干货。各位看官,看完觉得好还望您点个赞。

      本文章是博主原创,转载需注明出处。

    1、setter注入

    即依赖set方法注入值

    xml文件的配置

       <bean id="star" class="com.zct.Star">
    
            <property name="age" value="56"/>
    
            <property name="name" value="刘德华"/>      
    
        </bean>

    对应的类文件Star.java

        private int age;
    
        private String name;
    
        public void setAge(int age) {
    
            this.age = age;
    
        }
    
        public void setName(String name) {
    
            this.name = name;
    
        }
    2、构造注入

    即依赖构造器注入

    xml文件

        <!-- 构造注入 -->
    
        <bean id="star1" class="com.zct.Star">
    
            <constructor-arg index="0" value="54"/>
    
            <constructor-arg index="1" value="黎明"/>
    
        </bean>
    
      <!-- 需注意基本类型与封装类不能直接转换 -->
    
        <bean id="star2" class="com.zct.Star">
    
            <constructor-arg type="int" value="53"/>
    
            <constructor-arg type="String" value="郭富城"/>
    
        </bean>

    对应的类文件Star.java

        private int age;
    
        private String name;
    
        public Star(int age, String name) {
    
            super();
    
            this.age = age;
    
            this.name = name;
    
        }

    无论是setter注入还是构造注入都是注入也就是给属性赋值,注入的英文缩写是DI(Dependency  Injection)。除了从注入方式上的差异还有注入的值的区分:基本类型、引用类型。

    基本类型较为简单,即是上面所书写的方式,下面为是引用类型的注入

    3、引用类型的注入

    引用类型的注入一也有两中方式,一是用ref引入二是用内部<bean>标签

    ①、ref属性引入

    xml文件:

        <!-- 基本类型 -->
    
        <bean id="star" class="com.zct.Star">
    
            <constructor-arg type="int" value="53"/>
    
            <constructor-arg type="String" value="刘德华"/>
    
        </bean>
    
        <!-- 非基本类型 -->
    
        <bean id="man" class="com.zct.Man">
    
            <property name="star" ref="star"/>
    
            <property name="liYou" value="能歌善舞长得又帅"/>
    
        </bean>

    对应的类文件

    Star.java

        private int age;
    
        private String name;
    
        public Star(int age, String name) {
    
            super();
    
            this.age = age;
    
            this.name = name;
    
        }
    
        public void show() {
    
            System.out.println("我是" + name + "年龄" + age);
    
        }

    Man.java

        private Star star;
    
        private String liYou;
    
        public void setStar(Star star) {
    
            this.star = star;
    
        }
    
        public void setLiYou(String liYou) {
    
            this.liYou = liYou;
    
        }
    
        public void showLove() {
    
            System.out.println("我喜欢的明星是:");
    
            star.show();
    
            System.out.println("理由是:" + liYou);
    
        }

    ②内部<bena>标签

        <bean id="man" class="com.zct.Man">
    
            <property name="love">
    
                <bean id="love" class="com.zct.Love">   //内部<bean>的id可以省略
    
                    <property name="view" value="吃喝"/>
    
                    <property name="play" value="玩乐"/>
    
                </bean>
    
            </property>
    
            <property name="age" value="25"></property>
    
        </bean>
  • 相关阅读:
    qt的.pro配置总结
    【GOJ 1489】Monster Hunter
    CPU 杂谈
    【CF 1061C|GOJ 3505】Multiplicity
    【CF 1039D|GOJ 3502】You Are Given a Tree
    我跳过的坑
    【CF 1101D|GOJ 3501】GCD Counting
    【HDU 5269|GOJ 739】xor的最低位
    beta阶段组间的140字互评
    【第七周】【新蜂站会】3
  • 原文地址:https://www.cnblogs.com/CuSO4/p/8463215.html
Copyright © 2020-2023  润新知