初始spring(三)

来源:互联网 发布:重庆软件行业协会地址 编辑:程序博客网 时间:2024/05/16 02:00

spring的依赖注入

  • 无参构造器注入
  • 有参构造器注入
  • 工厂法注入

当然对spring的基本要求导jar包是必须的

无参构造器注入

创建User.java

package cn.itcast.b_create_obj;public class User {    private int id;    private String name;    public User() {        System.out.println("------User对象创建【无参数构造器】------");    }    public User(int id, String name) {        System.out.println("-----User对象创建【带参数构造器】--------");        this.id = id;        this.name = name;    }    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    @Override    public String toString() {        return "User [id=" + id + ", name=" + name + "]";    }    public void init_user() {        System.out.println("创建对象之后,初始化");    }    public void destroy_user() {        System.out.println("IOC容器销毁,user对象回收!");    }}

bean.xml

<bean id="user1" class="cn.itcast.b_create_obj.User"></bean>

然后我们在客户端上测试

package cn.itcast.b_create_obj;import org.junit.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class App {    // 测试:对象创建    @Test    public void testIOC() throws Exception {        // 创建IOC容器对象        ApplicationContext ac = new ClassPathXmlApplicationContext("cn/itcast/b_create_obj/bean.xml");        // 获取容器中的对象        User user = (User) ac.getBean("user1");        System.out.println(user);    }

运行结果:

——User对象创建【无参数构造器】——
User [id=0, name=null]


有参构造器

<bean id="user2" class="cn.itcast.b_create_obj.User">        <constructor-arg index="0" type="int" value="100"></constructor-arg>        <constructor-arg index="1" type="java.lang.String" value="Jack"></constructor-arg>    </bean>

运行结果:

—–User对象创建【带参数构造器】——–
User [id=100, name=Jack]


让一个参数是Java对象

<bean id="str" class="java.lang.String">        <constructor-arg value="Jacks"></constructor-arg>    </bean>    <bean id="user3" class="cn.itcast.b_create_obj.User">        <constructor-arg index="0" type="int" value="100"></constructor-arg>        <constructor-arg index="1" type="java.lang.String" ref="str"></constructor-arg>    </bean>

—–User对象创建【带参数构造器】——–
User [id=100, name=Jacks]


工厂类创建

ObjectFactory.java

package cn.itcast.b_create_obj;// 工厂,创建对象public class ObjectFactory {    // 实例方法创建对象    public User getInstance() {        return new User(100,"工厂:调用实例方法");    }    // 静态方法创建对象    public static User getStaticInstance() {        return new User(101,"工厂:调用静态方法");    }}

工厂类方法创建

  1. 实例工厂法
  2. 静态工厂法

第一种
先创建工厂

<bean id="factory" class="cn.itcast.b_create_obj.ObjectFactory"></bean>

创建user对象 使用工厂方法实例化

    <bean id="user4" factory-bean="factory" factory-method="getInstance"></bean>

运行结果:

—–User对象创建【带参数构造器】——–
User [id=100, name=工厂:调用实例方法]


静态工厂方法创建

    <bean id="user" class="cn.itcast.b_create_obj.ObjectFactory" factory-method="getStaticInstance"></bean>

运行结果:

—–User对象创建【带参数构造器】——–
User [id=101, name=工厂:调用静态方法]

0 0
原创粉丝点击