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

相关推荐
初次攀爬者17 分钟前
RocketMQ在Spring Boot上的基础使用
java·spring boot·rocketmq
花花无缺22 分钟前
搞懂@Autowired 与@Resuorce
java·spring boot·后端
Derek_Smart2 小时前
从一次 OOM 事故说起:打造生产级的 JVM 健康检查组件
java·jvm·spring boot
NE_STOP3 小时前
MyBatis-mybatis入门与增删改查
java
孟陬6 小时前
国外技术周刊 #1:Paul Graham 重新分享最受欢迎的文章《创作者的品味》、本周被划线最多 YouTube《如何在 19 分钟内学会 AI》、为何我不
java·前端·后端
想用offer打牌6 小时前
一站式了解四种限流算法
java·后端·go
华仔啊6 小时前
Java 开发千万别给布尔变量加 is 前缀!很容易背锅
java
也些宝7 小时前
Java单例模式:饿汉、懒汉、DCL三种实现及最佳实践
java
Nyarlathotep01138 小时前
SpringBoot Starter的用法以及原理
java·spring boot