Java面题总结7

spring事务什么时候会失效

1:发生自调用,类里面使用this调用本类的方法()此时这个this对象不是代理类,而是UserService对象本身

2:方法不是public

3:数据库不支持事务

4:没有被spring管理

5:异常被吃掉,事务不会回滚或者抛出的异常没有被定义,默认为RuntimeException

什么是bean的自动装配,有哪些方式

开启自动装配,在xml配置文件<bean>定义autowire属性

XML 复制代码
<bean id="cutomer" class="com.xxx.xxx.Customer" autowire=""/>

autowire属性有五种装配的方式:

no-默认情况下,自动装配是通过ref属性手动设定的

byName根据类的属性名进行自动装配

XML 复制代码
Cutomer的属性名称是person,spring会将bean id为person的bean通过setter方法进行自动装配
<bean id="cutomer" class="com.xxx.xxx.Cutomer" autowire="byName"/>
<bean id="person" class="com.xxx.xxx.Person" />

byType根据bean的类型进行自动装配

XML 复制代码
Cutomer的属性名称是person,spring会将Person类型通过setter方法进行自动装配
<bean id="cutomer" class="com.xxx.xxx.Cutomer" autowire="byType"/>
<bean id="person" class="com.xxx.xxx.Person" />

constructor-类似byType,不过是应用于构造器的参数,如果一个bean与构造器参数的类型相同则进行手动装配,否则导致异常

XML 复制代码
Cutomer的属性名称是person,spring会将Person类型通过构造方法进行自动装配
<bean id="cutomer" class="com.xxx.xxx.Cutomer" autowire="construtor"/>
<bean id="person" class="com.xxx.xxx.Person" />

autodetect-如果有默认的构造器,则通过constructor方式进行自动装配,否则使用byType方式进行自动装配

@Autowired自动装配bean,可以在字段,setter方法,构造函数上使用

Sprin Spring MVC,Spring Boot有什么区别

spring是一个IOC容器,用来管理Bean,使用依赖注入实现控制反转,可以很方便的整合各种框架,提供AOP机制,方便将不同类不同方法中的共同处理抽取成切面,自动注入给方法执行

springmvc是spring对web框架的一个解决方案,提供了一个总的前端控制器Servlet,用来接受请求,然后定义一套路由策略,及适配执行handle,将handle结果使用视图解析式技术生成视图展现给前端

springboot是spring提供的一个快速开发工具包,让程序员能更方便,更快速的开发spring+springmvc应用,简化了配置,整合了一系列的解决方案

SpringMVC的工作流程

1:用户发送请求至前端控制器DispatcherServlet

2:DispatcherServlet收到请求调用HandlerMapping处理器映射器

3:处理器映射器找到具体的处理器,生成处理器及处理器拦截器一并返回给DispatcherServlet

4:DispatcherServlet调用HandlerAdapter处理器适配器

5:HandlerAdater经过适配调用具体的处理器(controller)

6:Controller执行完成返回ModelAndView

7:HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet

8:Dispatcher Servlet将ModelAndView传给ViewReslover视图解析器

9:ViewReslove解析后返回具体View

10:DispatcherServlet 根据View进销存渲染视图

11:DIspatcherServlet响应用户

Spring MVC的主要组件

1、HandlerMapping

处理器映射器,根据用户请求的资源uri来查找Handler

2、HandlerAdapter

适配器,让固定的Servlet处理方法调用灵活的Handler处理

3、HandlerExceptionResolver

根据异常设置ModelAndView,之后再交给render方法渲染

4、VIewResolver

用来将String类型的视图名和Locale解析为View类型的视图

5、RequestToViewNameTranslator

从request获取ViewName

6、LocaleResolver

用于从request解析出Locale

7、ThemeResolver

用于解析主题,主题对应properties文件

8、MuitipartResolver

用于处理上传请求,将普通的request包装成MuitpartHttpServletRequest

9、FlashMapManager

用来管理FaashMap

相关推荐
kyle~25 分钟前
Python---Flask 轻量级Web框架
开发语言·python·flask
云深处@1 小时前
【C++11】特殊类&&单例模式
开发语言·c++
烟花落o1 小时前
算法的时间复杂度和空间复杂度
开发语言·数据结构·笔记·算法
玹外之音1 小时前
Spring AI 实战:手把手教你构建支持多会话管理的智能聊天服务
java·spring
西门吹-禅1 小时前
node js 性能处理
开发语言·javascript·ecmascript
我不是8神1 小时前
go-zero微服务框架总结
开发语言·微服务·golang
Ronaldinho Gaúch1 小时前
算法题中的日期问题
开发语言·c++·算法
callJJ2 小时前
Spring Bean 生命周期详解——从出生到销毁,结合源码全程追踪
java·后端·spring·bean·八股文
怒放吧德德2 小时前
AsyncTool + SpringBoot:轻量级异步编排最佳实践
java·后端
麦德泽特2 小时前
机器人赛事系统架构:基于UDT和MQTT的低延迟、高可靠通信
c语言·开发语言·安全·系统架构·机器人