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

相关推荐
化作星辰2 分钟前
java 给鉴权kafka2.7(sasl)发送消息权限异常处理
java·大数据·开发语言·kafka
无极小卒2 分钟前
如何在三维空间中生成任意方向的矩形内部点位坐标
开发语言·算法·c#
克里斯蒂亚诺更新6 分钟前
微信小程序 点击某个marker改变其大小
开发语言·前端·javascript
user_admin_god15 分钟前
企业级管理系统的站内信怎么轻量级优雅实现
java·大数据·数据库·spring boot
q***829116 分钟前
Spring Boot 3.3.4 升级导致 Logback 之前回滚策略配置不兼容问题解决
java·spring boot·logback
Kuo-Teng23 分钟前
LeetCode 206: Reverse Linked List
java·算法·leetcode·职场和发展
yaoxin52112324 分钟前
237. Java 集合 - 对 List 元素进行排序
java·windows
yaoxin52112329 分钟前
236. Java 集合 - 使用索引访问 List 元素
java·windows·list
humors2211 小时前
服务端开发案例(不定期更新)
java·数据库·后端·mysql·mybatis·excel
百***68041 小时前
JavaWeb项目打包、部署至Tomcat并启动的全程指南(图文详解)
java·tomcat