用STS创建springboot工程的两种方法
方法一
1、 不使用eclipse,而是使用STS(spring tool suite)
2、 打开spring.io,进入https://start.spring.io/创建一个简单的spring boot工程
3、自动生成的工程结构
Pom文件
Yml和properties的区别
4、加入依赖
5、书写controller

6、访问页面时出现错误
This application has no explicit mapping for /error, so you are seeing this as a fallback.
Application启动类的位置不对.要将Application类放在最外侧,即包含所有子包
原因:spring-boot会自动加载启动类所在包下及其子包下的所有组件.
方法二
右键 -》 new -》 spring stater project
选中需要的依赖
三、构造并返回一个json

@JsonIgnore注解(不返回某个属性)
@JsonFormat注解(时间格式化)
@JsonInclude(Include.NON.NULL)(不返回为null的字段属性)

Springboot的热部署
使用devtools可以实现热部署(即页面修改后会立即生效,这个可以在application.properties文件中配置spring.thymeleaf.cache=false来实现)
Devtools会监听classpath下的文件变动,并会立即重启应用(发生在保存时机,重启的时候只是加载在开发的class,没有重新加载第三方的jar包,重启的时候比较快)
步骤一
加入依赖
步骤二
配置application.properties文件(可以不用)
资源文件属性配置
资源文件中的属性配置映射到实体类
1、加入(资源文件读取的)依赖
2、创建一个资源文件(resource.properties)
1、 创建一个Resource.java实体类
@configuration代表会引用资源文件
@propertysource资源文件的地址 (claspath:属性文件名)
@configurationproperties(prefix=””)将前缀注入到属性中(要和资源文件中属性名前面的包路径相同)
2、 创建controller 注入实体类
3、 BeanUtil.copyproperties()通过反射将一个对象的值赋值个另外一个对象(前提是对象中属性的名字相同)
资源文件配置server
Springboot整合freemarker
1、加入freemarker依赖
2、配置application.properties文件
server.servlet.context-path 和 spring.freemarker.template-loader-path不能同时配置,tomcat启动会报错
3、创建文件目录并在目录下创建center.ftl页面
4、创建FreemarkerController
不能用@restcontroller注解,否则返回的不是一个页面而是字符串
5、访问页面
freemarker后台向前台传值
1、 controller
2、ftl页面获取值
Springboot整合thymeleaf
1、 引入thymeleaf模板依赖
2、 application.properties增加配置信息
3、创建目录和html文件
4、创建controller
5、 访问页面
Thymeleaf前台接收后台的值
1、html页面(获取值的方法)
2、 controller
Freemarker和thymeleaf
Thymeleaf常用标签的使用方法
表单 URL text和utext
Springboot 全局异常捕获
方法一:页面跳转
不能加引号
注意error.html的文件路径
1、 创建异常的助手类
2、创建一个发生异常的controller
3、创建error页面
4、访问页面
方法二:Ajax
根据判断请求头的X-Requested-With属性判断
String requestType = request.getHeader("X-Requested-With");
if("XMLHttpRequest".equals(requestType)){
System.out.println("AJAX请求..");
}else{
System.out.println("非AJAX请求..");
//此时requestType为null
}
整合mybatis使用generator生成mapper和pojo类
1、 加入jar包
2、在application中增加配置信息(serverTimezone不写会有问题)
3 加入生成文件及其启动类
4 在项目的跟目录下加入生成配置文件,在Utils中加入其启动类
在utils包下加入一个mymapper接口继承mapper和mysqlmapper
创建一个mapper包
该接口不要放在启动类的子包下面
5、在启动类上加注解、注意导包
基于mybatis实现增删改查
Service seviceImpl controller
使用pageHelper进行分页
自定义mapper查询(多用于多表查询)
在com.example.demo.mapper包下创建映射接口类
在mapper下创建映射的xml文件
这两个文件通过<mapper namespace=””>关联
在serviceimpl中注入mapper接口
调用自己的方法即可
Springboot整合持久层事务
事物的隔离级别 事物的传播行为
增删改
查
Springboot整合定时任务
@Enablescheduling(启动类上添加)
@component(测试类上的注解)
@scheduled(fixedrate=)(测试类中方法上的注解)
@scheduled(cron=””)表达式生成地址: cron.qqe2.com
Springboot异步执行程序
@EnableAsync开启异步,会自动扫描(启动类)
@copmonent @Async作为组件被容器扫描执行
异步取最大时间
同步是时间累加
使用场景:发送短信 发送邮件 App消息推送 节省运维凌晨发布任务时间提供效率
Springboot拦截器的使用
@configuration(表明这个类是个适配器)
继承WebMvcConfigurerAdapter
重写addInterceptors