logo资料库

SpringBoot笔记-上篇.pdf

第1页 / 共84页
第2页 / 共84页
第3页 / 共84页
第4页 / 共84页
第5页 / 共84页
第6页 / 共84页
第7页 / 共84页
第8页 / 共84页
资料共84页,剩余部分请下载后查看
一、Spring Boot 入门
1、Spring Boot 简介
2、微服务
3、环境准备
1、MAVEN设置;
2、IDEA设置
4、Spring Boot HelloWorld
1、创建一个maven工程;(jar)
2、导入spring boot相关的依赖
3、编写一个主程序;启动Spring Boot应用
4、编写相关的Controller、Service
5、运行主程序测试
6、简化部署
5、Hello World探究
1、POM文件
1、父项目
2、启动器
2、主程序类,主入口类
6、使用Spring Initializer快速创建Spring Boot项目
1、IDEA:使用 Spring Initializer快速创建项目
2、STS使用 Spring Starter Project快速创建项目
二、配置文件
1、配置文件
2、YAML语法:
1、基本语法
2、值的写法
字面量:普通的值(数字,字符串,布尔)
对象、Map(属性和值)(键值对):
数组(List、Set):
3、配置文件值注入
1、properties配置文件在idea中默认utf-8可能会乱码
2、@Value获取值和@ConfigurationProperties获取值比较
3、配置文件注入值数据校验
4、@PropertySource&@ImportResource&@Bean
4、配置文件占位符
1、随机数
2、占位符获取之前配置的值,如果没有可以是用:指定默认值
5、Profile
1、多Profile文件
2、yml支持多文档块方式
3、激活指定profile
6、配置文件加载位置
7、外部配置加载顺序
8、自动配置原理
1、自动配置原理:
2、细节
1、@Conditional派生注解(Spring注解版原生的@Conditional作用)
三、日志
1、日志框架
2、SLF4j使用
1、如何在系统中使用SLF4j https://www.slf4j.org
2、遗留问题
3、SpringBoot日志关系
4、日志使用;
1、默认配置
2、指定配置
5、切换日志框架
四、Web开发
1、简介
2、SpringBoot对静态资源的映射规则;
3、模板引擎
1、引入thymeleaf;
2、Thymeleaf使用
3、语法规则
4、SpringMVC自动配置
1. Spring MVC auto-configuration
2、扩展SpringMVC
3、全面接管SpringMVC;
5、如何修改SpringBoot的默认配置
6、RestfulCRUD
1)、默认访问首页
2)、国际化
3)、登陆
4)、拦截器进行登陆检查
5)、CRUD-员工列表
thymeleaf公共页面元素抽取
6)、CRUD-员工添加
7)、CRUD-员工修改
8)、CRUD-员工删除
7、错误处理机制
1)、SpringBoot默认的错误处理机制
2)、如果定制错误响应:
1)、如何定制错误的页面;
2)、如何定制错误的json数据;
3)、将我们的定制数据携带出去;
8、配置嵌入式Servlet容器
1)、如何定制和修改Servlet容器的相关配置;
2)、注册Servlet三大组件【Servlet、Filter、Listener】
3)、替换为其他嵌入式Servlet容器
4)、嵌入式Servlet容器自动配置原理;
5)、嵌入式Servlet容器启动原理;
9、使用外置的Servlet容器
步骤
原理
五、Docker
1、简介
2、核心概念
3、安装Docker
1)、安装linux虚拟机
2)、在linux虚拟机上安装docker
4、Docker常用命令&操作
1)、镜像操作
2)、容器操作
3)、安装MySQL示例
六、SpringBoot与数据访问
1、JDBC
2、整合Druid数据源
3、整合MyBatis
4)、注解版
5)、配置文件版
4、整合SpringData JPA
1)、SpringData简介
2)、整合SpringData JPA
七、启动配置原理
1、创建SpringApplication对象
2、运行run方法
3、事件监听机制
八、自定义starter
更多SpringBoot整合示例
一、Spring Boot 入门 1、Spring Boot 简介 简化Spring应用开发的一个框架; 整个Spring技术栈的一个大整合; J2EE开发的一站式解决方案; 2、微服务 2014,martin fowler 微服务:架构风格(服务微化) 一个应用应该是一组小型服务;可以通过HTTP的方式进行互通; 单体应用:ALL IN ONE 微服务:每一个功能元素最终都是一个可独立替换和独立升级的软件单元; 详细参照微服务文档   3、环境准备 http://www.gulixueyuan.com/ 谷粒学院 环境约束 –jdk1.8:Spring Boot 推荐jdk1.7及以上;java version "1.8.0_112" –maven3.x:maven 3.3以上版本;Apache Maven 3.3.9 –IntelliJIDEA2017:IntelliJ IDEA 2017.2.2 x64、STS –SpringBoot 1.5.9.RELEASE:1.5.9; 统一环境;   1、MAVEN设置; 给maven 的settings.xml配置文件的profiles标签添加
 jdk-1.8      true    1.8        1.8    1.8    1.8   2、IDEA设置 整合maven进来;  
4、Spring Boot HelloWorld 一个功能: 浏览器发送hello请求,服务器接受请求并处理,响应Hello World字符串;   1、创建一个maven工程;(jar) 2、导入spring boot相关的依赖            org.springframework.boot        spring-boot-starter-parent        1.5.9.RELEASE                            org.springframework.boot            spring-boot-starter-web             3、编写一个主程序;启动Spring Boot应用
/** * @SpringBootApplication 来标注一个主程序类,说明这是一个Spring Boot应用 */ @SpringBootApplication public class HelloWorldMainApplication {    public static void main(String[] args) {        // Spring应用启动起来        SpringApplication.run(HelloWorldMainApplication.class,args);   } } 4、编写相关的Controller、Service @Controller public class HelloController {    @ResponseBody    @RequestMapping("/hello")    public String hello(){        return "Hello World!";   } }   5、运行主程序测试 6、简化部署                                        org.springframework.boot                spring-boot-maven-plugin                         将这个应用打成jar包,直接使用java -jar的命令进行执行; 5、Hello World探究 1、POM文件 1、父项目    org.springframework.boot
   spring-boot-starter-parent    1.5.9.RELEASE 他的父项目是  org.springframework.boot  spring-boot-dependencies  1.5.9.RELEASE  ../../spring-boot-dependencies 他来真正管理Spring Boot应用里面的所有依赖版本; Spring Boot的版本仲裁中心; 以后我们导入依赖默认是不需要写版本;(没有在dependencies里面管理的依赖自然需要声明版本 号) 2、启动器    org.springframework.boot    spring-boot-starter-web spring-boot-starter-==web==: spring-boot-starter:spring-boot场景启动器;帮我们导入了web模块正常运行所依赖的组件;   Spring Boot将所有的功能场景都抽取出来,做成一个个的starters(启动器),只需要在项目里面引入 这些starter相关场景的所有依赖都会导入进来。要用什么功能就导入什么场景的启动器   2、主程序类,主入口类 /** * @SpringBootApplication 来标注一个主程序类,说明这是一个Spring Boot应用 */ @SpringBootApplication public class HelloWorldMainApplication {    public static void main(String[] args) {        // Spring应用启动起来        SpringApplication.run(HelloWorldMainApplication.class,args);   } } @SpringBootApplication: Spring Boot应用标注在某个类上说明这个类是SpringBoot的主配置类, SpringBoot就应该运行这个类的main方法来启动SpringBoot应用;  
@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited @SpringBootConfiguration @EnableAutoConfiguration @ComponentScan(excludeFilters = {      @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),      @Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) }) public @interface SpringBootApplication { @SpringBootConfiguration:Spring Boot的配置类; 标注在某个类上,表示这是一个Spring Boot的配置类; @Configuration:配置类上来标注这个注解; 配置类 ----- 配置文件;配置类也是容器中的一个组件;@Component   @EnableAutoConfiguration:开启自动配置功能; 以前我们需要配置的东西,Spring Boot帮我们自动配置;@EnableAutoConfiguration告诉 SpringBoot开启自动配置功能;这样自动配置才能生效; @AutoConfigurationPackage @Import(EnableAutoConfigurationImportSelector.class) public @interface EnableAutoConfiguration { @AutoConfigurationPackage:自动配置包 @Import(AutoConfigurationPackages.Registrar.class): Spring的底层注解@Import,给容器中导入一个组件;导入的组件由 AutoConfigurationPackages.Registrar.class; ==将主配置类(@SpringBootApplication标注的类)的所在包及下面所有子包里面的所有组件扫描到 Spring容器;== @Import(EnableAutoConfigurationImportSelector.class); 给容器中导入组件? EnableAutoConfigurationImportSelector:导入哪些组件的选择器; 将所有需要导入的组件以全类名的方式返回;这些组件就会被添加到容器中;
会给容器中导入非常多的自动配置类(xxxAutoConfiguration);就是给容器中导入这个场景需要的所 有组件,并配置好这些组件; 有了自动配置类,免去了我们手动编写配置注入功能组件等的工作; SpringFactoriesLoader.loadFactoryNames(EnableAutoConfiguration.class,classLoader);   ==Spring Boot在启动的时候从类路径下的META-INF/spring.factories中获取 EnableAutoConfiguration指定的值,将这些值作为自动配置类导入到容器中,自动配置类就生效,帮 我们进行自动配置工作;==以前我们需要自己配置的东西,自动配置类都帮我们; J2EE的整体整合解决方案和自动配置都在spring-boot-autoconfigure-1.5.9.RELEASE.jar;   ==Spring注解版(谷粒学院)==   6、使用Spring Initializer快速创建Spring Boot项目 1、IDEA:使用 Spring Initializer快速创建项目 IDE都支持使用Spring的项目创建向导快速创建一个Spring Boot项目; 选择我们需要的模块;向导会联网创建Spring Boot项目; 默认生成的Spring Boot项目; 主程序已经生成好了,我们只需要我们自己的逻辑 resources文件夹中目录结构 static:保存所有的静态资源; js css images; templates:保存所有的模板页面;(Spring Boot默认jar包使用嵌入式的Tomcat,默认不 支持JSP页面);可以使用模板引擎(freemarker、thymeleaf); application.properties:Spring Boot应用的配置文件;可以修改一些默认设置; 2、STS使用 Spring Starter Project快速创建项目     二、配置文件
1、配置文件 SpringBoot使用一个全局的配置文件,配置文件名是固定的; •application.properties •application.yml   配置文件的作用:修改SpringBoot自动配置的默认值;SpringBoot在底层都给我们自动配置好;   YAML(YAML Ain't Markup Language) YAML A Markup Language:是一个标记语言 YAML isn't Markup Language:不是一个标记语言; 标记语言: 以前的配置文件;大多都使用的是 xxxx.xml文件; YAML:以数据为中心,比json、xml等更适合做配置文件; YAML:配置例子 server: port: 8081 XML: 8081   2、YAML语法: 1、基本语法 k:(空格)v:表示一对键值对(空格必须有); 以空格的缩进来控制层级关系;只要是左对齐的一列数据,都是同一个层级的 server:   port: 8081   path: /hello 属性和值也是大小写敏感;   2、值的写法 字面量:普通的值(数字,字符串,布尔)
分享到:
收藏