zoukankan      html  css  js  c++  java
  • 构造方法与setter方法

    上一个随笔提到了constructor-arg子标签,此随笔将会介绍一些类型的赋值方法

    String类型、基本数据类型或其包装类都可以使用value标签属性赋值

      String类型和基本类型的操作如下:

    //User.java文件中的代码
    public  User(int id){
        System.out.println("序号"+ id);
    }
    public  User(String name){
        System.out.println("姓名" + name);
    }
    <!-- application.xml文件中的代码-->
    <bean class="com.zzj.ov.User">
        <constructor-arg type="int" value="21"></constructor-arg>
        <constructor-arg type="String" value="朱祖杰"></constructor-arg>
    </bean>
    //测试文件的代码
    public class Test {
        public static void main(String[] args){
            new ClassPathXmlApplicationContext("application.xml");
        }
    }

    类类型(自定义类型)

    类类型的操作如下(以Date类型为例):

    //User.java文件中的代码
    public  User(Date birth){
        System.out.println("生日" + birth);
    }
    <!-- application.xml文件中的代码-->
    <!-- 将Date类引用 -->
    <bean name="bi" class="java.util.Date"></bean>
    <!-- 使用ref-->
    <bean class="com.zzj.ov.User">
        <constructor-arg ref="bi"></constructor-arg>
    </bean>
    //测试文件的代码
    public class Test {
        public static void main(String[] args){
            new ClassPathXmlApplicationContext("application.xml");
        }
    }

    数组类型

    constructor-arg ——>array——>value(String类型、基本数据类型或其包装类),ref>bean类类型(自定义类型)

      数组类型的操作如下:

    //User.java文件中的代码
    public  User(Object[]  array){
      System.out.println("数组");
      for(Object object: array){
       System.out.println(object);
      }
     }
    <!-- application.xml文件中的代码-->
    <!-- 将Date类引用 -->
    <bean name="bi" class="java.util.Date"></bean>
    <bean class="com.zzj.ov.User"> <constructor-arg> <array> <!--同样的基本类型和String类型直接使用value赋值--> <value>12</value> <value>Tom</value> <!--类类型使用ref引用--> <ref bean="bi"/> <!--或者直接使用bean将类引用--> <bean class="java.lang.String"> <constructor-arg value="HAHA"></constructor-arg> </bean> </array> </constructor-arg> </bean>
    //测试文件的代码
    public class Test {
        public static void main(String[] args){
            new ClassPathXmlApplicationContext("application.xml");
        }
    }

    ④集合类型

      List:constructor-arg ——>list——>value(String类型、基本数据类型或其包装类),ref>bean类类型(自定义类型)

    //User.java文件中的代码
    public
    User(List<Object> list){ System.out.println("List集合"); for(Object object: list){ System.out.println(object); } }
    <!--application.xml文件中的代码-->
    <bean name="bi" class="java.util.Date"></bean>
    <
    bean class="com.zzj.ov.User"> <constructor-arg> <list> <value>12</value> <value>Tom</value> <ref bean="bi"/> <bean class="java.lang.String"> <constructor-arg value="HAHA"></constructor-arg> </bean> </list> </constructor-arg> </bean>
    //测试文件的代码
    public class Test {
        public static void main(String[] args){
           new ClassPathXmlApplicationContext("application.xml");
      }
    }

      Set:constructor-arg ——>set——>value(String类型、基本数据类型或其包装类),ref>bean类类型(自定义类型)

    //User.java文件中的代码
    public  User(Set<Object> set){
        System.out.println("Set集合");
        for(Object object: set){
            System.out.println(object);
        }
    }
    <!--application.xml文件中的代码-->
    <bean name="bi" class="java.util.Date"></bean>
    <bean class="com.zzj.ov.User">
        <constructor-arg>
        <set>
            <value>12</value>
            <value>Tom</value>
            <ref bean="bi"/>
            <bean class="java.lang.String">
                <constructor-arg value="HAHA"></constructor-arg>
            </bean>
        </set>
        </constructor-arg>
    </bean>
    //测试文件的代码
    public class Test {
        public static void main(String[] args){
           new ClassPathXmlApplicationContext("application.xml");
      }
    }

      

      Map:constructor-arg ——>map——>

      entry:key或value是String类型、基本数据类型或其包装类,则分别使用entry标签中key和value标签属性

      entry:key或value是类类型(自定义类型),应该使用对相应的key-refvalue-ref

    //User.java中的代码
    public User(Map<String,Object> map){
        System.out.println("Map集合");
        Set<String> keys = map.keySet();
        for(String key : keys){
            System.out.println(key + ":" + map.get(key));
        }
    }
    <!--application.xml文件中的代码-->
    <bean name="bi" class="java.util.Date"></bean>
    <bean class="com.zzj.ov.User">
        <constructor-arg>
        <map>
            <entry key="name" value="Tom"></entry>
            <entry key="age" value="12"></entry>
            <entry key="birth" value-ref="bi"></entry>
        </map>
        </constructor-arg>
    </bean>
    //测试文件的代码
    public class Test {
        public static void main(String[] args){
           new ClassPathXmlApplicationContext("application.xml");
      }
    }

    Properties:constructor-arg ——>props——>prop 只能配置String类型

    //User.java文件中的代码如下
    public User(Properties properties){
        System.out.println(properties.get("driver"));
        System.out.println(properties.get("userName"));
        System.out.println(properties.get("password"));
        System.out.println(properties.get("url"));
    }
    <!--application.xml文件中的代码-->
    <bean name="bi" class="java.util.Date"></bean>
    <bean class="com.zzj.ov.User">
        <constructor-arg>
        <props>
            <prop key="driver">com.mysql.jdbc.Driver</prop>
            <prop key="userName">root</prop>
            <prop key="password">root</prop>
            <prop key="url">jdbc:mysql://127.0.0.1:3306/test</prop>
        </props>
        </constructor-arg>
    </bean>
    //测试文件的代码
    public class Test {
        public static void main(String[] args){
           new ClassPathXmlApplicationContext("application.xml");
      }
    }

    ⑥setter方法(两种,需要在命名空间中选中p)

    //User.java中的代码
    private String id;
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
        
    private String name;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    <!--application.xml文件中的代码-->
    <!--第一种直接在bean标签里用p方法,第二种使用property标签-->
    <bean class="com.zzj.ov.User" p:id-ref="bi" p:name="Tom"> 
        <property name="name" value="Tom"></property>
        <property name="id" ref="bi"></property>
    </bean>
    //测试文件的代码
    public class Test {
        public static void main(String[] args){
           new ClassPathXmlApplicationContext("application.xml");
      }
    }
  • 相关阅读:
    Linux命令应用大词典-第11章 Shell编程
    Kubernetes 学习12 kubernetes 存储卷
    linux dd命令
    Kubernetes 学习11 kubernetes ingress及ingress controller
    Kubernetes 学习10 Service资源
    Kubernetes 学习9 Pod控制器
    Kubernetes 学习8 Pod控制器
    Kubernetes 学习7 Pod控制器应用进阶2
    Kubernetes 学习6 Pod控制器应用进阶
    Kubernetes 学习5 kubernetes资源清单定义入门
  • 原文地址:https://www.cnblogs.com/yimengxianzhi/p/12146247.html
Copyright © 2011-2022 走看看