springboot:内置tomcat,提供了自动配置,搭建了spring应用的脚手架

解决问题:复杂的配置和混沌的依赖管理

1.SpringBoot入门

使用步骤:1.在pom文件中,导入springboot父工程,所有的springboot项目都要依赖该父工程

                2.添加启动器依赖

1.2.配置控制器

 RestController继承了ResponseBody,返回的数据类型必须是json格式的

springboot入参字段名含有符号 springboot有参构造如何注入_tomcat

springboot入参字段名含有符号 springboot有参构造如何注入_bc_02

 使用引导类的方式配置springboot(不会使用上述方式进行配置)

springboot入参字段名含有符号 springboot有参构造如何注入_tomcat_03

 SpringBootConfiguration其实就是Configuration注解,该注解在Spring中是声明一个java配置类

和Configuration的不同是 该注解在应用中只能包含一个。

springboot入参字段名含有符号 springboot有参构造如何注入_spring_04

 其中SpringBootConfiguration 就相当于Spring中Configuration注解类(声明是一个注解类)

1.3.SpringBoot的四种属性注入:

四种方式都要能看懂

1.@Autowired注入(最常用)

2.构造方法注入

3.@Bean方法形参注入

4.直接在@Bean方法上使用@ConfigurationProperties(prefix="jdbc")

1.3.1.传统的jdbc配置方法

下图中的DruidDataSource需要在pom文件中进行配置

缺点:每一个成员变量读取配置文件都要进行一次注解配置

springboot入参字段名含有符号 springboot有参构造如何注入_java_05

1.3.2.SpringBoot配置方法 

SpringBoot启动时会默认加载application.properties文件,文件中的属性属于谁,通过前缀来区分

默认加载的文件还有application.yml

springboot入参字段名含有符号 springboot有参构造如何注入_tomcat_06

 使用springboot的读取配置文件的配置类来设置参数的值

使用这种方式配置是最常用的

 

springboot入参字段名含有符号 springboot有参构造如何注入_spring_07

 

springboot入参字段名含有符号 springboot有参构造如何注入_bc_08

 第二种注入参数方式:使用构造函数

springboot入参字段名含有符号 springboot有参构造如何注入_java_09

 第三种注入参数方式:将参数写在方法上

springboot入参字段名含有符号 springboot有参构造如何注入_spring_10

 第四种方式(最优雅):不使用JdbcProperties类。ConfigurationProperties注解是通过set方法注入的。此方式可使用DataSource的set方法注入

必须保证返回值的set方法属性和properties中的属性名相对应。该注解的核心思想就是调用标记类的set方法get方法来注入参数

springboot入参字段名含有符号 springboot有参构造如何注入_bc_11

 SpringBoot的默认配置文件:application.properties application.yml 两者只能有一个

2.springboot配置springmvc

springboot入参字段名含有符号 springboot有参构造如何注入_tomcat_12

 导入父工程和web启动器即可

如何修改tomcat端口号(覆盖默认配置)?

1.在springboot全局属性.txt文件中搜索server.port(使用ctrl+F快捷键查找)

2.创建application.properties的配置文件,然后设置端口号

3.编写一个引导类(该引导类会扫描当前文件夹及其子文件夹所有的包和路径)

springboot入参字段名含有符号 springboot有参构造如何注入_bc_13

 2.1.配置控制器

 

springboot入参字段名含有符号 springboot有参构造如何注入_bc_14

 user为controller的全局路径

springboot中访问静态资源

springboot入参字段名含有符号 springboot有参构造如何注入_springboot入参字段名含有符号_15

默认的静态资源路径为上图内容。静态资源放置为上述路径时,就可以直接访问到

2.2.设置servlet拦截器

创建一个类继承HandlerInterceptor的接口,实现里面的方法

springboot入参字段名含有符号 springboot有参构造如何注入_tomcat_16

 要加Component注解放入spring容器中

springboot入参字段名含有符号 springboot有参构造如何注入_spring_17

 设置完拦截器需要设置拦截器的配置类,其中/**代表拦截多级路径(/*代表一级路径)

springboot入参字段名含有符号 springboot有参构造如何注入_java_18

2.3. 整合JDBC设置启动器

springboot入参字段名含有符号 springboot有参构造如何注入_tomcat_19

 1.设置jdbc启动器  2.配置数据库驱动依赖(mysql)

3.在application中配置连接数据库必要信息  默认驱动是mysql不需要设置

springboot入参字段名含有符号 springboot有参构造如何注入_spring_20

springboot中有默认的hikaricp连接池

2.4.整合mybatis框架

1.导入依赖

springboot入参字段名含有符号 springboot有参构造如何注入_tomcat_21

 2.第一种是扫描注解包   第二种是扫描配置文件 两种方式任选其一

springboot入参字段名含有符号 springboot有参构造如何注入_springboot入参字段名含有符号_22

1.设置与数据库对应的实体类

springboot入参字段名含有符号 springboot有参构造如何注入_tomcat_23

 2.设置与映射的配置类

由依赖包提供

springboot入参字段名含有符号 springboot有参构造如何注入_tomcat_24

导入Mapper依赖包后 注解可正常使用 

springboot入参字段名含有符号 springboot有参构造如何注入_bc_25

 配置Mapper类完毕

springboot入参字段名含有符号 springboot有参构造如何注入_spring_26

 也可以在引导类上加Mapper的扫描注解。这样可以不使用@Mapper注解

springboot入参字段名含有符号 springboot有参构造如何注入_spring_27

 2.5整合事务

springboot入参字段名含有符号 springboot有参构造如何注入_tomcat_28


事务所依赖的包已经通过传递依赖进入到spring容器中,报错是因为我们使用的是mapper注解,它是mybatis的注解,不是spring的注解,可通过下列方式忽视报错


 

springboot入参字段名含有符号 springboot有参构造如何注入_springboot入参字段名含有符号_29

使用@Transactional注解  来进行事务管理(只有增删改使用事务)

springboot入参字段名含有符号 springboot有参构造如何注入_tomcat_30

 上述步骤配置完Dao层

 下面使用Service层来实现业务

如果参数使用占位符的方式传递要使用@PathVariable注解

如果参数使用?的方式传递要使用RequestParam的方式进行传递

springboot入参字段名含有符号 springboot有参构造如何注入_java_31

springboot入参字段名含有符号 springboot有参构造如何注入_java_32

 如果使用@RequestParam注解,需要加@RespnseBody注解,否则将会被认为寻找视图

springboot入参字段名含有符号 springboot有参构造如何注入_spring_33

 上述方式无法调用queryUserById,原因:不加@ResponseBody注解 控制器就会认为该方法返回的是一个视图名称

thymeleaf 

由于springboot不支持jsp 所以使用该模板

使用前需要引入该启动器

springboot入参字段名含有符号 springboot有参构造如何注入_bc_34

 源码的默认前端页面的路径设置:

Controller传递的路径为该路径下的页面

 

springboot入参字段名含有符号 springboot有参构造如何注入_spring_35

th代表thymeleaf 和jstl 语法相似 

springboot入参字段名含有符号 springboot有参构造如何注入_java_36

  

springboot入参字段名含有符号 springboot有参构造如何注入_spring_37

 此时不加@ResponseBody注解就是返回的视图名称