文章目录
1、启动方式
@EnableAutoConfiguration
项目:SpringBoot_01
备注:
- 启动方式1:@EnableAutoConfiguration
- 入门Hello World项目
- 使用SpringBoot整合框架中的 spring-boot-starter-parent,parent(整合第三方常用框架依信息)
@ComponentScan
项目:SpringBoot_02
备注:
- 启动方式2:@ComponentScan + @EnableAutoConfiguration
- 单独写《启动类》《控制类》
- 启动类中@ComponentScan指定扫描包范围
- 启动类中@ComponentScan指定扫描包范围
@SpringBootApplication
项目:SpringBoot_03:
备注:
- 启动方式3:@SpringBootApplication
- @SpringBootApplication启动方式可以扫描所有子包
2、访问项目中《静态资源》
项目:SpringBoot_04
备注:项目中只有一个启动SpringBoot的App类,无其他类,静态资源放在/resources/static/中,即可通过项目链接+资源名称,即可访问。
3、整合FreeMaker
3.1、基本用法
项目:SpringBoot_05
备注:
- 导入FreeMaker Maven依赖
- 配置FreeMaker的.ftl文件,目录:src/main/resources/templates/中
- 控制类,FTLController中注解使用的是@Controller,因为方法ftlindex跳转的是ftl配置文件,而不是直接返回的数据,所以不能用@RestController
FTLController中方法名写成了ftlIndex,有空修改下,应该改成ftl
3.2、FreeMaker语法(用法)
项目:SpringBoot_06
备注:FTLController中ftl方法,return返回的是模板名称,也就是模板的文件的名称
4、使用JSP渲染Web视图
项目:SpringBoot_07
备注:
- 项目类型是:war类型,在pom.xml(文件中体现)
-问题:
1.为什么是war类型,而不是jar类型,SpringBoot好像是对jsp支持不是那么好,好像也不推荐在项目中写jsp,这个问题目前还不确定,当做一个疑问先放在这里,待解决完善此问题。
2.项目如果是通过Eclipse中maven创建出来的是不自带webaap目录的,如果想要放入jsp相关页面文件,需要手动创建,图中有解释
3.JspController类标注的注解是@Controller,因为不是返回数据所以使用的是这个,具体原因待理解
4.JspController中的jsp方法,定义的请求@RequestMapping("/jsp"),如果想要访问到jsp文件需要两者保持相同的名称才行,如果不同是无法访问的,具体原理待完善,是否支持自定义名称待了解
5、捕获异常
5.1、错误案例
项目:SpringBoot_08
备注:
项目中方法没有对异常已经捕获,在访问执行方法后程序报错,页面提示错误,而实际需求是将程序错误捕获到,页面不提示错误,将页面指向美化后的错误提示页面。
5.2、try捕获异常(方案)
项目:SpringBoot_09
备注:
- URL地址访问时携带参数,方法接参数用于方法计算
- 将计算代码写在try方法体中,如果计算代码出现错误,try将捕获到错误信息并执行catch方法体代码
- 次捕获写法是程序遇到错误捕获然后终止运行,写可以写成不终止运行,仅记录。
5.3、全局捕获异常
项目:SpringBoot_10
备注:
-
@ControllerAdvice:是Spring3.2提供的新注解,它是一个Controller增强器,可对controller中被 @RequestMapping注解的方法加一些逻辑处理。最常用的就是异常处理
-
@ E x c e p t i o n H a n d l e r \color{red}{@ExceptionHandler} @ExceptionHandler:
@ExceptionHandler -
ExceptionTool作用是监控其他类的错误异常,统一处理,而此时就不用在方法中单独写捕获异常方法。
6、SpringBoot 日志
6.1、SpringBoot整合Log4j
项目:SpringBoot_11
备注:
基于:基于Log4j配置文件方式实现
6.2、SpringBoot基于AOP实现统一处理Web请求日志
项目:SpringBoot_12
备注:
- 基于AOP实现
- 注解:
@Aspect:相当于aop:aspect/表示通知类在当前方法中
@Component:类被Spring管理
@Before:作用就是在一个类中最先执行的方法
@AfterReturning: 标注一个类为Spring容器的Bean,(把普通pojo实例化到Spring容器中,相当于配置文件中的)
7、SpringBoot集成lombok生成工具
项目:SpringBoot_12
备注:
配置 lombok 的Maven依赖
实体类中标注:@Getter、@Setter、@Data
IDEA开发工具自带lombok插件功能
Eclipse需要通过:在线(或)安装包,安装
Eclipse安装包:lombok.7z(文件坐标:L5COa3h1k7Pa)