fenlan

Everything gonna be fine in the end, if it's not fine, it's not the end.

0%

Spring 笔记

持续更新中….

核心概念

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中默认对象时单例的,防止出现线程安全问题,尽量不要申明变量(依赖注入的对象除外),避免类中的方法在不同线程中操作同一个变量

测试代码见:链接