springboot2.x入门实战案例学习(自动配置、自定义banner、配置类、属性注入):第二篇

1 总体介绍

本次主要实践的内容是springboot配置相关的知识,简要介绍springboot中一些常用的配置信息,包括自定义banner、自动配置注解@Configuration、属性注入注解@ConfigurationProperties、yaml配置文件、多环境profile配置方式

2 实践步骤

首先创建一个module,名称为config:

springboot2.x入门实战案例学习(自动配置、自定义banner、配置类、属性注入):第二篇_第1张图片

这里选择使用spirng initializer创建spirngboot项目:

springboot2.x入门实战案例学习(自动配置、自定义banner、配置类、属性注入):第二篇_第2张图片

指定GA坐标,其余默认即可:
springboot2.x入门实战案例学习(自动配置、自定义banner、配置类、属性注入):第二篇_第3张图片

此处选择版本为2.1.7,勾选Spring Web Starter,此starter提供了web功能,包括内置的tomcat容器:

springboot2.x入门实战案例学习(自动配置、自定义banner、配置类、属性注入):第二篇_第4张图片

确认信息,点击finish:

springboot2.x入门实战案例学习(自动配置、自定义banner、配置类、属性注入):第二篇_第5张图片

创建好之后需要注意右下角,选择红框的选项,此选项可以显示一个dashboard,使得运行多个spirngboot项目更加方便:

springboot2.x入门实战案例学习(自动配置、自定义banner、配置类、属性注入):第二篇_第6张图片

创建好之后项目结构应该是下面这样的,最底下那个就是刚才选择红框选项出现的dashbroad,它会列出所有该项目下springboot的入口类,方便启动:
springboot2.x入门实战案例学习(自动配置、自定义banner、配置类、属性注入):第二篇_第7张图片

springboot默认提供了一个parent starter,其中定义了许多默认配置,包括版本号、自动配置等信息,你也可以选择自定义自己的parent starter:

springboot2.x入门实战案例学习(自动配置、自定义banner、配置类、属性注入):第二篇_第8张图片

入口类即包含main方法的类上被标记了@SpringBootApplication注解,这是spirngboot中的核心注解,springboot的一切都是从这里开始的,其中该注解是一个组合注解,它是由左边红框内的三个注解组成的:

springboot2.x入门实战案例学习(自动配置、自定义banner、配置类、属性注入):第二篇_第9张图片

第一个注解其实代表的就是@Configuration,即springboot中配置类,springboot使用标有该注解的类代替了xml文件,第二个注解表示开启自动配置功能,第三个注解是组件扫描注解:

springboot2.x入门实战案例学习(自动配置、自定义banner、配置类、属性注入):第二篇_第10张图片

为了展示spirngboot中的配置,首先创建一个普通的java类,idea默认会将.前面的当成包创建出来:

springboot2.x入门实战案例学习(自动配置、自定义banner、配置类、属性注入):第二篇_第11张图片

接着创建一个名称为Dog的普通类:

springboot2.x入门实战案例学习(自动配置、自定义banner、配置类、属性注入):第二篇_第12张图片

在创建好的BeansConf类上标注@Configuration,表明该类是一个配置类,接着创建一个带有@Bean标识的dog方法,@Bean注解表示该对象是需要给spring容器管理的bean对象,名称默认为方法名,也可以在@Bean注解中指定,springboot在初始化时会默认扫描所有配置类中的@Bean注解:

springboot2.x入门实战案例学习(自动配置、自定义banner、配置类、属性注入):第二篇_第13张图片

接着启动springboot,即运行main方法,控制台会输出如下信息,此图标即称为banner:

springboot2.x入门实战案例学习(自动配置、自定义banner、配置类、属性注入):第二篇_第14张图片

springboot提供了自定义banner的功能,其中banner可以是txt、jpg、gif三种格式,可以在配置文件中指定它的位置、名称等属性,此处使用最简单的方式修改banner,首先在类路径下创建banner.txt文件,该文件内编写任何你希望输出的内容:

springboot2.x入门实战案例学习(自动配置、自定义banner、配置类、属性注入):第二篇_第15张图片

在此启动springboot后会发现banner已经被修改了:

springboot2.x入门实战案例学习(自动配置、自定义banner、配置类、属性注入):第二篇_第16张图片

springboot支持properties和yaml两种方式的配置文件,同时它提供了非常多的属性可供设置:

springboot2.x入门实战案例学习(自动配置、自定义banner、配置类、属性注入):第二篇_第17张图片

springboot提供的web starter中默认使用的是tomcat作为内置的服务器,你也可以使用你想使用的其他服务器,首先你需要排除默认的tomcat,然后添加你喜欢的服务器的依赖,如下是将tomcat替换为了jetty:

springboot2.x入门实战案例学习(自动配置、自定义banner、配置类、属性注入):第二篇_第18张图片

重新启动后如果出现红框内以Jetty开头的信息时表示替换成功:

springboot2.x入门实战案例学习(自动配置、自定义banner、配置类、属性注入):第二篇_第19张图片

此处使用yaml文件将服务端口改为8083,启动后可以看到端口已经被改变:

springboot2.x入门实战案例学习(自动配置、自定义banner、配置类、属性注入):第二篇_第20张图片

为了测试@ConfigurationProperties的功能,首先在Dog文件汇总添加name和age属性,并生成相应的get和set方法:

springboot2.x入门实战案例学习(自动配置、自定义banner、配置类、属性注入):第二篇_第21张图片

在yaml文件中配置如下信息:

springboot2.x入门实战案例学习(自动配置、自定义banner、配置类、属性注入):第二篇_第22张图片

红框中的值代表了yaml文件中开头的dog,这样就会把yaml文件中dog下的name和age的值注入到Dog类中的属性上了:

springboot2.x入门实战案例学习(自动配置、自定义banner、配置类、属性注入):第二篇_第23张图片

编写一个Controller,并给它注入Dog对象,编写一个方法返回dog信息:
springboot2.x入门实战案例学习(自动配置、自定义banner、配置类、属性注入):第二篇_第24张图片

在dashboard中启动springboot:

springboot2.x入门实战案例学习(自动配置、自定义banner、配置类、属性注入):第二篇_第25张图片

在浏览器中访问controller中方法的路径,可以发现该对象已经被赋值了,该值来源于yaml文件,@ConfigurationProperties注解将yaml中定义的值注入到了Dog对象中:

springboot2.x入门实战案例学习(自动配置、自定义banner、配置类、属性注入):第二篇_第26张图片

接下来实验多环境下的profile,它的写格式如下,其中红框内的内容区分多部分的profile,不可省略,profiles定义了该部分的名称,后面跟的是该部分中使用的配置,通过active选择激活哪个部分的profile:

springboot2.x入门实战案例学习(自动配置、自定义banner、配置类、属性注入):第二篇_第27张图片

上图中选择激活dev下的profile,则端口变成了dev中配置的8084,如果active改为prod,则端口会变为8085:

springboot2.x入门实战案例学习(自动配置、自定义banner、配置类、属性注入):第二篇_第28张图片

选择激活dev下的profile,则端口变成了dev中配置的8084,如果active改为prod,则端口会变为8085:

[外链图片转存中…(img-kuDgIW16-1567675332371)]

3 总结

springboot和spring最大的区别就是提供了自动配置,极大的简化了spring相关的配置,上面介绍的功能只是一些常用的,springboot中自带的配置比这些多很多,只有掌握了这些配置才能更好的使用springboot

你可能感兴趣的:(springboot)