1 控制反转原理(Invercation of Control)
面向对象阶段,对象的创建时通过程序员的new关键字创建的,将对象的创建权交给容器(spring容器)。
IOC入门程序
①创建一个Java项目
②加入Spring核心依赖包
spring-core.jar
spring-context.jar
spring-beans.jar
spring-expression.jar
spring-jcl.jar (整合了日志文件)
log4j.jar
log4j.properties配置文件
③创建Spring配置文件
<?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">
<!-- class指定该类的全限定类名,factory-method指定该类的方法 -->
<bean id="user" class="com.dao.impl.UserDaoImpl" ></bean>
</beans>
④测试类中使用
public class Main {
public static void main(String[] args) {
ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
UserDaoImpl user=(UserDaoImpl) context.getBean("user");
user.save();
}
}
2 配置schema约束
作用:用于约束xml的书写。在xml配置源码中的约束包。
3 XML bean属性
id:
唯一的。
class:
类的权限定类名。
name:
理论可以重复,但实际开发中不允许重复。name中可以出现特殊字符,
scope:
作用域,默认为单例模式,就是当前项目中就只有一个该对象。
singleton:单例模式
prototype:多例模式
request:每次请glob求创建一个对象
session:每次会话创建一个对象
global:和session一样,一般在porlet项目中才会用。
4 Spring接口
在spring中常用的两个工厂BeanFactory 和ApplicationContext 都是接口,且ApplicationContext 是BeanFactory 的一个子接口,同时BeanFactory 的实例已经过时,不推荐使用BeanFactory 。
两个接口的区别:
ApplicationContext 单例的bean会在容器创建时全部实例化。
BeanFactory 在容器创建时不会实例化bean,只有在调用getBean 时才会实例化。
5 Bean的生命周期
5.1 构造方法
5.2 初始化方法
为了给当前实例赋初始化值。在构造方法执行后立即执行。
在xml bean中配置init-method 属性。
5.3 销毁方法
为了释放相关连接和资源。在该容器结束之前调用。
在xml中配置distory-method 属性。
ClassPathXmlApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
当对象是以上对象时才有close 方法。
|