持续更新中….
核心概念
IOC
: 控制反转,即将对象的创建工作交由Spring统一管理。
DI
: 依赖注入,Spring中的对象并非独立存在的,往往是相互依赖的,比如对象A中使用了对象B,在Spring进行对象初始化时就需要将对象B注入到对象A中。
AOP
: 面向切面编程,传统的面向对象编程(OOP)的代码逻辑通常是自上而下的,当我们要做一些针对不同代码逻辑的横向通用逻辑时,需要自己使用一些设计模式来实现,但Spring将这个工作已经做了这个工作,我们只需要编写业务逻辑和横向通用的逻辑,而不用关注横向通用逻辑如何跟业务逻辑结合工作的,达到横向逻辑与业务逻辑的解藕。
Bean的作用域
作用域 | 说明 |
---|---|
singleton |
单例,即Spring容器中一个类只有一个对象,所有的请求共用一个对象 |
prototype |
每次从容器中调用Bean时,都会返回一个新的实例,即每次调用getBean()时,相当于执行new XXxBean() |
request |
每次HTTP请求都会创建一个新的Bean,该作用域仅适用于WebApplicationContext环境 |
session |
同一个HTTP Session共享一个Bean,不同的Session使用不同的Bean,仅适用于WebApplicationContext环境 |
global-session |
一般用于Portlet应用环境,该作用域仅适用于WebApplicationContext环境,全局会话,所有会话共享一个实例 |
由于Spring中默认对象时单例的,防止出现线程安全问题,尽量不要申明变量(依赖注入的对象除外),避免类中的方法在不同线程中操作同一个变量
测试代码见:链接