zoukankan      html  css  js  c++  java
  • java之spring之对象的创建

    首先提供目录结构如下:

    下面提供各文件代码,以供参考:

    UserDynamicFactory.java

     1 package cn.sxt.factory;
     2 
     3 import cn.sxt.vo.User;
     4 
     5 /**
     6  *     ��̬��������������
     7  *
     8  */
     9 public class UserDynamicFactory {
    10     public User createUser(String name,int age){
    11         return new User(name,age);
    12     }
    13 }
    View Code

    UserFactory.java

     1 package cn.sxt.factory;
     2 
     3 import cn.sxt.vo.User;
     4 /**
     5  * 
     6  */
     7 public class UserFactory {
     8     public static User createUser(String name,int age){
     9         return new User(name,age);
    10     }
    11 }
    View Code

    User.java

     1 package cn.sxt.vo;
     2 
     3 
     4 public class User {
     5     private String name;
     6     private int age;
     7     public User() {
     8     }
     9     public User(String name, int age) {
    10         super();
    11         this.name = name;
    12         this.age = age;
    13     }
    14     public String getName() {
    15         return name;
    16     }
    17     public void setName(String name) {
    18         this.name = name;
    19     }
    20     public int getAge() {
    21         return age;
    22     }
    23     public void setAge(int age) {
    24         this.age = age;
    25     }
    26     @Override
    27     public String toString() {
    28         return "User [name=" + name + ", age=" + age + "]";
    29     }
    30 }
    View Code

    beans.xml

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <beans xmlns="http://www.springframework.org/schema/beans"
     3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     4     xsi:schemaLocation="http://www.springframework.org/schema/beans
     5         http://www.springframework.org/schema/beans/spring-beans.xsd">
     6     <!-- 通过有参构造方法创建对象 -->
     7     <bean id="u1" class="cn.sxt.vo.User">
     8         <!-- 通过参数的下标来设置参数  下标从0开始 -->
     9         <constructor-arg index="0" value="张三疯"/>
    10         <constructor-arg index="1" value="33"/>
    11     </bean>
    12     <bean id="u2" class="cn.sxt.vo.User">
    13         <!-- 通过参数的名称来设置参数   name表示参数名称  -->
    14         <constructor-arg name="name" value="张三疯"/>
    15         <constructor-arg name="age" value="33"/>
    16     </bean>
    17     <bean id="u3" class="cn.sxt.vo.User">
    18         <!-- 通过参数的类型来设置参数   type表示参数类型  -->
    19         <constructor-arg type="java.lang.String" value="张三疯"/>
    20         <constructor-arg type="int" value="33"/>
    21     </bean>
    22     <bean id="u4" class="cn.sxt.vo.User">
    23         <property name="name" value="张无忌"/>
    24         <property name="age" value="23"/>
    25     </bean>
    26     <!-- 通过静态工厂创建对象 -->
    27     <bean id="u5" class="cn.sxt.factory.UserFactory" factory-method="createUser">
    28         <constructor-arg type="java.lang.String" value="张三疯"/>
    29         <constructor-arg type="int" value="33"/>
    30     </bean>
    31     <!-- 通过动态工厂来创建对象 -->
    32     <bean id="factory" class="cn.sxt.factory.UserDynamicFactory"/>
    33     <bean id="u6" factory-bean="factory" factory-method="createUser">
    34         <constructor-arg type="java.lang.String" value="张三疯"/>
    35         <constructor-arg type="int" value="33"/>
    36     </bean>
    37 </beans>
    View Code

    SpringTest.java

     1 package cn.sxt.spring;
     2 
     3 import org.junit.Test;
     4 import org.springframework.context.ApplicationContext;
     5 import org.springframework.context.support.ClassPathXmlApplicationContext;
     6 
     7 import cn.sxt.vo.User;
     8 
     9 public class SpringTest {
    10     @Test
    11     public void testHello(){
    12         //��������
    13         ApplicationContext ac = new ClassPathXmlApplicationContext("beans.xml");
    14         User u=(User)ac.getBean("u6");
    15         System.out.println(u);
    16     }
    17 }
    View Code

    一.通过构造方法来创建对象

    1. 通过参数下标来设置参数的值

    <!-- 通过有参构造方法创建对象 -->
        <bean id="u1" class="cn.sxt.vo.User">
            <!-- 通过参数的下标来设置参数  下标从0开始 -->
            <constructor-arg index="0" value="张三疯"/>
            <constructor-arg index="1" value="33"/>
        </bean>

    2.通过参数名称来设置

    <bean id="u2" class="cn.sxt.vo.User">
            <!-- 通过参数的名称来设置参数   name表示参数名称  -->
            <constructor-arg name="name" value="张三疯"/>
            <constructor-arg name="age" value="33"/>
        </bean>

     3.通过参数类型来设置

    <bean id="u3" class="cn.sxt.vo.User">
            <!-- 通过参数的类型来设置参数   type表示参数类型  -->
            <constructor-arg type="java.lang.String" value="张三疯"/>
            <constructor-arg type="int" value="33"/>
        </bean>

    二. 通过无参构造方法来创建对象

    <bean id="u4" class="cn.sxt.vo.User">
            <property name="name" value="张无忌"/>
            <property name="age" value="23"/>
        </bean>

    注意:需要提供无参构造器,并且属性要有对应的set方法

    三. 通过静态工厂来创建对象

    静态工厂类:

    /**
     * 静态工厂方法 
     *     通过静态工厂来创建对象
     */
    public class UserFactory {
        public static User createUser(String name,int age){
            return new User(name,age);
        }
    }

    配置文件

    <!-- 通过静态工厂创建对象 -->
        <bean id="u5" class="cn.sxt.factory.UserFactory" factory-method="createUser">
            <constructor-arg type="java.lang.String" value="张三疯"/>
            <constructor-arg type="int" value="33"/>
        </bean>

    四.通过动态工厂来创建对象

    动态工厂类

    /**
     *     动态工厂来创建对象
     *
     */
    public class UserDynamicFactory {
        public User createUser(String name,int age){
            return new User(name,age);
        }
    }

    配置文件

    <!-- 通过动态工厂来创建对象 -->
        <bean id="factory" class="cn.sxt.factory.UserDynamicFactory"/>
        <bean id="u6" factory-bean="factory" factory-method="createUser">
            <constructor-arg type="java.lang.String" value="张三疯"/>
            <constructor-arg type="int" value="33"/>
        </bean>
  • 相关阅读:
    【整理学习Hadoop】Hadoop学习基础之一:服务器集群技术
    淘宝开源平台(taobao-code)使用
    【转载】Java定时器的学习
    DHTMLTree、Dtree和Ztree的学习使用
    iBatis 简单介绍及基础入门
    【转载】Spring介绍之二
    透明度标签、html透明度
    下拉列表禁止修改
    list删除、集合遍历删除
    表格样式、表格css、
  • 原文地址:https://www.cnblogs.com/Vincent-yuan/p/11247789.html
Copyright © 2011-2022 走看看