SpringBoot相关知识点

本文深入讲解SpringBoot事件监听、模板引擎、web容器更换、静态资源管理、servlet API使用、拦截器配置、异常处理、事务管理、AOP开发流程、日志级别配置及日志组件替换等关键功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SpringBoot事件监听
1、自定义事件,一般是继承ApplicationEvent抽象类
2、定义事件监听器,一般是实现ApplicationListener接口
3、配置监听器,启动的时候,需要把监听器加入到Spring容器中
3、发布事件,使用ApplicationContext.publishEvent发布事件

配置监听器有4种方法
1、SpringApplication.addListeners 添加监听器
2、把监听器纳入到spring容器中
3、使用context.listener.classes配置(详细内容参照DelegatingApplicationLister)
4、使用@EventListener注解,在方法上面加入@EventListener注解,且该类需要纳入到spring容器中管理(详细内容参照EventListenerMethodProcessor,EventListenerFactory)

SpringBoot使用freemarker模板
第一步:在pom.xml里面加入如下依赖

<!--添加支持freemarker模块的依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>

第二步:默认的freemarker的模板文件在classpath:/templates/,下,默认的文件扩展名为:.ftl
如果想修改模板的默认文件路径,可以在配置文件中设置:例如,设置到classpath:/ftl/下,则如下所示:
spring.freemarker.templateLoaderPath=classpath:/ftl
多个的话用都好隔开

SpringBoot更换web容器
SpringBoot web默认使用的是tomcat作为web容器,可以更换为jetty
第一步:排除tomcat在这里插入图片描述

 <exclusions>
              <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
               </exclusion>
    </exclusions>

第二步:加入jetty依赖
在这里插入图片描述
完成

<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jetty</artifactId>
</dependency>

Springboot默认保存静态资源的位置有四个:
classpath:/META-INF/resources/,
classpath:/resources/,
classpath:/static/,
classpath:/public/
如果想修改,可以通过spring.resources.staticLocations来修改默认保存静态资源的位置例如:spring.resources.staticLocations=classpath:/html/

SpringBoot中使用servlet的API
方法一(servlet3可以使用这种方法):
1、编写servlet,然后加上相应的注解
2、需要启用@ServletComponentScan注解
方法二(servlet2.5及以下可以使用这种方法):
1、编写servlet
2、装配相应的bean到spring容器中
servlet->ServletRegistrationBean
filter->FilterRegistrationBean
listener->ServletListenerRegistrationBean在这里插入图片描述
SpringBoot使用拦截器的步骤
1、写一个拦截器,实现HandlerInterceptor接口
在这里插入图片描述
HandlerInterceptor接口
preHandle:controller执行之前调用
postHandle:controller执行之后,且页面渲染之前调用
afterCompletion:页面渲染之后调用,一般用于资源清理操作
2、写一个类,集成WebMvcConfigurerAdapter抽象类,然后重写addInterceptor方法,并调用registry.addInterceptor把上一步的拦截器加进去
在这里插入图片描述
springboot异常处理
如何去掉SpringBoot默认的异常处理
@SpringBootApplication(exclude = ErrorMvcAutoConfiguration.class)
自定义错误页面
在这里插入图片描述
全局错误处理
在这里插入图片描述
springboot使用事务
1、首先需要在类上使用@EnableTransactionManagement注解启用对事务的支持
2、在需要使用事务的方法上加上@Transactional注解
注意:默认只会对运行时异常进行事务回滚,非运行时异常不会回滚
rollbackFor可以设置对哪些异常进行回滚,默认是运行时异常
noRollbackFor可以设置对哪些异常不进行回滚,默认是非运行时异常在这里插入图片描述
SpringBoot aop 的开发流程
1、首先加入aop的依赖,默认就开启了aop的支持
在这里插入图片描述
2、写一个Aspect,封装横切关注点(日志、监控等到),需要配置通知(前置通知、后置通知等到)和切入点(那些包的哪些类的哪些方法等等)
在这里插入图片描述
3、这个Aspect需要纳入到spring容器管理@Component,并且需要加入@Aspect注解
spring.aop.auto配置项决定是否启用Aop,默认是启用的

SpringBoot默认是使用基于JDK的动态代理来实现AOP的
spring.aop.proxy-target-class=false或者不配置,表示使用JDK的动态代理
=true时表示cglig代理,如果配置了false,而类没有接口,则依然使用cglib
在这里插入图片描述
在springboot中默认的日志级别是info,可以通过logging.level.*=debug来配置日志,*可以是包,也可以是个类。日志级别包括:TRACE、 DEBUG、 INFO、 WARN、 ERROR、 FATAL、 OFF七种可以设置

springboot使用其他的日志组件的步骤:
1、排除掉默认的日志组件在这里插入图片描述
2、加入新的日志路径依赖
3、把相应的配置文件加入到classpath下

学习尚硅谷视频整理的文档 Spring Boot 1 1 Spring Boot入门 4 1.1 简介 4 1.2 微服务(martin fowler发表了一篇文章) 5 1.3 环境约束 7 1.4 第一个Spring Boot项目(jar):HelloWorld 8 1.5 入门案例详解 11 1.5.1 POM文件 11 1.5.2 主程序类,主入口类 12 1.6 使用Spring Initializer向导快速创建Spring Boot 16 2 Spring Boot配置 18 2.1 配置文件 18 2.2 YML语法 19 2.3 YML配置文件值获取 21 2.4 properties配置文件乱码问题 24 2.5 @ConfigurationProperties与@Value的区别 25 2.6 配置@PropertySource、@ImportResource、@Bean 27 2.7 配置文件占位符 30 2.8 Profile多环境支持 31 2.9 配置文件的加载位置 33 2.10 外部配置加载顺序 36 2.11 自动配置原理 37 2.12 @Conditional派生注解 41 3 Spring Boot与日志 42 3.1 日志框架分类和选择 42 3.2 SLF4j使用 43 3.3 其他日志框架统一转换成slf4j+logback 44 3.4 Spring Boot日志使用 45 3.5 Spring Boot默认配置 47 3.6 指定日志文件和日志Profile功能 52 3.7 切换日志框架(不使用SLF4j+LogBack) 54 4 Spring Boot与Web开发 55 4.1 Web开发简介 55 4.2 静态资源映射规则 56 4.3 引入Thymeleaf 60 4.4 Thymeleaf语法 61 4.5 SpringMVC自动配置原理 67 4.6 SpringBoot扩展与全面接管 70 4.7 如何修改SpringBoot的默认配置 72 4.8 【实验】CRUD操作 73 4.8.1 默认访问首页 73 4.8.2 登录页面国际化 74 4.8.3 登录 80 4.8.4 拦截器进行登录检查 81 4.8.5 实验要求(没按要求做,不想改了!) 82 4.8.6 CRUD-员工列表 83 4.8.7 CRUD-员工修改 86 4.8.8 CRUD-员工添加 87 4.8.9 CRUD-员工删除 88 4.9 错误处理原理&错误页面定制 90 4.10 配置嵌入式Servlet容器(springboot 1.50版本) 97 4.10.1 如何定制和修改Servelt容器的相关配置 97 4.10.2 注册servlet三大组件【servlet,filter,listener】 98 4.10.3 替换为其他嵌入式容器 102 4.10.4 嵌入式servlet容器自动配置原理 103 4.10.5 嵌入式servlet容器启动原理 103 4.11 使用外置的Servlet容器 104 4.11.1 步骤 104 4.11.2 原理 107 5 Spring Boot与Docker(虚拟化容器技术) 110 5.1 简介 110 5.2 核心概念 111 5.3 安装Docker 112 5.4 Docker常用命令&操作 113 5.5 安装MySQL示例 114 6 Spring Boot与数据访问 115 6.1 JDBC 115 6.1.1 实现 115 6.1.2 自动配置原理 116 6.2 整合Durid数据源 117 6.3 整合Mybatis 122 6.3.1 注解版 123 6.3.2 配置文件版 124 6.4 整合SpringData JPA 125 6.4.1 SpringData简介 125 6.4.2 整合 126 7 Spring Boot启动配置原理 128 7.1 启动流程(Springboot 1.50版本) 128 7.1.1 创建SpringApplication对象 129 7.1.2 运行run方法 130 7.1.3 编写事件监听机制 132 8 Spring Boot自定义starters 136 8.1 概述 136 8.2 步骤 137 9 更多Springboot整合示例 144 10 Spring Boot与缓存 145 10.1 JSR107缓存规范 145 10.2 Spring的缓存抽象 146 10.2.1 基本概念 146 10.2.2 整合项目 146 10.2.3 CacheEnable注解 148 10.2.4 Cache注解 150 10.3 整合redis 154 10.3.1 在Docker上安装redis 154 10.3.2 Redis的Template 154 10.3.3 整合(百度) 155
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值