使用Spring Boot之后,一个整合了SpringMVC的WEB工程开发,变的无比简单,那些繁杂的配置都消失不见了,这 是如何做到的?
一切魔力的开始,都是从我们的main函数来的,所以我们再次来看下启动类:
打开启动引导类

这里重点的注解有3个:

  • @SpringBootConfiguration
  • @EnableAutoConfiguration
  • @ComponentScan

6. 自动配置原理

目标:了解Spring Boot项目的配置加载流程

小结

  • META-INF\spring.fatories文件中定义了很多自动配置类;可以根据在pom.xml文件中添加的 启动器依赖自动配置组件

  • 通过如下流程可以去修改application配置文件,改变自动配置的组件默认参数

7. lombok应用

目标:使用lombok的注解实现pojo类的简化

分析

使用Spring Boot整合SSM工程;需要使用到数据库数据。

  • 将数据库表数据导入到数据库中(springboot_test);

  • 编写数据库表对应的实体类;一般情况下需要编写get/set/toString等这些方法会耗时并且会让实体类看起来比较臃肿。可以使用lombok插件对实体类进行简化。

    lombok是一个插件工具类包;提供了一些注解@Data、@Getter等这些注解去简化实体类中的构造方法、get/set等方法的编写。

    1. 在IDEA中安装lombok插件;

    2. 添加lombok对应的依赖到项目pom.xml文件;

    3. 改造实体类使用lombok注解

        <dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>

小结

在Bean上使用:

@Data :自动提供getter和setter、hashCode、equals、toString等方法

@Getter:自动提供getter方法

@Setter:自动提供setter方法

@Slf4j:自动在bean中提供log变量,其实用的是slf4j的日志功能。

8. Spring Boot整合-SpringMVC端口和静态资源

目标:可以修改tomcat的端口和访问项目中的静态资源

分析

  • 修改tomcat端口

    查询 **Properties,设置配置项(前缀+类变量名)到application配置文件中

  • 访问项目中的静态资源

    静态资源放置的位置;放置静态资源并访问这些资源

小结

  • 修改项目tomcat端口:

#tomcat端口
server:
port: 80

在spring boot项目中静态资源可以放置在如下目录:

9.Spring Boot整合-SpringMVC拦截器

目标:可以在Spring Boot项目中配置自定义SpringMVC拦截器

分析

  1. 编写拦截器(实现HandlerInterceptor);

  2. 编写配置类实现 WebMvcConfigurer,在该类中添加各种组件;

  3. 测试

2. 定义配置类 heima-springboot\src\main\java\com\itheima\config\MvcConfig.java ,用于注册拦截器,内容如下:

10. Spring Boot整合-事务和连接池

目标:配置Spring Boot自带默认的hikari数据库连接池和使用@Transactional注解进行事务配置

分析

  • 事务配置

    1. 添加事务相关的启动器依赖,mysql相关依赖;

    2. 编写业务类UserService使用事务注解@Transactional

  • 数据库连接池hikari配置

    只需要在application配置文件中指定数据库相关参数

将jdbconfig注释掉 不使用

导入jdbc的时候自动导入了hikaricp

小结

  • 事务配置;只需要添加jdbc启动器依赖

  • 数据库连接池使用默认的hikari,在配置文件中配置如下:

spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/springboot_test
username: root
password: root

11. Spring Boot整合-Mybatis

目标:配置Mybatis在Spring Boot工程中的整合包,设置mybatis的实体类别名,输出执行sql语句配置项

分析

  1. 添加启动器依赖;

  2. 配置Mybatis:实体类别名包,日志,映射文件等;

  3. 配置MapperScan

3. 配置Mapper扫描

需要注意,这里没有配置mapper接口扫描包,因此我们需要给每一个Mapper接口添加 @Mapper 注解,才能被识别。

或者

12. Spring Boot整合-通用Mapper

目标:配置通用Mapper组件到Spring Boot项目中并使用Mapper<T>接口

分析

通用Mapper:可以实现自动拼接sql语句;所有的mapper都不需要编写任何方法也就是不用编写sql语句。可以提高开发效率。

  1. 添加启动器依赖;

  2. 改造UserMapper继承Mapper<User>;

  3. 修改启动引导类Application中的Mapper扫描注解;

  4. 修改User实体类添加jpa注解;

  5. 改造UserService实现业务功能;

4. 在User实体类上加JPA注解

修改 heima-springboot\src\main\java\com\itheima\pojo\User.java 如下

13. Spring Boot整合测试

目标:可以访问处理器对应路径将数据库中的数据根据id查询

分析

  1. 改造HelloController,注入UserService利用其方法实现查询;

  2. 启动项目进行测试 http://localhost/user/用户id --> http://localhost/user/8

Spring Boot自动配置原理的更多相关文章

  1. Spring Boot自动配置原理、实战

    Spring Boot自动配置原理 Spring Boot的自动配置注解是@EnableAutoConfiguration, 从上面的@Import的类可以找到下面自动加载自动配置的映射. org.s ...

  2. Spring Boot自动配置原理(转)

    第3章 Spring Boot自动配置原理 3.1 SpringBoot的核心组件模块 首先,我们来简单统计一下SpringBoot核心工程的源码java文件数量: 我们cd到spring-boot- ...

  3. Spring Boot自动配置原理与实践(二)

    前言 在之前的博文(Spring Boot自动配置原理与实践(一))中,已经介绍了Spring boot的自动配置的相关原理与概念,本篇主要是对自动配置的实践,即自定义Starter,对原理与概念加深 ...

  4. Springboot 系列(三)Spring Boot 自动配置原理

    注意:本 Spring Boot 系列文章基于 Spring Boot 版本 v2.1.1.RELEASE 进行学习分析,版本不同可能会有细微差别. 前言 关于配置文件可以配置的内容,在 Spring ...

  5. Spring Boot自动配置原理与实践(一)

    前言 Spring Boot众所周知是为了简化Spring的配置,省去XML的复杂化配置(虽然Spring官方推荐也使用Java配置)采用Java+Annotation方式配置.如下几个问题是我刚开始 ...

  6. spring boot 自动配置原理

    1).spring boot启动的时候加载主配置类,开启了自动配置功能@EnableAutoConfiguration,先看一下启动类的main方法 public ConfigurableApplic ...

  7. Spring Boot 自动配置原理(精髓)

    一.自动配置原理(掌握) SpringBoot启动项目会加载主配置类@SpringBootApplication,开启@EnableAutoConfiguration自动配置功能 @EnableAut ...

  8. 【串线篇】spring boot自动配置原理

    配置文件到底能写什么?怎么写?自动配置原理: 配置文件能配置的属性参照 一.自动配置原理: 1.1.SpringBoot启动的时候加载主配置类,开启了自动配置功能 @EnableAutoConfigur ...

  9. Spring Boot 自动配置原理是什么?

    注解 @EnableAutoConfiguration, @Configuration, @ConditionalOnClass 就是自动配置的核心,首先它得是一个配置文件,其次根据类路径下是否有这个 ...

随机推荐

  1. 聊一下PBN程序图例中的XTT

       PBN航路点的定位容差用XTT与ATT来表示,ATT=0.8*XTT.保护区半宽用1.5*XTT+BV计算得到,BV值在不同的航段取值不同. 对于A至E类航空器,距ARP 30nm以外BV值为2 ...

  2. Python 与 excel的简单应用

    1.pip openpyxl库: pip install openpyxl -i http://pypi.douban.com/simple --trust-host pypi.douban.com ...

  3. mysql explain type详解

    本文转载自最官方的 mysql explain type 字段解读 读了很多别人的笔记都杂乱不堪,很少有实例,什么都不如原装的好,所以当你读到我的笔记的时候如果觉得说的不明白,最好参考官方的手册. 我 ...

  4. uni-app小白入门自学笔记(二)

    码文不易啊,转载请带上本文链接呀,感谢感谢 https://www.cnblogs.com/echoyya/p/14429616.html 目录 码文不易啊,转载请带上本文链接呀,感谢感谢 https ...

  5. Jmeter beanshell编程实例

    1.引言 BeanShell是一种小型的,免费的,可嵌入的符合Java语法规范的源代码解释器,具有对象脚本语言特性. 在Jmeter实践中,由于BeanShell组件较高的自由度,通常被用来处理较为复 ...

  6. springCloud服务流程

    springCloud的服务流程:消费者调用生产者 1.通过接口化的请求调用(指定接口的服务名字和服务地址)只是做定义,并没有真正做到. 2.Feign组件,远程去注册中心找到服务的名字和服务的地址然 ...

  7. WPF MVVM实例三

    在没给大家讲解wpf mwm示例之前先给大家简单说下MVVM理论知识: WPF技术的主要特点是数据驱动UI,所以在使用WPF技术开发的过程中是以数据为核心的,WPF提供了数据绑定机制,当数据发生变化时 ...

  8. Vue学习笔记-vue调试工具vue-devtools安装及使用

    一  使用环境: windows 7 64位操作系统 二  vue调试工具vue-devtools安装及使用 1.下载: 百度中查找  "vue-devtools下载"  找到最新 ...

  9. DRF 三大认证的配置及使用方法

    目录 三大认证 一.身份认证 1.身份认证配置 1.1 全局配置身份认证模块 1.2 局部配置身份认证模块 2.drf提供的身份认证类(了解) 3.rf-jwt提供的身份认证类(常用) 4.自定义身份 ...

  10. WPF -- DataTemplate与ControlTemplate结合使用

    如深入浅出WPF中的描述,DataTemplate为数据的外衣,ControlTemplate为控件的外衣.ControlTemplate控制控件的样式,DataTemplate控制数据显示的样式,D ...