收藏!Spring必须掌握的内容

mysql教程 栏目为大家介绍Spring必须掌握的内容。 大家好!我是热心的朝阳群众。 Spring框架在面试中是一个必问点,里面究竟有哪些内容呢?让我们一起来看看。这也是我在面试中经常

mysql教程栏目为大家介绍Spring必须掌握的内容。

大家好!我是热心的朝阳群众。

Spring框架在面试中是一个必问点,里面究竟有哪些内容呢?让我们一起来看看。这也是我在面试中经常会问到的问题,也是体现一个程序员对框架理解的能力。

介绍一下Spring框架

Spring是一种轻量级框架,旨在提高开发人员的开发效率以及系统的可维护性。

我们一般说的Spring框架就是Spring Framework,它是很多模块的集合,使用这些模块可以很方便地协助我们进行开发。这些模块是核心容器、数据访问/集成、Web、AOP(面向切面编程)、工具、消息和测试模块。比如Core Container中的Core组件是Spring所有组件的核心,Beans组件和Context组件是实现IOC和DI的基础,AOP组件用来实现面向切面编程。

Spring的6个特征:

Spring AOP和AspectJ AOP的区别

Spring AOP是属于运行时增强,而AspectJ是编译时增强。Spring AOP基于代理(Proxying),而AspectJ基于字节码操作(Bytecode Manipulation)。

Spring AOP已经集成了AspectJ,AspectJ应该算得上是Java生态系统中最完整的AOP框架了。AspectJ相比于Spring AOP功能更加强大,但是Spring AOP相对来说更简单。

如果我们的切面比较少,那么两者性能差异不大。但是,当切面太多的话,最好选择AspectJ,它比SpringAOP快很多。

Spring中的bean的作用域有哪些?

大部分时候我们并没有在系统中使用多线程,所以很少有人会关注这个问题。单例bean存在线程问题,主要是因为当多个线程操作同一个对象的时候,对这个对象的非静态成员变量的写操作会存在线程安全问题。

有两种常见的解决方案: