1、SprgBoot优点:
1)、开箱即用,提供各种默认配置来管理项目,无需XML配置;
2)、内嵌式容器简化Web项目,无需部署War文件;
3)、简化Maven配置;
4)、独立的Spring应用程序;
5)、自动配合Spring;
2、使用SpringBoot系统要求;
1)、Java7以上;
2)、Spring Framework 4.1.5以上;
3、创建HelloWorld工程:
1)、创建一个类型为Jar的Maven工程;
2)、 pom文件引入依赖:
3)、编写Controller类:
a)、第一种启动方式:
b)、第二种启动方式(定义控制器扫包范围):
4、SpringBoot访问静态资源
1)、SpringBoot默认在classpath下提供静态资源目录,且目录名只能命名为一下规则:
/static
/public
/resource
/META-INF/resource
2)、访问路径:http://localhost:8080/1.png(注意不需要添加文件夹名称,SpringBoot启动默认配置好在classpath)
5、异常handler类切面拦截全局异常
1)、创建一个全局异常拦截Handler
@ControllerAdvice controller 的一个辅助类,最常用的就是作为全局异常处理的切面类,可以指定扫描范围,约定了几种可行
的返回值,如果是直接返回 model 类的话,需要使用 @ResponseBody 进行 json 转换,返回 String,表示跳到某个 view
6、渲染Web页面
1)、模板引擎
SpringBoot可以实现动态HTML,并且提供了多种模板引擎的默认配置支持,只有有以下几种:
a)、Thymeleaf
b)、FreeMarker
c)、Velocity
d)、Groovy
e)、Mustahe
SpringBoot建议使用这些模板引擎,避免使用JSP,但也支持JSP的配置,以上默认配置路径:src/main/esource/template(模板的配置属性中可修改)
2)、使用FreeMarker引擎渲染Web视图:
a)、pom.xml文件中引入依赖支持:
b)、后台Controller类
c)、前台在src/main/resource/template中创建index.ftl页面渲染内容
d)、在新建的application.properties文件中配置FreeMarker
3)、使用Jsp渲染Web视图:
a)、pom.xml文件中添加依赖支持
b)、application.properties中配置默认路径配置
Spring.mvc.view.prefix = /WEN-INF/jsp
Spring.mvc.view.suffic = .jsp
c)、后台代码
d)、创建对应的jsp文件
7、SpringBoot整合JdbcTemplate
1)、pom.xml文件中添加依赖支持
2)、application.properties配置数据源信息
3)、AppController
4)、IndexController
5)、UserService
8、SpringBoot继承myBatis
1)、pom.xml文件中添加依赖支持
2)、application.properties配置数据源信息
3)、AppController
4)、UserMapper
9、springBoot集成JPA
1)、pom.xml添加依赖支持
2)、APPController
3)、IndexController
4)、 UserDao
5)、Users实体类
10、SpringBoot整合多数据源
1)、application.properties中配置自定义多数据源
附:springboot默认数据源为:
2)、自定义数据源信息类Test01(多数据源时需要自定义,默认数据源时不需要编写)
3)、参照Test01数据源,自定义数据源信息类Test02
4)、AppController
5)、IndexController
6)、User01Service
7)、User1mapper
11、SpringBoot整合事物管理
1)、注解式开启注解
附:当在User01Service中操作数据源2的时候,因为不在同个事物管理中,所以报错不会回滚会产生脏数据,这个时候采用分布式事物管理方案
2)、分布式事物管理
分布式通讯:调用接口(HttpClient使用http协议、WebService使用socket协议)
常用的分布式事物管理方案: automatic+jta、两段提交协议、MQ推送
使用automatic+jta操作多数据源方案解决多数据源时不再同一事物管理会产生脏数据的bug
a)、pom.xml中添加依赖支持
b)、application.properties中配置多个数据源信息
c)、数据源信息类读取applicatioin.properties中配置的数据源信息
d)、数据源信息类管理类,将数据源信息交由automatic管理
@EnableConfigurationProperties(value= { DBConfig1.class, DBConfig2.class })开启数据源信息类中的注解))
f)、User01Service中操作数据源2,报错时automatic会进行事物回滚
12、SpringBoot使用AOP统一处理web请求日志管理
1)、pom.xml中添加依赖支持
2)、WebLogAspect日志管理类
3)、IndexController中定义请求方法,即会在控制台中打印日志
13、SpringBoot集成缓存
1)、pom.xml中添加依赖支持
2)、ehCache.xml文件配置缓存信息
3)、UserMapper
4)、AppContorller添加扫描包、开启缓存注解
5)、清楚缓存
6)、可使用Redis做集中式缓存
14、SpringBoot使用@Async实现异步多线程执行
1)、AppController注解开启异步执行
2)、IndexController中调用Service
3)、userService中添加异步多线程执行注解
4)、主线程的执行等级会比子线程高
15、SpringBoot中自定义参数
1)、application.properties中声明参数名=参数值
name = zhangshan
2)、IndexController中使用value注解
16、SpringBoot多环境配置(开发、测试、生产)
1)、application.preperties中定义有效环境
spring.profiles.active=pre
2)、applicaion-dev.preperties
name = devName
3)、application-test.properties
name = testName
17、SpringBoot修改端口号
1)、application.properties
server.port=8888 //端口号
server.context-path=/itmayiedu //上下文
18、SpringBoot使用.yml文件
1)、application.yml(相当于properties)
19、SpringBoot项目打包
1)、pom.xml中添加build配置
如果没有添加会报没有主清单错误(生成的War包文件中缺少Main-Class配置信息)
2)、使用maven打包命令打War包:mvn package
3)、运行War包:java -jar War包名称