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");
      }
    }
  • 相关阅读:
    未完存储过程MySQL
    看山不是山——我们眼中的世界并不可观
    常用Linux命令
    表格行列的删除
    RFID会议签到系统总结(二十一)――服务端的通讯
    FastReport的一些另类用法
    RFID会议签到系统总结(二十二)――系统中的模式
    单元格的计算
    表格行列的移动
    RFID会议签到系统总结(十九)――单数据窗体
  • 原文地址:https://www.cnblogs.com/yimengxianzhi/p/12146247.html
Copyright © 2011-2022 走看看