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文件引入依赖:

                       

spring boot 实体类 链式 springboot常用类_spring boot 实体类 链式

        3)、编写Controller类:

                a)、第一种启动方式:

                       

spring boot 实体类 链式 springboot常用类_事物管理_02

                b)、第二种启动方式(定义控制器扫包范围):

                       

spring boot 实体类 链式 springboot常用类_事物管理_03

4、SpringBoot访问静态资源

        1)、SpringBoot默认在classpath下提供静态资源目录,且目录名只能命名为一下规则:

                    /static

                    /public

                    /resource

                    /META-INF/resource

         2)、访问路径:http://localhost:8080/1.png(注意不需要添加文件夹名称,SpringBoot启动默认配置好在classpath)

5、异常handler类切面拦截全局异常

        1)、创建一个全局异常拦截Handler

                  

spring boot 实体类 链式 springboot常用类_xml_04



                    @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文件中引入依赖支持:

                                 

spring boot 实体类 链式 springboot常用类_事物管理_05

                       b)、后台Controller类

                               

spring boot 实体类 链式 springboot常用类_spring boot 实体类 链式_06

                       c)、前台在src/main/resource/template中创建index.ftl页面渲染内容



                                  

spring boot 实体类 链式 springboot常用类_数据源_07

                       d)、在新建的application.properties文件中配置FreeMarker

                                 

spring boot 实体类 链式 springboot常用类_xml_08

         3)、使用Jsp渲染Web视图:

                        a)、pom.xml文件中添加依赖支持

                                  

spring boot 实体类 链式 springboot常用类_spring boot 实体类 链式_09

                        b)、application.properties中配置默认路径配置

                                    Spring.mvc.view.prefix =  /WEN-INF/jsp

                                    Spring.mvc.view.suffic = .jsp

                        c)、后台代码

                        d)、创建对应的jsp文件

7、SpringBoot整合JdbcTemplate

         1)、pom.xml文件中添加依赖支持

                    

spring boot 实体类 链式 springboot常用类_spring boot 实体类 链式_10

          2)、application.properties配置数据源信息

                     

spring boot 实体类 链式 springboot常用类_数据源_11

          3)、AppController

                     

spring boot 实体类 链式 springboot常用类_spring boot 实体类 链式_12

          4)、IndexController

                   

spring boot 实体类 链式 springboot常用类_spring boot 实体类 链式_13

           5)、UserService

                     

spring boot 实体类 链式 springboot常用类_spring boot 实体类 链式_14

8、SpringBoot继承myBatis

         1)、pom.xml文件中添加依赖支持

                   

spring boot 实体类 链式 springboot常用类_数据源_15

         2)、application.properties配置数据源信息

         3)、AppController

                     

spring boot 实体类 链式 springboot常用类_事物管理_16

         4)、UserMapper 

                     

spring boot 实体类 链式 springboot常用类_xml_17

9、springBoot集成JPA

         1)、pom.xml添加依赖支持

                     

spring boot 实体类 链式 springboot常用类_spring boot 实体类 链式_18

         2)、APPController

                    

spring boot 实体类 链式 springboot常用类_xml_19

         3)、IndexController

                     

spring boot 实体类 链式 springboot常用类_spring boot 实体类 链式_20

         4)、 UserDao

                     

spring boot 实体类 链式 springboot常用类_事物管理_21

         5)、Users实体类

                      

spring boot 实体类 链式 springboot常用类_事物管理_22

10、SpringBoot整合多数据源

         1)、application.properties中配置自定义多数据源

                        

spring boot 实体类 链式 springboot常用类_数据源_23

               附:springboot默认数据源为:

                        

spring boot 实体类 链式 springboot常用类_事物管理_24

         2)、自定义数据源信息类Test01(多数据源时需要自定义,默认数据源时不需要编写)

                         

spring boot 实体类 链式 springboot常用类_xml_25

                                     

spring boot 实体类 链式 springboot常用类_spring boot 实体类 链式_26

                         

spring boot 实体类 链式 springboot常用类_xml_27

         3)、参照Test01数据源,自定义数据源信息类Test02

         4)、AppController

                         

spring boot 实体类 链式 springboot常用类_spring boot 实体类 链式_28

         5)、IndexController

                          

spring boot 实体类 链式 springboot常用类_数据源_29

         6)、User01Service

                          

spring boot 实体类 链式 springboot常用类_数据源_30

         7)、User1mapper

                         

spring boot 实体类 链式 springboot常用类_事物管理_31

11、SpringBoot整合事物管理

         1)、注解式开启注解

                       

spring boot 实体类 链式 springboot常用类_数据源_32

    

                  附:当在User01Service中操作数据源2的时候,因为不在同个事物管理中,所以报错不会回滚会产生脏数据,这个时候采用分布式事物管理方案

         2)、分布式事物管理

                         分布式通讯:调用接口(HttpClient使用http协议、WebService使用socket协议)

                         常用的分布式事物管理方案: automatic+jta、两段提交协议、MQ推送

                         使用automatic+jta操作多数据源方案解决多数据源时不再同一事物管理会产生脏数据的bug

                              a)、pom.xml中添加依赖支持

                                           

spring boot 实体类 链式 springboot常用类_数据源_33

                              b)、application.properties中配置多个数据源信息

                                            

spring boot 实体类 链式 springboot常用类_事物管理_34

                              c)、数据源信息类读取applicatioin.properties中配置的数据源信息

                                             

spring boot 实体类 链式 springboot常用类_xml_35

                              d)、数据源信息类管理类,将数据源信息交由automatic管理

                                              

spring boot 实体类 链式 springboot常用类_数据源_36

                                              

spring boot 实体类 链式 springboot常用类_spring boot 实体类 链式_37

@EnableConfigurationProperties(value= { DBConfig1.class, DBConfig2.class })开启数据源信息类中的注解)

                                                

spring boot 实体类 链式 springboot常用类_xml_38

                              f)、User01Service中操作数据源2,报错时automatic会进行事物回滚

                                                

spring boot 实体类 链式 springboot常用类_spring boot 实体类 链式_39

12、SpringBoot使用AOP统一处理web请求日志管理

         1)、pom.xml中添加依赖支持

                      

spring boot 实体类 链式 springboot常用类_spring boot 实体类 链式_40

         2)、WebLogAspect日志管理类

         

spring boot 实体类 链式 springboot常用类_xml_41

         3)、IndexController中定义请求方法,即会在控制台中打印日志   

13、SpringBoot集成缓存          

         1)、pom.xml中添加依赖支持

                     

spring boot 实体类 链式 springboot常用类_数据源_42

         2)、ehCache.xml文件配置缓存信息

                      

spring boot 实体类 链式 springboot常用类_spring boot 实体类 链式_43

         3)、UserMapper

                      

spring boot 实体类 链式 springboot常用类_数据源_44

         4)、AppContorller添加扫描包、开启缓存注解

                     

spring boot 实体类 链式 springboot常用类_数据源_45

         5)、清楚缓存

                     

spring boot 实体类 链式 springboot常用类_xml_46

         6)、可使用Redis做集中式缓存

14、SpringBoot使用@Async实现异步多线程执行

         1)、AppController注解开启异步执行

                     

spring boot 实体类 链式 springboot常用类_事物管理_47

         2)、IndexController中调用Service

         3)、userService中添加异步多线程执行注解

                      

spring boot 实体类 链式 springboot常用类_spring boot 实体类 链式_48

         4)、主线程的执行等级会比子线程高

15、SpringBoot中自定义参数

         1)、application.properties中声明参数名=参数值

                       name = zhangshan

         2)、IndexController中使用value注解

                       

spring boot 实体类 链式 springboot常用类_数据源_49

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)

                       

spring boot 实体类 链式 springboot常用类_事物管理_50

19、SpringBoot项目打包

         1)、pom.xml中添加build配置

                         

spring boot 实体类 链式 springboot常用类_spring boot 实体类 链式_51

                            如果没有添加会报没有主清单错误(生成的War包文件中缺少Main-Class配置信息)           

                            

spring boot 实体类 链式 springboot常用类_xml_52

         2)、使用maven打包命令打War包:mvn package

         3)、运行War包:java -jar War包名称