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");
      }
    }
  • 相关阅读:
    FJNU 1151 Fat Brother And Geometry(胖哥与几何)
    FJNU 1157 Fat Brother’s ruozhi magic(胖哥的弱智术)
    FJNU 1159 Fat Brother’s new way(胖哥的新姿势)
    HDU 3549 Flow Problem(最大流)
    HDU 1005 Number Sequence(数列)
    Tickets(基础DP)
    免费馅饼(基础DP)
    Super Jumping! Jumping! Jumping!(基础DP)
    Ignatius and the Princess IV(基础DP)
    Keywords Search(AC自动机)
  • 原文地址:https://www.cnblogs.com/yimengxianzhi/p/12146247.html
Copyright © 2011-2022 走看看