Spring
一、什么是Spring
- spring 是一种开源的轻量级开发框架,是为了解决企业级开发的复杂性而建立的,它完成了大量开发中的通用步骤,开发者只需关注与业务相关的特定部分,大大提高了企业级应用程序开发的效率。

- spring一般指spring freamwork,主要由以下几个模块组成
1、Core Container (核心容器)
- Spring-Core和Spring-Beans是Spring框架的基础模块,提供Spring 框架的基本功能,管理着Spring框架中Bean的创建、配置和管理。核心容器的主要组件是BenaFactory,它是工厂模式的实现,BeanFactory使用DI将应用程序的配置和依赖性规范与实际的应用程序代码分开。
- Spring-Context :Spring上下文是一个配置文件,向Spring 框架提供上下文信息。提供了一种框架式的对象访问方法,
- Spring-expression:提供了一种功能强大的表达式语言,用于在运行时查找和操作对象图。
2、AOP and Instrumentation
- Spring-AOP:提供面向切面的编程
spring-aspects模块提供与AspectJ的集成- Spring-instrument提供类检测支持和类加载器的实现
- spring-messaging
3、Data Access/Integration
- JDBC
- ORM
- JMS
4、Web
- Spring-Web
- Spring-WebMVC
- spring-websocket
5、test
- Spring-test
二、对IOC和AOP的理解
1、IOC
IOC及控制反转,是一种设计思想,将创建对象的控制权转移到Spring容器,由容器根据配置文件创建和管理各个对象之间的依赖关系,对象与对象之间松耦合,利于对象的复用。
DI依赖注入,即应用程序运行时依赖IOC容器来动态注入需要的外部资源。
2、AOP
能够将那些与业务无关,但却对多个对象产生影响的公共行为和逻辑,抽取并封装为一个可用的模块,这个模块被命名为切面(Aspect),减少系统代码,降低模块间的耦合度,同时提高了系统的可维护性。常见的用法有权限认证、事务处理、日志记录等。
① spring aop与aspectJ的区别
spring aop使用动态代理
aspectJ是静态代理。
静态代理在编译期生成代理类。动态代理在运行是在内存中生成AOP对象
三、Spring Bean的作用域
1、singleton:默认,单例模式;
2、prototype:为每一个Bean请求创建一个实例;
3、requert:为每一个网络请求创建一个实例,请求结束后失效并被垃圾回收器回收
4、session:确保每个session中有一个Bean实例,在session失效后被回收
5、Global-session:全局作用域
四、Spring Bean的生命周期
1、实例化Bean
2、设置对象属性(依赖注入)
3、处理Aware接口
4、BeanPostProcessor
5、InitializingBean 与 init-method
6、DisposableBean
7、destroy-method
五、Spring 基于XML注入Bean的几种方式
1、set方法注入
2、构造器注入
3、静态工厂注入
4、实例工厂
六、Spring 中用了哪些设计模式
1、代理模式
2、工厂模式:BeanFactory
3、单例模式
4、模板方法:RestTemplate
5、观察者模式:spring中listener的实现:ApplicationListener

浙公网安备 33010602011771号