Spring实例化bean对象的方式

1、Instantiation with a Constructor(构造函数)
创建类DaoImpl1

package com.it.app.dao;
public class DaoImpl1 {

    private String name;
    private Integer age;
    public DaoImpl1(String name, Integer age){
        this.name = name;
        this.age = age;
    }
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "DaoImpl1{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

spring-context.xml文件:daoImpl1

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">


    <bean id="daoImpl1" class="com.it.app.dao.DaoImpl1">
        <constructor-arg name="name" value="micheal"></constructor-arg>
        <constructor-arg name="age" value="12"></constructor-arg>

    </bean>
</beans>

执行测试类:

package com.it.app;

import com.it.app.dao.DaoImpl1;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class App {
    public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext("spring-context.xml");

        DaoImpl1 daoImpl1 = (DaoImpl1) context.getBean("daoImpl1");

        System.out.println(daoImpl1.toString());


    }
}

2、Instantiation with a Static Factory Method(通过静态工厂 Factory Method):

package com.it.app.dao;

public class DaoImpl2 {

    private static DaoImpl2 daoImpl2 = new DaoImpl2();

    private DaoImpl2(){

    }

    public static DaoImpl2 createDaoimpl2(){
        return daoImpl2;
    }
}

spring-context.xml文件:daoImpl2

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <!--1、通过构造函数-->
    <bean id="daoImpl1" class="com.it.app.dao.DaoImpl1">
        <constructor-arg name="name" value="micheal"></constructor-arg>
        <constructor-arg name="age" value="12"></constructor-arg>

    </bean>

    <!--2、通过静态工厂-->

    <bean id="daoImpl2" class="com.it.app.dao.DaoImpl2" factory-method="createDaoimpl2"></bean>
</beans>

执行测试代码:

package com.it.app;

import com.it.app.dao.DaoImpl1;
import com.it.app.dao.DaoImpl2;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class App {
    public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext("spring-context.xml");

        DaoImpl2 daoImpl2 = (DaoImpl2) context.getBean("daoImpl2");

        System.out.println(daoImpl2.toString());


    }
}

3、Instantiation by Using an Instance Factory Method(实例化工厂)
创建DaoImpl3:

package com.it.app.dao;

public class DaoImpl3 {

    private static DaoImpl3 daoImpl3 = new DaoImpl3();

    public DaoImpl3 createDaoImpl3(){
        return daoImpl3;
    }
}

spring-context.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <!--1、通过构造函数-->
    <bean id="daoImpl1" class="com.it.app.dao.DaoImpl1">
        <constructor-arg name="name" value="micheal"></constructor-arg>
        <constructor-arg name="age" value="12"></constructor-arg>

    </bean>

    <!--2、通过静态工厂-->

    <bean id="daoImpl2" class="com.it.app.dao.DaoImpl2" factory-method="createDaoimpl2"></bean>

    <!--2、通过实例工厂-->

    <bean id="daoImpl3" class="com.it.app.dao.DaoImpl3" ></bean>
    <bean id="daoImpl3Factory" factory-bean="daoImpl3" factory-method="createDaoImpl3"></bean>

</beans>

执行测试类:

package com.it.app;

import com.it.app.dao.DaoImpl1;
import com.it.app.dao.DaoImpl2;
import com.it.app.dao.DaoImpl3;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class App {
    public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext("spring-context.xml");

        DaoImpl3 daoImpl3 = (DaoImpl3) context.getBean("daoImpl3Factory");

        System.out.println(daoImpl3.toString());


    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值