一、Spring框架的特性
Spring框架主要用于与其他技术(struts,hibernate等)进行整合,可将应用程序中的Bean组件实现低耦合关联.最终可以提高系统扩展和维护性。 将来我们利用Spring框架管理系统的各个组件(Action,Service,DAO)采用Spring的IOC和AOP机制实现各组件的关联.从而实现了低耦合调用.增强了系统可维护性和扩展性.
二、Spring框架容器的基本使用
Spring框架的核心是提供了一个容器,该容器可以对Bean组件进行管理,例如创建Bean对象,销毁一个Bean对象等操作.此外该容器还具有IOC和AOP高级特性,将Bean对象调用解耦.
1、 Spring容器配置
(1)创建工程,在src下引入applicationContext.xml配置文件,并添加spring-ioc开发包
在applicationContext.xml中声明定义Bean组件格式:
(2)Spring容器如何实例化
BeanFactory-->ApplicationContext(推荐)
ApplicationContext ac =
new ClassPathXmlApplicationContext("xml配置文件");
ac.getBean("标识符");//获取Bean组件对象
(3)Spring容器如何管理Bean组件
a、控制Bean组件对象的创建方式
在
singleton:采用单例方式创建(默认采用)
prototype:采用(原型)非单例方式创建
---------------------------------------------------
在以后Web环境中,scope还可以有几个扩展属性值.
request:将Bean对象与request对象绑定.
session:将Bean对象与session对象绑定.
---------------------------------------------------
b、Bean组件对象的创建时机
singleton模式:当实例化Spring容器时,会创建所有的单例对象。可以在
c、指定Bean组件对象创建后初始化和销毁处理方法
指定初始化方法:利用
一个是IoC,所谓“控制反转”,其实就是不用new操作符得到业务模型对象。例如:
Student s=new StudentImpl()得到一个 Student对象,在Spring中可以用 (Student)context.getBean("student")得到,context是Spring上下文对象。
spring中注意的一个设计模式是面向接口编程。Student实际是一个接口,如果你主动初始化Student,注意后面的“StudentImpl”这个类名被硬编码到你的类中了。用context.getBean方法不存在这样的问题,因为"student"这个bean是在文本的配置文件中配置的,如
另外一个AOP,这也是重要的特性,像事务性、安全性的逻辑不需要写在每个需要这些功能的类中,仅仅需要在配置文件配置即可。这样你写的类代码就更简洁、注重于它实际需要解决的问题。
Spring是流行的Java EE框架,轻量的。
如果要学,建议看 Spring In Action这本书,比较适合初学者。