Spring的一些知识点

  1. 什么是Spring?

Spring是一种轻量级的开发框架,旨在提高开发人员的开发效率以及系统的可维护性。
Spring的核心模块
Spring的一些知识点_第1张图片
Spring Core是基础模块,可以说Spring的其他功能都要依赖于该类库,主要提供IOC的依赖注入功能;
Spring Aspects:该模块为与Aspects的集成提供支出;
Spring Aop: 提供了面向切面的编程实现;
Spring JDBC:为Java的数据库连接模块;
Spring JMS:Java消息服务;
Spring ORM:用于支持ORM工具;
Spring Web:为创建Web应用提供支持;
Spring Tests:提供Junit和TestNG测试的支持。

  1. 什么是Spring的IOC?

IOC(控制反转)是一种设计思想,就是将原本在应用程序中创建对象的控制权交由Spring的管理。IOC容器是Spring用来实现控制反转的载体,IOC容器实际上就是一个Map,Map中存放了各种对象。
将对象之间的相互依赖交由Spring去管理,并由IOC容器完成对象的注入,这样可以很大程度上简化应用的开发。

  1. 什么是Spring的AOP?

AOP(面向切面编程)能够将那些与业务无关,却为业务模块所共有的逻辑或责任(比如事务管理、日志管理、权限控制)封装起来,便于减少重复代码,降低模块间的耦合度,并利于将来的可扩展性和可维护性。

  1. Spring 中的 bean 的作⽤域有哪些?
  • Singleton (单例):唯一的bean实例,Spring中的bean默认都是单例的;
  • Prototype: 每次请求都是创建一个新的bean实例;
  • Request: 每次http请求都会产生一个bean,该bean在当前http request内有效;
  • Session: 每次http请求都会产生一个bean,该bean在当前http Session内有效;
  • Global-session: 全局session作用域,仅仅在基于protlet的web应用中才有意义,Spring5已经没有了。
  1. Spring 的事务传播机制?
  • required: 如果当前存在事务,则加入该事务;如果不存在事务,就新开启一个事务,默认的事务传播机制。
  • supports: 如果当前存在事务,则加入该事务;如果不存在事务,就以非事务的方式运行。
  • mandatory: 如果当前存在事务,则加入该事务;如果不存在事务,则抛出异常。
  • required_new: 创建一个新的事物,如果当前存在事务,就把当前事物挂起。
  • not_supports: 以非事务方式运行,如果当前存在事务,则把当前事务挂起。
  • never: 以非事务方式运行,如果当前存在事务,则抛出异常。
  • nested: 如果当前存在事务,则创建⼀个事务,作为当前事务的嵌套事务来运⾏;如果当前没有事务,则该取值等价于required.
  1. Spring中bean的生命周期?
    1. 解析类得到BeanDefinition;
    2. 如果类有多个构造方法,推断类的构造方法;
    3. 确定构造方法,进行实例化得到一个对象;
    4. 对于对象中的属性进行依赖注入;
    5. 回掉Aware方法;
    6. 执行BeanPostProcesses的前置化方法;
    7. 调用初始化方法;
    8. 执行BeanPostProcesses的后置化方法;在这里进行AOP
    9. 如果当前Bean是单例的,则放入单例Map池中;
    10. 使用Bean;
    11. Spring容器关闭时候调用DisposableBean的destroy()方法;

你可能感兴趣的:(spring,java,后端)