计算机系统应用教程网站

网站首页 > 技术文章 正文

Spring框架知识点问答-NO5 spring框架概述

btikc 2024-10-15 09:03:41 技术文章 5 ℃ 0 评论

一.有哪些类型的通知(Advice)?

Before : 这些类型的Advice在poinPoint方法之前执行,并使用@Before注解标记进行配置。

After Returning:这些类型的Advice在连接点方法正常执行后执行,并使用@AfterReturning注解标记进行配置。

After Throwing:这些类型的Advice仅在joinpoint方法通过抛出异常退出并使用@AfterThrowing注解标记配置时执行。

After(finally):这些类型的Advice在连接点方法之后执行,无论方法退出是正常还是异常返回,并使用@After注解标记进行配置。

Around : 这些类型的Advice在连接点之前和之后执行,并使用@Around注解标记进行配置。

二.指出在Spring AOP 中 concern和corss-cutting concern的不同之处?

concern是我们想要在应用程序的特定模块中定义的行为。它可以定义为我们想要实现的功能。

cross-cutting concern是一个是适用于整个应用的行为,这会影响整个应用程序。例如,日志记录,安全性和数据传输是应用程序几乎每个模块都需要关注的问题,因为它们是跨领域的问题。

三.AOP 有哪些实现方式?

实现AOP的技术,主要分为两大类:

静态代理

指使用AOP框架提供的命令进行编译,从而在编译阶段就 可以生成AOP代理类,因此也称为编译时增强;

编译时编织(特殊编译器实现)

类加载时编织(特殊的类加载器实现)

动态代理

在运行时在内存中“临时”生成AOP动态代理类,因此也被称为运行时增强。

JDK动态代理

CGLIB

四.Sping AOP and AspectJ AOP 有什么区别?

Spring AOP 基于动态代理方式实现;

AspectJ基于静态代理方式实现。

Spring AOP 仅支持方法级别的PointCut;

提供了完整的AOP支持,它还支持属性级别的PointCut。

五.如何理解Sping 中的代理?

将Advice 应用于目标对象后创建的对象称为代理。在客户端对象的情况下,目标对象和代理对象是相同的。

Advice + Taget Object = Proxy

六.什么是编织(Weaving)?

为了创建一个advice对象而链接一个aspect和其他应用类型或对象,称为编织(Weaving)、

在Spring AOP中,编织在运行是执行。

七.Spring MVC 框架有什么用?

Spring Web MVC 框架提供了模型-视图-控制器架构和随时可用的组件,用于开发灵活且松散耦合的Web应用程序。MVC模型有助于分离应用程序的不同方面,如输入逻辑,业务逻辑和UI逻辑,同时在所有这些元素之间提供松散耦合。

八.描述一下Dispatcherservlet的工作流程

1.向服务器发送HTTP请求,请求被前端控制器DispatcherServlet捕获。

2.DispatcherServlet根据servlet.xml中的配置对请求的URL进行解析,得到请求资源标识符(URI)。然后根据该URI,调用HandlerMapper获得该Hander配置的所有相关的对象(包括Handler对象以及Handler对象对应的拦截器),最后以HandlerExceutionChain对象的形式返回。

3.DispatcherServlet根据获得的Handler,选择一个合适的HandlerAdapter。

4.提取Request中的模型数据,填充Handler入参,开始执行Handler(Controller)。在填充Handler的入参过程中,根据你的配置,Spring 将帮你做一些额外的工作:

HttpMessageConveter: 将请求消息(如Json、XML等数据)转换成一个对象,将对象转换为指定的响应信息。

数据转换:对请求消息进行数据转换。如String转换成Integer、Double等。

数据根式化:对请求消息进行数据格式化。如将字符串转换成格式化数字或格式化日期等。

数据验证:验证数据的有效性(长度、格式等),验证结果存储到BindingResult或Error中。

5.Handler(Controller)执行未完成后,向DispatcherServlet返回一个ModelAndView对象;

6.根据返回的ModelAndView,选择一个适合的viewResolver(必须是已经注册到Spring 容器中的ViewResolver)返回给DispatcherServlet。

7.ViewResolver结合Model和View,来渲染视图。

8.视图负责将渲染结果返回给客户端。

九.介绍一下WebApplicationContext

WebApplicationContext是ApplicationContext的扩展。

它具有Web应用程序所需要的一些额外功能。它与普通的ApplicationContext在解析主题和决定与哪个Servlet关联的能力方面有所不同。

十.使用Spring框架的好处是什么?

轻量:Spring是轻量的,基本的版本大约2MB。

控制反转:Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们。

面向切面编程(AOP):Spring 支持面向切面编程,并且把应用业务逻辑和系统服务分开。

容器:Spring 包含并管理应用中对象的生命周期和配置。

MVC框架:Spring的WEB框架是个精心设计的框架,是Web框架的一个很好的替代品。

事务管理:Spring提供了持续的事务管理接口,可以扩展到上至本地下至全局事务(JTA)。

异常处理:Spring提供方便的API把具体技术相关的异常(比如由JDBC,Hibernate or JDO跑出的)转化为一致的unchected异常。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表