随笔分类 - 开发框架
摘要:在 Spring Boot 中,你可以使用 @ConfigurationProperties 注解将 YAML 配置文件中的属性绑定到实体类上。以下是一个简单的示例,展示了如何将 YAML 配置文件中的属性绑定到一个实体类上。 1. 创建 YAML 配置文件 首先,在 application.yml
阅读全文
摘要:在 Spring Boot 中,application.yml 是一种用于配置 Spring Boot 项目的文件格式。YAML(YAML Ain't Markup Language)是一种用于数据序列化的格式,比传统的 .properties 文件更具可读性。以下是 application.yml
阅读全文
摘要:注册 bean @Configuration + @Bean:配置类的 bean @Component、@Service、@Repository、@Controller:具有语义的 bean @Import:三种方式,可以批量导入 bean @ImportResource:导入一个 xml 配置文件
阅读全文
摘要:当调用 Mapper 接口的方法时,实际上调用的是代理对象的方法。由于代理对象是通过 JDK 动态代理生成的,因此方法调用会被转发给 InvocationHandler 的 invoke 方法。 1 MapperProxy.invoke() 的源码分析 MapperProxy 是 Invocatio
阅读全文
摘要:1. DispatcherServlet 的初始化流程 DispatcherServlet 是 Spring MVC 的核心入口,负责接收 HTTP 请求并将其分发给相应的处理器。它的初始化过程从 HttpServlet 的生命周期方法 init() 开始。 1.1 HttpServletBean
阅读全文
摘要:@ResponseBody 用于将方法的返回值直接写入 HTTP 响应体中,而不是渲染视图。它的核心逻辑与 @RequestBody 类似,但方向相反:将 Java 对象转换为 HTTP 响应体内容。 1. @ResponseBody 的处理入口:RequestMappingHandlerAdapt
阅读全文
摘要:在Spring MVC中,DispatcherServlet 是核心的请求分发器,负责将请求分发给相应的处理器(Controller)。@RequestBody 注解用于将HTTP请求体中的数据绑定到方法的参数上。下面是对 DispatcherServlet 和 @RequestBody 的源码分析
阅读全文
摘要:业务处理流程 请求匹配:通过 HandlerMapping 查找合适的处理器。 拦截器前置处理:执行所有的 HandlerInterceptor 的 preHandle 方法。 执行控制器方法:调用相应的控制器方法处理请求。 数据处理: 如果是视图返回,进行视图解析并渲染。 如果是数据返回,使用 H
阅读全文
摘要:继承关系 DispatcherServlet > FrameworkServlet > HttpServletBean > HttpServlet > GenericServlet > Servlet Servlet 容器每次接收到请求时都会调用 service() 方法,子类 HttpServle
阅读全文
摘要:九大组件 SpringMVC 中所有请求都会由 DispatcherServlet 处理和响应。DispatcherServlet 这个类中九个重要的属性,每个属性有不同的作用,如下: /** 文件上传解析器 */ @Nullable private MultipartResolver multip
阅读全文
摘要:@ControllerAdvice 是一个专门用于处理全局异常的注解,它允许你在一个地方定义全局异常处理逻辑,避免在每个控制器中重复定义异常处理方法。@ExceptionHandler 注解可以用来处理特定的异常。 @RestControllerAdvice = @ControllerAdvice+
阅读全文
摘要:在 Java Web 开发中,拦截器(Interceptor)、过滤器(Filter)和监听器(Listener)都是用于处理请求、响应、应用程序生命周期的组件,但它们在使用场景、功能和作用范围上有明显的区别。下面我将逐一说明它们的异同。 1. 过滤器(Filter) 作用范围 过滤器属于 Serv
阅读全文
摘要:在 Spring Boot 中,使用过滤器(Filter)可以让你在请求和响应处理流程中插入自定义逻辑。过滤器在 Spring Boot 中通常用于处理跨域请求、记录请求日志、进行身份验证、请求参数处理等。 下面是如何在 Spring Boot 中使用过滤器的步骤和示例。 1. 创建一个自定义过滤器
阅读全文
摘要:Spring MVC 拦截器(Interceptor)是 Spring 框架提供的一种用于在请求处理之前和之后对 HTTP 请求进行处理的机制。拦截器常用于处理日志、权限验证、性能监控等功能。 1. 定义拦截器 拦截器需要实现 HandlerInterceptor 接口,主要有三个方法: preHa
阅读全文
摘要:1. 方法是 private 私有的 Spring AOP 只拦截 public 方法,所以 private 方法 AOP 并不会拦截 解决方案 方案1:方法改为 public 方案2:事务的 AOP 的实现改为 AspectJ,AspectJ 可以拦截私有方法、构造方法、字段访问等 Spring
阅读全文
摘要:Spring 中使用 使用注解 @EnableTransactionManagement 开启事务 配置事务管理器 使用 @Transactional 注解标注某个方法就可以了 @Configuration @EnableTransactionManagement // 启用声明式事务 public
阅读全文
摘要:数据库的事务 概念和特性 事务是数据库操作的一个基本单元,它包含一组操作,这些操作要么全部成功执行,要么全部不执行,保持数据的一致性 原子性 (Atomicity):一个事务中的多个操作要么全部发生,要不都不发生 一致性 (Consistency):事务执行前后,数据从一个合法状态转为另一个合法状态
阅读全文
摘要:代理模式 生成一个扩展的类代替原来的类,可以不改变原始类代码的前提下增强原始类的功能 分为静态代理和动态代理,动态代理又有两种实现方式分别是:JDK和cglib 静态代理:一个代理类只能代理一个原始类,所以每个代理类都要手动编写代理类(硬编码) 动态代理:在 JVM 运行时动态根据原始类创建代理类,
阅读全文
摘要:一、execution 表达式 语法格式 execution([修饰符] 返回类型 [类全路径].方法名(参数列表) [throws 异常]) 示例 // 匹配所有方法 execution(* *(..)) // 匹配特定包下的所有方法(不会递归,当前包合当前包的子包) execution(* co
阅读全文

浙公网安备 33010602011771号