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

相关推荐
非优秀程序员8 小时前
第04章 邮箱大战,163 与 QQ 的暗战|《互联网产品恩仇录》
java·vue.js·架构
知已难寻8 小时前
Docker 入门:容器技术与 Docker 基础
java·运维·服务器·docker·云原生·容器
沐晓时光8 小时前
C语言入门,内存函数知识讲解
c语言·开发语言
文丑颜不良啊10 小时前
LeetCode2481~2500题目解析
java·leetcode
Flynn Liang11 小时前
同一需求三套写法:用 Spring AI、LangChain4j、AgentScope Java 各实现一个带工具调用的 RAG 助手(实战对比)
java·人工智能·大模型·架构设计·spring ai·langchain4j·agentscope
聪明的笨猪猪12 小时前
实际工程问题:AI 生成 Spring Cache(@Cacheable / @CachePut / @CacheEvict)缓存注解踩坑
java·经验分享·面试·ai编程
愿有所息12 小时前
记一次 ARM64 + JDK8 上 fastjson2 的诡异数据错乱
java
秋饼12 小时前
MCP 2026-07-28 无状态协议大改版:Spring AI 2.1 多轮往返请求与网关路由落地
java·ai·技术分享·后端开发
SL_staff14 小时前
JVS-BI 实战:业务人员如何用零代码 ELT + 可视化配置构建实时经营分析闭环
java·spring·全栈
SL_staff14 小时前
企业AI落地难?JVS-AI渐进式实践:安全可控、小切口验证、标准化沉淀与规模化复制
java·开源·aigc