Spring Action--1--基本概念和理念
2017-02-04 14:46 Qin奋 阅读(809) 评论(0) 收藏 举报1.使用Spring的目的:
Spring用于整合,好处是解耦。 解耦。
我们在使用Spring框架时,主要是使用Spring容器的两个特性:IoC和AoP。
2.详解IoC:
IoC全称Inverse of Control(控制反转)。 在类和类之间存在控制权,控制权指的是对象的创建和使用, 比如有类A和类B,我们之前的做法是在A中调用B,那么控制权就在A中,这样做的耦合度较高, 如果修改了B,A也要做相应修改。 引入Spring框架后,控制权由spring容器来负责。当A想使用B时,需要由Spirng容器通过 配置文件进行注入。这种思想就是IoC(为了更好的理解,我们可以这样认为,对象创建和使用 的控制权转移到了Spring容器,由Spring容器来控制)
这里说的“如果修改了B,A也要做相应修改”是指没有使用接口,直接在A中new B, 而有一个与B逻辑类似的C,想要将A中的B换成C,就需要修改A中New B的代码。这种情景在实际应用中很多。
解决方案1,使用工厂模式,B和C都是工厂生产出来的bean,A中调用工程来生产bean
解决方案2,方案1还是得修改代码。使用Spring容器充当一个高级的生产管理bean的工厂,用xml文件来管理bean.
3.详解AOP:
AOP为Aspect Oriented Programming的缩写,意为:面向切面编程(也叫面向方面), 可以通过预编译方式和运行期劢态代理实现在丌修改源代码的前提下给程序动态统一添加功能的一 种技术。 Struts2中的拦截器,就是使用AOP的思想。使用AOP思想编写程序,会是程序更加灵活。 一般而言,使用Spring框架的主要作用: 我们会使用IoC整合组件(各种Bean),使用AOP来管理事务。
4.提一个问题: bean对象的创建模式是什么,是单例模式创建Bean对象还是每次创建都是新的?
Spring容器是通过单例模式创建Bean对象的,也就是说, 默认情况下,通过调用ac.getBean("mybean")方法获得的对象都是同一个mybean对象
使用单例模式有风险,风险在于多线程并发访问时会有一些状况。 那么如何取消容器默认单例模式创建对象?
scope属性的取值 在web(仅限于web项目)环境中,还可以设置所创建的bean对象的生命周期和 request、session
- request 表示bean对象生命周期和request生命周期相同
- session 同session
- global session 相当于application
- single
- prototype
Bean对象的初始化和销毁 init-method属性用于指定初始化方法 destroy-method属性用于指定销毁方法,仅适用于singleton模式
(form Spring Action)

application:



bean的创建过程:

Spring模块:


浙公网安备 33010602011771号