# spring_boot_Hibernate **Repository Path**: newly-released_0/spring_boot_-hibernate ## Basic Information - **Project Name**: spring_boot_Hibernate - **Description**: springboot学习包含mabtis、hibernate、redis、jwt、日志、rabbitmq、testng、allure - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-07-16 - **Last Updated**: 2025-09-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### mvn clean package 重新加载包 ### mvn spring-boot:run 本地启动 ### mvn package spring-boot:repackage 打包 ### mvn test -Dtest=RabbitMQUnitTest 只测试某个测试用例 ### mvn spring-boot:run -Drun.jvmArguments="-Dspring.profiles.active=dev" 指定环境 ### mvn spring-boot:run -Drun.jvmArguments="-Xms512m -Xmx512m" 设置内存上限 ### mvn spring-boot:run -Drun.jvmArguments="-Dspring.profiles.active=dev -Xms512m -Xmx512m" ### Spring Boot(Spring MVC)中一次 HTTP 请求的核心执行流程如下: #### Servlet 容器(如 Tomcat)接收请求 #### 进入 Servlet 容器(Tomcat/Jetty/Undertow),首先经过所有注册的 Filter(过滤器)。 #### Filter(过滤器)链 依次执行 doFilter,决定是否放行请求。 #### DispatcherServlet(前端控制器) #### Filter 链通过后,所有请求都会被转发到 DispatcherServlet。 #### DispatcherServlet 是 Spring MVC 的核心,负责请求分发和整个 Web 流程的调度。 #### HandlerMapping(处理器映射) #### DispatcherServlet 根据请求路径找到对应的 Controller 方法(Handler)。 #### HandlerInterceptor(拦截器) #### 在调用 Controller 之前,依次执行 preHandle。 #### Controller 方法执行后,依次执行 postHandle 和 afterCompletion。 #### Controller(控制器)方法 #### 实际执行业务逻辑,返回 ModelAndView 或数据。 #### AOP 切面(如果有) #### Controller、Service 等方法如果被切面增强,会在方法前后执行切面逻辑。 #### ViewResolver(视图解析)/ ResponseBody #### 返回视图或 JSON 数据。 #### DispatcherServlet 响应处理 #### 统一处理响应,返回给 Servlet 容器。 #### Filter(过滤器)链(返回) #### 响应经过 Filter 链返回客户端。 ### 总结: ``` Filter → DispatcherServlet → Interceptor → Controller(AOP)→ Interceptor(after)→ DispatcherServlet → Filter(返回) DispatcherServlet 是 Spring MVC 的“总调度”,所有 Web 请求都经过它。 Filter 属于 Servlet 规范,DispatcherServlet 和 Interceptor 属于 Spring MVC, AOP 属于 Spring 框架。 ``` ### Spring Boot 配置文件的优先级(从高到低)如下: 命令行参数 例如:--server.port=8081,优先级最高。 JVM 系统属性 例如:-Dserver.port=8082 操作系统环境变量 例如:SERVER_PORT=8083 jar 包外部的 application-.properties 或 application-.yml 例如:/config/application.properties(与 jar 同级的 config 目录) 例如:/application.properties(与 jar 同级) jar 包内部的 application-.properties 或 application-.yml 例如:src/main/resources/application.properties 例如:src/main/resources/application-dev.properties @PropertySource 注解加载的配置文件 SpringApplication.setDefaultProperties 指定的默认属性 同一目录下,优先级顺序: application.properties < application.yml < application-{profile}.properties < application-{profile}.yml profile(如 dev、test、prod)激活后,application-dev.properties 会覆盖 application.properties 总结: 命令行参数 > 系统属性 > 环境变量 > 外部配置文件 > 内部配置文件 > 注解加载 > 代码默认 profile 文件优先级高于默认文件,外部文件优先级高于内部文件