Spring中3种实例Bean的方法及设置Bean的别名

目录

 

 

基本概念

代码及演示

对Bean的感悟


 

基本概念

学习使用Spring实例化Bean

             1. 通过构造方法实例化Bean;

             2. 通过静态方法实例化Bean;

             3. 通过实例方法实例化Bean

 

Spring设置Bean的别名

 

代码及演示

程序运行截图如下:

程序结构如下:

Bean1.java

package bean4test.Ioc;

public class Bean1 {

    public Bean1(){

        System.out.println("Bean1.Bean1");
    }
}

Bean2.java

package bean4test.Ioc;

public class Bean2 {

    public Bean2(){

        System.out.println("Bean2.Bean2");
    }
}

Bean2Factory.java

package bean4test.Ioc;

public class Bean2Factory {

    public static Bean2 getBean2(){

        return new Bean2();
    }
}

Bean3.java

package bean4test.Ioc;

public class Bean3 {

    public Bean3(){

        System.out.println("Bean3.Bean3");
    }
}

Bean3Factory.java

package bean4test.Ioc;

public class Bean3Factory {

    public Bean3 getBean3(){

        return new Bean3();
    }
}

spring.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-2.5.xsd">

    <bean class="bean4test.Ioc.Bean1" id="bean1" name="bean1_1, bean1_2"/>
    <alias name="bean1" alias="bean1_3" />

    <bean class="bean4test.Ioc.Bean2Factory" factory-method="getBean2" id="bean2"/>

    <bean class="bean4test.Ioc.Bean3Factory" id="bean3Factory" />
    <bean class="bean4test.Ioc.Bean3" factory-bean="bean3Factory"
          factory-method="getBean3" id="bean3" />
</beans>

DemoApplicaitonTests.java

package bean4test.demo;

import bean4test.Ioc.*;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
@SpringBootTest
public class DemoApplicationTests {

    @Test
    public void contextLoads() {

        ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
        Bean1 bean1 = context.getBean("bean1", Bean1.class);
        System.out.println("bean1 = " + bean1);

        //传统方法
        //Bean2 bean2 = Bean2Factory.getBean2();

        Bean2 bean2 = context.getBean("bean2", Bean2.class);
        System.out.println("bean2 = " + bean2);

        //传统方法
        //Bean3Factory bean3Factory = new Bean3Factory();
        //Bean3 bean3 = bean3Factory.getBean3();
        Bean3 bean3 = context.getBean("bean3", Bean3.class);
        System.out.println("bean3 = " + bean3);

        //别名
        Bean1 bean1_1 = context.getBean("bean1_1", Bean1.class);
        System.out.println("bean1_1 = " + bean1_1);
        Bean1 bean1_2 = context.getBean("bean1_2", Bean1.class);
        System.out.println("bean1_2 = " + bean1_2);
        Bean1 bean1_3 = context.getBean("bean1_3", Bean1.class);
        System.out.println("bean1_3 = " + bean1_3);
    }
}

 

对Bean的感悟

个人觉得用传统的方法和使用Spring的Bean比较起来,Spring在逻辑上更加的清晰,因为利用了Java反射的机制,而C++程序员喜欢传统的方法,因为这个能看得到!

学了Spring的方法后,发现Java真的很6的语言!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT1995

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值