# Spring **Repository Path**: QQ316136035/Spring ## Basic Information - **Project Name**: Spring - **Description**: Spring全套 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-12-08 - **Last Updated**: 2025-04-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README A001_Spring_IoC ├── A001_BeanFactory快速入门 ├── A002_applicationContext快速入门 A002_Spring_IoC_xml ├──xml的讲解 A003_Spring_LifeCycle ├──生命周期 A004_Spring_MyBatis ├──Spring_MyBatis和properties A005_Spring_Annotation ├──注解配置 Spring的Java配置类,替代传统的XML配置文件(如applicationContext.xml) A006_Spring_Annotation_MyBatis ├──注解配置 MyBatis A007_Spring_AOP ├──(模拟AOP面向切面编程思想 )编程范式,旨在通过分离横切关注点(cross-cutting concerns)来提高模块化。 横切关注点是指那些影响多个类或模块的功能,如日志记录、事务管理、安全性等。 在传统的面向对象编程中,这些关注点通常散布在代码库的各个部分,导致代码重复和难以维护。 A008_Spring_Aop_xml ├──Aop面向切面编程_xml的配置讲解 A009_Spring_Aop_Annotation ├──AOP面向切面编程_注解配置 A010_Spring_xml_MyBatis_Aop_Transaction ├──xml配置 AOP面向切面编程 MyBatis事务管理 A011_Spring_Annotation_MyBatis_Aop_Transaction ├──Annotation注解配置 AOP面向切面编程 MyBatis事务管理 A012_Spring_xml_WebMvc ├──A012_Spring_xml_WebMvc xml方式配置 WebMvc ├── src │ ├── main │ │ ├── java │ │ │ └── vip │ │ │ └── taoshenjia │ │ │ ├── controller (控制器类,处理 HTTP 请求) │ │ │ ├── service 业务逻辑层,实现应用程序的核心功能 │ │ │ ├── dao (数据访问层,负责与数据库交互) │ │ │ ├── Interceptors ( 拦截器,用于在应用程序处理请求之前或之后执行一些操作) │ │ │ └── model(实体类,表示应用程序中的对象模型) │ │ ├── resources │ │ │ ├── applicationContext.xml │ │ │ ├── Spring-mvc.xml │ │ │ └── log4j.properties │ │ └── webapp │ │ ├── WEB-INF │ │ │ ├── web.xml │ │ │ └── views │ │ └── static │ └── test │ ├── java │ └── resources A013_Spring_Annotation_WebMvc ├──A013_Spring_Annotation_WebMvc 注解配置 WebMvc ├── src │ ├── main │ │ ├── java │ │ │ └── vip │ │ │ └── taoshenjia │ │ │ ├── config (配置类Spring容器,Spring MVC的配置类) │ │ │ ├── controller (控制器类,处理 HTTP 请求) │ │ │ ├── dao (数据访问层,负责与数据库交互) │ │ │ ├── Initialization (初始化 基于Java配置的Spring MVC应用) │ │ │ ├── model(实体类,表示应用程序中的对象模型) service │ │ │ ├── Interceptors ( 拦截器,用于在应用程序处理请求之前或之后执行一些操作) │ │ │ └── service 业务逻辑层,实现应用程序的核心功能 │ │ ├── resources │ │ │ ├── applicationContext.xml │ │ │ ├── Spring-mvc.xml │ │ │ └── log4j.properties │ │ └── webapp │ │ ├── WEB-INF │ │ │ └── views │ │ ├── index.jsp │ │ └── static │ └── test │ ├── java │ └── resources A014_SpringBoot_Annotation_pom_yml ├──A013_Spring_Annotation_WebMvc 注解配置 SpringBoot 和pom.xml的配置 和yml文件的使用 A015_SpringBoot_Lombot ├──Lombot 日志 logback-spring.xml A016_SpringBoot_WebMvcConfigurer └── config (WebMvcConfigurer 接口的作用) WebMvcConfigurer 接口的作用 WebMvcConfigurer 接口在 Spring MVC 框架中用于自定义和扩展默认的 MVC 配置。它允许开发者通过实现该接口中的方法来自定义应用程序的 Web 层行为,而无需完全替换默认配置。具体作用包括: 路径匹配配置:通过 configurePathMatch 方法自定义路径匹配规则。 内容协商配置:通过 configureContentNegotiation 方法配置内容类型协商策略。 异步支持配置:通过 configureAsyncSupport 方法配置异步请求处理的支持。 默认 Servlet 处理:通过 configureDefaultServletHandling 方法配置默认 Servlet 的处理方式。 格式化器添加:通过 addFormatters 方法注册自定义的格式化器。 拦截器添加:通过 addInterceptors 方法添加自定义的拦截器。 资源处理器添加:通过 addResourceHandlers 方法配置静态资源的处理。 1.访问classpath:/META-INF/resources/webjars/ 一般是使用引入的3方JS 不常用 2.访问(resources静态资源:"classpath:/META-INF/resources/", "classpath:/resources/", "classpath:/static/", "classpath:/public/") 3.静态资源默认都有缓存规则的设置 所有缓存的设置,直接通过配置文件:spring.web cachePeriod:缓存周期;多久不用找服务器要新的。默认没有,以s为单位 cacheControl: HTTP缓存控制;https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Caching useLastModified:是否使用最后一次修改 静态页面index.html 要放在下面目录下classpath:/META-INF/resources/", "classpath:/resources/", "classpath:/static/", "classpath:/public/" 网页图标favicon.ico 要放在下面目录下classpath:/META-INF/resources/", "classpath:/resources/", "classpath:/static/", "classpath:/public/" CORS 映射添加:通过 addCorsMappings 方法配置跨域资源共享(CORS)。 视图控制器添加:通过 addViewControllers 方法简化视图映射。 视图解析器配置:通过 configureViewResolvers 方法配置视图解析器。 参数解析器添加:通过 addArgumentResolvers 方法添加自定义的参数解析器。 返回值处理器添加:通过 addReturnValueHandlers 方法添加自定义的返回值处理器。 消息转换器配置:通过 configureMessageConverters 和 extendMessageConverters 方法配置或扩展 HTTP 消息转换器。 异常解析器配置:通过 configureHandlerExceptionResolvers 和 extendHandlerExceptionResolvers 方法配置或扩展异常解析器。 错误响应拦截器添加:通过 addErrorResponseInterceptors 方法添加错误响应拦截器。 验证器获取:通过 getValidator 方法提供自定义的验证器。 消息代码解析器获取:通过 getMessageCodesResolver 方法提供自定义的消息代码解析器。 A017_SpringBoot_MIME └── config 自定义内容协商解析器和媒体类型 A018_SpringBoot_Internationalization_ExceptionHandling ├──国际化语言: messages_en_US.properties messages_zh_CN.properties 配置pom.xml和html页面 └──异常处理: ├──前后端分离 错误处理(@ControllerAdvice // 表示当前类为控制器增强类 前后端分类开发使用 @ResponseBody //表示返回的数据不是页面 而是json数据 @ExceptionHandler(Exception.class)//拦截所有异常) └──服务器端视图错误处理 1.解析一个错误页 a.如果发生了500、404、503、403 这些错误 i.如果有模板引擎,默认在 classpath:/templates/error/精确码.htmlii.如果没有模板引擎,在静态资源文件夹下找精确码.htmlb.如果匹配不到 精确码.html 这些精确的错误页,就去找5xx.html,4xx.htmli.如果有模板引擎,默认在 classpath:/templates/error/5xx.htmlii.如果没有模板引擎,在静态资源文件夹下找5xx.html2.如果模板引擎路径 templates下有 error.html 页面,就直接渲染 A019_SpringBoot_SSM ├──A019_SpringBoot_SSM 整合SSM 配置datasource(数据源)myBatis(框架)mapper(SLQ语句) ├── src │ ├── main │ │ ├── java │ │ │ └── vip │ │ │ └── taoshenjia │ │ │ ├── config (配置类Spring容器,Spring MVC的配置类) │ │ │ ├── controller (控制器类,处理 HTTP 请求) │ │ │ ├── listener ( 拦截器,用于在应用程序处理请求之前或之后执行一些操作) │ │ │ ├── mapper ( sql接口) │ │ │ ├── model(实体类,表示应用程序中的对象模型) service │ │ │ └── service 业务逻辑层,实现应用程序的核心功能 │ │ │ │ │ ├── resources │ │ │ ├──static ( 静态文件) │ │ │ ├── vip/taoshenjia/mapper (编写SQL语句) │ │ │ └──application.yml (配置文件) A020_SpringBoot_Profiles_PxternalConfiguration │ │ ├── 定义环境:@Profile │ │ │ └──特定环境的配置文件: │ │ │ application-{profile}.properties │ │ │ application-{profile}.yml │ │ │ 您可以通过替换 {profile} 为具体的环境名称来创建针对不同环境的配置文件。例如: │ │ │ application-dev.properties 或 application-dev.yml:开发环境配置 │ │ │ application-test.properties 或 application-test.yml:测试环境配置 │ │ │ application-prod.properties 或 application-prod.yml:生产环境配置 │ │ │ 使用: │ │ │ 命令行参数:java -jar myapp.jar --spring.profiles.active=dev │ │ │ 直接在 application.properties 或 application.yml 中声明: │ │ │ pplication.yml │ │ │ spring: │ │ │ profiles: │ │ │ active: dev # 开发环境切换 │ │ └── 外部配置: 配置文件优先级 按照从高到低的优先级排序:(子目录下的大于主目录的配置文件) 命令行配置:这是最高优先级的配置源。可以通过命令行传递参数给应用程序,例如 java -jar myapp.jar --server.port=8080。命令行参数会覆盖所有其他配置文件中的相同属性。 外部配置文件 config/application.yml:位于项目外部的 config 目录下的 application.yml 文件。此路径可以通过 --spring.config.location 参数指定,它会替代默认位置的所有配置文件19。 外部配置文件 application.yml:同样位于项目外部但不在 config 文件夹内,而是直接放在与 JAR 文件同级的位置。这也可以通过 --spring.config.location 参数指定。 项目根目录下的配置文件 config/application.yml:即 file:./config/ 路径下的配置文件。如果未通过命令行参数指定外部配置,则会自动加载此位置的文件19。 项目根目录下的配置文件 application.yml:即 file:./ 路径下的配置文件。它的优先级低于 file:./config/ 下的配置文件。 类路径下的配置文件 config/application.yml:即 classpath:/config/ 路径下的配置文件。这个位置通常是 src/main/resources/config/ 在开发环境中或打包后的 JAR 文件内的相应位置。 类路径下的配置文件 application.yml:即 classpath:/ 路径下的配置文件。这是最常见也是最低优先级的配置文件位置,通常是在 src/main/resources/ 中找到。 A021_SpringBoot_LifeCycleEvents └── SpringBoot生命周期事件 请求查看图解 A022_SpringBoot_CustomEvents └── 广播自定义事件监听器 A023_SpringBoot_MyBatis-Plus_actuator └── SpringBoot整合MyBatis-Plus ├── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── vip.taoshenjia/ │ │ │ ├── common/ # 通用工具类或常量类等 │ │ │ ├── config/ # 配置类,如数据库配置、日志配置等 │ │ │ ├── controller/ │ │ │ │ └── auth/ # 认证相关的控制器类 │ │ │ ├── entity/ │ │ │ │ ├── PO (Persistent Object) PO (Persistent Object) 持久化对象:这些对象表示数据库中的记录,并且通常与数据库表或视图一一对应。 PO 包含了数据库字段映射以及可能的基本业务逻辑,用于持久化存储的数据操作。 │ │ │ │ ├── DTO (Data Transfer Object) 数据传输对象 DTO 用来封装需要在网络上传输的数据,目的是减少网络通信次数和优化性能。 它们通常被设计成简单的容器,只包含数据属性而没有行为(方法),以便于序列化和反序列化。 │ │ │ │ ├── VO (View Object) 视图对象 VO用于展示层,特别是在Web应用中,它负责向客户端(如浏览器)呈现数据。VO可以是页面上的表单元素、表格行或其他用户界面组件的数据源。VO还可以包含额外的UI相关的属性或格式化后的数据 │ │ │ │ ├── RO 是一种模式,用来封装HTTP请求的数据,通常用于表示从客户端接收到的数据结构。它主要用于控制器层接收前端传来的数据,并且可以包含验证逻辑 │ │ │ │ └── │ │ │ ├── mapper/ # 映射器类,用于处理数据库操作 │ │ │ ├── server/ # 服务器相关的类 │ │ │ └── A023SpringBootMyBatisPlusActuatorApplication.java # 主启动类 │ │ └── resources/ │ │ ├── config/ │ │ │ ├── application-dev.yml # 开发环境配置 │ │ │ ├── application-prod.yml # 生产环境配置 │ │ │ └── application-test.yml # 测试环境配置 │ │ ├── static/ # 静态资源文件 │ │ ├── templates/ # 模板文件 │ │ ├── vip.taoshenjia.mapper/ │ │ │ └── UserMapper.xml # 用户映射器XML配置 │ │ ├── application.properties # 应用程序属性文件 │ │ └── logback-spring.xml # 日志配置文件 │ └── test/ │ └── java/ # 测试代码目录 └── ... src/main/java/ └── com └── example └── jwtsecurity ├── config │ └── SecurityConfig.java # Spring Security 配置 ├── controller │ └── AuthController.java # 认证相关API ├── dto │ ├── AuthRequest.java # 登录请求DTO │ └── AuthResponse.java # 登录响应DTO ├── exception │ └── GlobalExceptionHandler.java # 全局异常处理 ├── filter │ └── JwtRequestFilter.java # JWT认证过滤器 ├── model │ └── User.java # 用户实体类 ├── repository │ └── UserRepository.java # 用户数据访问接口(可选) ├── security │ ├── CustomUserDetails.java # 自定义UserDetails实现 │ └── CustomUserDetailsService.java # 自定义UserDetailsService ├── service │ └── AuthService.java # 认证服务(可选) ├── util │ └── JwtTokenUtil.java # JWT工具类 └── JwtSecurityApplication.java # Spring Boot主类 src/main/resources/ ├── application.yml # 应用配置文件 └── application-dev.yml # 开发环境配置文件(可选)