一、XML配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.springframework.org/schema/beans"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.2.xsd ">
<!--bean节点: scope属性(默认是singleton):
1、singleton:单例对象,被标识为单例的对象在spring容器中只会存在一个实例
2、prototype:多例原型:被标识为多例的对象,每次再获得才会创建,每次创建都是新的对象
3、request:web环境下,对象与request生命周期一致
4、session:web环境下,对象与session生命周期一致-->
<!-- init-method="init" 对象创建后立即执行
destory="destory" 对象销毁后执行,关于销毁是调用ClassPathXMLApplicationContext中的.close方法-->
<!-- 创建方式一 空参构建创建 -->
<bean name="user" class="com.lzp.bean.User" ></bean>
<!-- 创建方式二 静态工厂创建-->
<!-- 通过调用UserFactory,
执行createFactory方法创建User对象放入容器 -->
<bean name="user2" class="com.lzp.create.UserFactory" factory-method="createFactory"></bean>
<!-- 创建方式三 实例工厂创建-->
<!--通过调用UserFactory,
执行createUser方法创建User对象放入容器-->
<bean name="user3" factory-bean="userFactory" factory-method="createUser"></bean>
<bean name="userFactory" class="com.lzp.create.UserFactory"></bean>
<!-- 分模块化配置:就是导入其他的spring配置文件,各个模板之间分开
各模版之间的配置不用都写在一个XML文件中便于区分与管理 -->
<import resource="com/lzp/create/applicationContext.xml"/>
</beans>
二、测试类
package com.lzp.create;
import org.junit.jupiter.api.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.lzp.bean.User;
public class Demo {
//创建方式一,空参构造创建
@Test
public void test() {
//1、创建容器对象
ApplicationContext app = new ClassPathXmlApplicationContext("com/lzp/create/applicationContext.xml");
//2、向容器“要”user对象
User bean = (User) app.getBean("user");
//打印user对象
System.out.println(bean);
}
//创建方式二,静态工厂创建
@Test
public void test2() {
//1、创建容器对象
ApplicationContext app = new ClassPathXmlApplicationContext("com/lzp/create/applicationContext.xml");
//2、向容器“要”user对象
User bean = (User) app.getBean("user2");
//打印user对象
System.out.println(bean);
}
//创建方式三,实例工厂创建
@Test
public void test3() {
//1、创建容器对象
ApplicationContext app = new ClassPathXmlApplicationContext("com/lzp/create/applicationContext.xml");
//2、向容器“要”user对象
User bean = (User) app.getBean("user3");
//打印user对象
System.out.println(bean);
}
}