之前简单接触了一些Spring Boot ,并且写了一个简单的 Demo 。本文就来简单学习一下 Spring Boot 的基础配置。
一、Spring Boot 项目入口
上文中有写到,Spring Boot 项目需要一个入口类,并且入口类要使用 @SpringBootApplication 注解,项目启动时回去找这个有这个注解的类的 main 方法并执行。
1 /** 2 * 项目入口 3 */ 4 @SpringBootApplication 5 public class App { 6 public static void main(String[] args) { 7 SpringApplication.run(App.class, args); 8 } 9 }
@SpringBootApplication 注解是一个组合注解,它是由 @SpringBootConfiguration 、@EnableAutoConfiguration 、 @ComponentScan 三个注解组合而成,所以 @SpringBootApplication注解可以被上面三个注解所替代。
1 /** 2 * 项目入口 3 * @author wuyouxin 4 * 5 */ 6 @SpringBootConfiguration 7 @EnableAutoConfiguration 8 @ComponentScan 9 public class App { 10 public static void main(String[] args) { 11 SpringApplication.run(App.class, args); 12 } 13 }
@SpringBootConfiguration 注解的作用与@Configuration的作用一样,都是将此类标注为一个配置类,并且将当前类声明为一个或多个以@Bean注解标记的方法的实例纳入到spring容器中,实例名为方法名。
@EnableAutoConfiguration 注解为启用自动配置,该注解会使springBoot根据项目中依赖的jar包自动配置项目的配置项,如果我们在项目中添加了spring-boot-starter-web和springMVC的依赖,则会自动为我们配置tomcat和springMVC。
@ComponentScan注解则会扫描@SpringBootApplication注解类同级目录以及子目录。
二、Spring Boot 关闭自动配置
我们知道,springBoot项目会根据项目中的jar包依赖,会做许多自动配置,而这些配置非常多,有很多我们时不需要用到的,那么这些自动配置我们其实是可以关闭的。
我们打开maven Dependencies 找到 spring-boot-autoconfigure,这个jar包下面的所有的包都是springBoot帮我们做了自动化配置的。
假如我们现在不想让springBoot帮我们自动化配置cache和gson,我们就可以打开这两个包找到配置类,然后在我们的@SpringBootConfiguration注解中进行剔除。
这样,springBoot就不会帮我们自动化配置cache和gson了。
三、Spring Boot 自定义banner
在springBoot启动时,我们会发现在控制台都会有一个图标,如下图:
这个被我们称作banner,而这个banner我们是可以自定义的,我们将自己绘制好到字符串复制到txt文件中,将其放入resources目录下:
上面方法就可以改变banner,大家可以根据自己随意设计,当然,这个banner也可以让它不显示。
/** * 这里的SpringBootApplication 就是在指定一个Spring Boot 的应用 * @author Wuyouxin */ @SpringBootApplication(exclude = {CacheAutoConfiguration.class, GsonAutoConfiguration.class}) public class App{ public static void main( String[] args ) { //在Main方法中启动应用程序 //SpringApplication.run(App.class, args); SpringApplication application = new SpringApplication(App.class); application.setBannerMode(Mode.OFF); application.run(args); } }
上面的写法,就可以关闭banner的显示。
-------------------- END ---------------------
最后附上作者的微信公众号地址和博客地址
公众号:wuyouxin_gzh