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

 

posted @ 2020-05-20 21:55  啊哈突突突  阅读(169)  评论(0)    收藏  举报