1轻量: Spring 是轻量的,基本的版本大约2MB。
2控制反转: Spring 通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们。
3面向切面的编程(AOP): Spring 支持面向切面的编程,并且把应用业务逻辑和系统服务分开。
4容器: Spring 包含并管理应用中对象的生命周期和配置。
5MVC框架: Spring 的WEB框架是个精心设计的框架,是Web框架的一个很好的替代品。
6事务管理: Spring 提供一个持续的事务管理接口,可以扩展到上至本地事务下至全局事务(JTA)。
7异常处理: Spring 提供方便的API把具体技术相关的异常(比如由JDBC,Hibernate or JDO抛出的)转化为一致的unchecked 异常
1ioc:Inversionof Control(中文:控制反转)是 spring 的核心,对于 spring 框架来说,就是由
2spring 来负责控制对象的生命周期和对象间的关系。
3简单来说,控制指的是当前对象对内部成员的控制权;控制反转指的是,这种控制权不由当前对象管理
4了,由其他(类,第三方容器)来管理
5. spring 有哪些主要模块
1spring core:框架的最基础部分,提供 ioc 和依赖注入特性。
2spring context:构建于 core 封装包基础上的 context 封装包,提供了一种框架式的对象访问方法。
3spring dao:Data Access Object 提供了JDBC的抽象层。
4spring aop:提供了面向切面的编程实现,让你可以自定义拦截器、切点等。
5spring Web:提供了针对 Web 开发的集成特性,例如文件上传,利用 servlet listeners 进行 ioc 容器
6初始化和针对 Web 的 ApplicationContext。
7spring Web mvc:spring 中的 mvc 封装包提供了 Web 应用的 Model-View-Controller(MVC)的实
8现。
6. spring 常用的注入方式有哪些?
1setter 属性注入
2构造方法注入
3注解方式注入
7. spring 中的 bean 是线程安全的吗?
1spring 中的 bean 默认是单例模式,spring 框架并没有对单例 bean 进行多线程的封装处理。
23实际上大部分时候 spring bean 无状态的(比如 dao 类),所有某种程度上来说 bean 也是安全的,但如果 bean 有状态的话(比如 view model 对象),那就要开发者自己去保证线程安全了,最简单的就是改变 bean 的作用域,把“singleton”变更为“prototype”,这样请求 bean 相当于 new Bean()了,所以就可以保证线程安全了。
45有状态就是有数据存储功能。
67无状态就是不会保存数据。