7.3Java EE——Bean的实例化

一、构造方法实例化

下面通过一个案例演示Spring容器如何通过构造方法实例化Bean。 

(1)、在IDEA中创建一个名为chapter07的Maven项目,然后在项目的pom.xml文件中配置需使用到的Spring四个基础包和Spring的依赖包。

<dependencies>
        <!-- spring-core的依赖包 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>5.2.8.RELEASE</version>
        </dependency>
        <!-- spring-beans的依赖包 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>5.2.8.RELEASE</version>
        </dependency>
        <!-- spring-context的依赖包 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.2.8.RELEASE</version>
        </dependency>
        <!-- spring-expression的依赖包 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-expression</artifactId>
            <version>5.2.8.RELEASE</version>
        </dependency>
        <!-- commons-logging的依赖包 -->
        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
            <version>5.2.8.RELEASE</version>
        </dependency>
    </dependencies>

(2)、创建一个名称为com.mac的包,在该包中创建Bean1类。 

package com.mac;
public class Bean1 {
    public Bean1(){
        System.out.println("这是Bean1");
    }
}

(3)、新建applicationBean1.xml作为Bean1类的配置文件,在该配置文件中定义一个id为bean1的Bean,并通过class属性指定其对应的实现类为Bean1。 

<?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="bean1" class="com.mac.Bean1"></bean>
</beans>

(4)、创建测试类Bean1Test,在main()方法中通过加载applicationBean1.xml配置文件初始化Spring容器,再通过Spring容器生成Bean1类的实例bean1,用来测试构造方法是否能实例化Bean1。

public class Bean1Test {
    public static void main(String[] args){
        // 加载applicationBean1.xml配置
        ApplicationContext applicationContext=new 
                                             ClassPathXmlApplicationContext("applicationBean1.xml");
        // 通过容器获取配置中bean1的实例
        Bean1 bean=(Bean1) applicationContext.getBean("bean1");
        System.out.print(bean);		}
}

(5)、 在IDEA中启动Bean1Test类,控制台会输出结果。

二、 静态工厂实例化 

下面通过一个案例演示如何使用静态工厂方式实例化Bean。

(1)、创建Bean2类,该类与Bean1类一样,只定义一个构造方法,不需额外添加任何方法。

package com.mac;
public class Bean2 {
    public Bean2(){
        System.out.println("这是Bean2");
    }
}

 (2)、创建一个MyBean2Factory类,在该类中定义一个静态方法createBean(),用于创建Bean的实例。createBean()方法返回Bean2实例。

package com.mac;
public class MyBean2Factory {
	//使用MyBean2Factory类的工厂创建Bean2实例
    	public static Bean2 createBean(){
      	return new Bean2();
    	}
}

(3)、新建applicationBean2.xml文件,作为MyBean2Factory类的配置文件。 

<?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-4.3.xsd">
<bean id="bean2"
      class="com.mac.MyBean2Factory"
      factory-method="createBean"/>
</beans>

(4)、创建一个测试类Bean2Test,用于测试使用静态工厂方式是否能实例化Bean。 

public class Bean2Test {
    public static void main(String[] args) {
        // ApplicationContext在加载配置文件时,对Bean进行实例化
        ApplicationContext applicationContext =
                new ClassPathXmlApplicationContext("applicationBean2.xml");
        System.out.println(applicationContext.getBean("bean2"));
    }
}

 (5)、在IDEA中启动Bean2Test类,控制台会输出结果。

 

猜你喜欢

转载自blog.csdn.net/W_Fe5/article/details/131667832
今日推荐