Spring学习第一天
1.1 Spring是什么?
Spring是分层的 Java se/EE 应用 full-stack轻量级开源框架,以IoC(Inverse of Control:反转控制)和AOP(Aspect Oriented programming:面向切面编程)为内核。
IoC:反转Bean的创建权
应用场景:提供了 展现层SpringMVC 和 持久层Spring JDBCTemplate 以及业务层事务管理等众多企业级应用技术,还能整合开源世界众多著名的第三方框架和类库,逐渐成为使用最多的 JAVA EE 企业应用开源框架
1.2 Spring发展历程
1.1997年,IBM提出EJB思想
2.1998年,SUN制定开发标准规范EJB1.0
3.1999年,EJB1.1发布
4.2001年, EJB2.0发布
5.2006年,EJB3.0发布
1.3 Spring的优势
1.方便解耦,简化开发
解耦:把对象的创建权交由Spring 去完成,获取对象时,直接找容器。
通过Spring提供的IoC容器,可以将对象间的依赖关系交由Spring进行控制,避免硬编码所造成的过度耦合,用户也不必再为单例模式类,属性文件解析等,这些底层的需求编写代码,可以更加注重于上层应用。
2.AOP编程支持
通过Spring的AOP功能方便进行面向切面编程,许多不容易用OOP实现的功能可以通过AOP轻松实现
3.声明式各事务的支持
可以将我们从单调的事务管理代码中解脱出来,通过声明方式灵活进行事务管理,提高开发效率和质量
4.方便程序测试
可以用非容器依赖的方式编程,镜像几乎所有的测试工作,测试不再是高昂的操作,而是随手可做的事情
5.方便集成各种优先的框架
Spring对各种优秀框架(Struts ,Hiberuat,Hessian,Quartz等)的支持
6.降低 Java EE API的使用难度
Spring 对 JAVA EE API(如JDBC,JavaMAil,远程调用等)进行了薄薄的封装层,使用API的使用难度大大降低
7.Java 源码是经典的学习范例
Spring 的源代码设计精妙,结构清晰,是Java技术的最佳实践范例
1.4 Spring的体系结构
Spring Framework Runtime
1.首先从Test测试层开始
2.之后是核心容器
其中包含了Beans ,Core,Context,SpEL
3.AOP,Aspects,instrumentation,Messaging
4.web层中包含了WebSocket,Servlet,web,portiet
5.Data Access/Integration其中包含了JDBC ,ORM, OXM ,JMS,transactions
2 Spring快速入门
2.1 Spring程序开发步骤
1.导入Spring开发的基本坐标
2.编写Dao接口实现类
3.创建Spring核心配置文件
4.再Spring配置文件中配置UserDaoImpl
5.使用SPringle的API活得Bean实例
2.2 Spring的开发步骤
1.导入坐标
2.创建Bean
3.创建applicationContext.xml
4.在配置文件中进行配置
5.创建ApplicationContext对象使用getBean方法获取Bean
2.3 Spring配置文件
1.Bean标签的基本配置
1)用于配置对戏交于Spring来创建
2)默认情况下它是调用类中无参构造函数,如果没有无参构造函数则不能创建成功
基本属性:
1/. id:Bean实例在Spring容器中的唯一标识
2/. class:Bean的全限定名
2.Bean标签的范围配置
Scope:指对象作用范围,取值如下。
取值范围 说明
singleton 默认值,单例的
prototype 多例的
request WEB项目中,Spring创建一个Bean对象,将对象存入到request域中
session WEB项目中,SPringle创建一个Bean对象,将对象存入到session域中
global session WEB项目中,应用Portlet环境中,如果没有Portlet环境,那么global session相当于session
3.创建时机
1)当scope的取值为singleton时
Bean的实例化个数为:1个
Bean的实例化时机:当spring核心文件被加载时,实例化配置文件的Bean实例
Bean的生命周期:取决于容器状态
1.对象创建:当应用加载,创建容器时,对象就被创建了
2.对象运行:只要容器在对象就一直活着
3.对象销毁:当应用卸载,销毁容器时,对象就被销毁了
2)当Scope的取值为prototype时
Bean的实例化个数为:多个
Bean的实例化时机:当调用getBean方法时,实例化Bean
Bean的生命周期:取决于对象使用状态
1.对象创建:当使用对象,创建新的对象实例
2.对象运行:只要对象在使用中,就一直活着
3.对象销毁:当对象长时间不用时,被Java的垃圾回收器回收了
4.Bean生命周期配置
1.init-method:指定类中的初始化方法名称
2.destroy-method:指定类中销毁的方法名称
5.Bean实例化的三种方式
1.无参构造方法实例化
2.工厂静态方法实例化
3.工厂实例方法实例化
工厂方法应用场景:如在JDBC中获取Connection,通过DriverManager驱动获取Bean。