提炼了一些Spring的知识点,面试题中经常会涉及到。
什么是Spring?------开源的控制反转和面向切片的容器框架。
Spring框架的特点------ 1.轻量:Spring是轻量级的
2.控制反转:Spring通过控制反转实现了松散耦合,由对象给出他们的依赖,而不是创建或者查找依赖的 对象们。
3.面向切面的编程AOP:Spring支持面向切面的编程,并且把应用业务逻辑和系统服务分开。
4.容器:Spring包含并管理应用中对象的生命周期和配置。
5.MVC框架:Spring-MVC。
6.事务管理:Spring提供一个持续的事务管理接口,可以扩展到上至本地事务下至全局事务JTA。
7.异常处理:Spring提供方便的API把具体技术相关的异常。
Spring框架的优势------1.降低组件之间的耦合度,实现各层之间的解耦。
2.可以使用容器提供的众多服务。如:
--事务管理服务
--JMS
--Spring core核心服务
--持久化服务
3.提供了单例模式支持。
4.提供了AOP技术。
5.提供了众多的辅助类。
6.对主流的应用框架提供了集成支持。
Spring的模块构成------spring核心容器 spring上下文 springAOP springDAO springORM springWeb springMVC
Spring的设计模式------主要实现了两种,单例模式和工厂模式。
Spring依赖注入的实现策略------三种,接口注入,构造注入 ,设值注入。
Spring实例化bean的方式------三种,默认使用类加载器,静态工厂方法实例化,实例工厂方法实例化。
AspectJ的相关知识点------ AspectJ是Spring里AOP的一种实现,可以和JAVA配合使用。
1.Aspect: Aspect 声明类似于 Java 中的类声明,包含着一些 Pointcut 以及相应的 Advice。
2.Joint point(连接点):表示在程序中明确定义的点,包括方法调用,对类成员的访问以及异常处 理程序块的执行等等,可以嵌套其它 joint point。
3.Pointcut(切入点):表示一组 joint point,这些 joint point或是通过逻辑关系组合起来,或是通过 通配、正则表达式等方式集中起来,它定义了相应的 Advice 将要发生的地方。
4.Advice 定义了在 pointcut 里面定义的程序点具体要做的操作,它通过 before、after 和 around 来 区别是在每个joint point 之前、之后还是代替执行的代码。