1.spring配置文件的基本语法:applicationContext.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 name="user" class="cn.example.bean.User" scope="singleton"
init-method="init" destroy-method="destory">bean>
beans>
bean元素:代表一个javaBean对象
class属性:被管理对象的完整类名.
name属性: 给被管理的对象起个名字.获得对象时根据该名称获得对象.
可以重复.可以使用特殊字符.
id属性: 与name属性一模一样.名称不可重复.不能使用特殊字符.
scope属性:
singleton(默认值):单例对象
prototype:多例原型.每次获取都会创建对象。
request:web环境下.对象与request生命周期一致.
session:web环境下,对象与session生命周期一致.
init-method:对象创建后马上被调用的方法
destroy-method:对象销毁前被调用的方法
测试代码:
public void fun1(){
//1 加载src目录下的applicationContext.xml,会自动初始化该配置文件中配置的bean
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
//2 从容器中获取已经被spring框架创建的user对象,"user" 是定义在配置文件中 bean标签中的name属性的值,默认单例,每次获取的是同一个对象
User u = (User) ac.getBean("user");
//User u2 = (User) ac.getBean("user");
//3 打印user对象
System.out.println(u.hashCode());
//System.out.println(u2.hashCode());
//classPathXmlApplicationContext.close();//在单利模式下,才能看到调用了User的destroy方法
}