Java 面试之技术框架

Spring

简介
Spring 是一种用来简化企业级应用开发的开源框架,包括Spring Framework, Spring Data, Spring Security,Spring Boot,SpringMVC等。Spring 家族最核心的概念当属 AOP 和 IoC,详解见下节。其中 Spring 优点如下:

降低了组件之间的耦合性 ,实现了软件各层之间的解耦

可以使用便捷的众多服务,如事务管理,消息服务等

容器提供了AOP技术,利用它很容易实现如权限拦截,运行期监控等功能

Spring对于主流的应用框架提供了集成支持,如Hibernate、JPA等

Spring属于低侵入式设计,代码的污染极低

Spring的高度开放性,开发者可以自由选择Spring的部分或全部

AOP和IOC

AOP(Aspect Oriented Programming,面向切面编程)
AOP简单说就是在目标方法执行前后自定义一些操作,一般都是基于代理模式来实现的,Spring支持两种代理模式,JDK原生代理和CGLib代理。AOP给程序带来良好的扩展性和封装性,可以实现业务代码与非业务代码的隔离。比如可以在不改变目标代码的前提下实现目标方法的增强:埋点业务处理、方法执行时间监控,打印日志,权限控制等等。

JDK动态代理是利用反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHandler来处理。只能对实现了接口的类生成代理。

CGLib动态代理是利用ASM开源包,对代理对象类的Class文件加载进来,通过修改其字节码生成子类来处理。

切面(Aspect):类是对物体特征的抽象,切面就是对横切关注点的抽象。

切点(Pointcut):对连接点进行拦截的定义。

连接点(Joinpoint):被拦截到的点,比如方法(Spring中一般是方法)、字段、构造器。

通知(Advice):指拦截到连接点后要执行的代码,通知分为前置、后置、异常、最终、环绕五类。

AOP:在运行时,动态地将代码切入到类的指定方法、指定位置上的编程思想

IoC(Inversion of Control,控制反转)

IOC (Inversion of Control,控制反转):对象之间的依赖关系由容器来创建。本来对象之间的关系是由开发者自己创建和维护的,在使用Spring框架后,对象之间的关系由容器来创建和维护,将开发者做的事让容器做,这就是控制反转。BeanFactory接口是Spring Ioc容器的核心接口。

DI (Dependecy Injection,依赖注入):我们在使用Spring容器的时候,容器通过调用set方法或者是构造器来建立对象之间的依赖关系。注入方式有设值注入、构造注入、注解注入、接口注入(基本不用),设值注入直观,自然;构造注入可以在构造器中决定依赖关系的顺序。

控制反转是目标,依赖注入是我们实现控制反转的一种手段。

SpringMVC和Struts

SpringMVC执行流程如下:

客户端向Spring容器发起一个HTTP请求。

发起的请求被前端控制器(DispatcherServlet)拦截。

查询处理器映射(HandlerMapping)得到执行链,并请求相应的处理器适配器(HandlerAdapter)。

执行处理器(Handler)并处理请求,以Mode

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值