@SpringBootApplication注解

  Spring Boot项目有一个入口类 (*Application) 在这个类中有一个main 方法,是运行该项目的切入点。而@SpringBootApplication 注解就是作用在这个启动类上面的,它是Spring Boot 的核心注解,经过查看源码后,发现它其实是一个组合注解。

 @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的配置注解,也是一个组合注解,与@Configuration作用相同,标识这是一个被装载的Bean,在Spring Boot项目中推荐使用       @SpringBootConfiguration替代@Configuration。                

 @Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Configuration
public @interface SpringBootConfiguration {
}

  @EnableAutoConfiguration:启用自动配置的注解,使用它之后,Spring Boot会根据项目中依赖的jar包自动配置项目的配置项,比如:添加了spring-boot-starter-web的依赖,项目中也就会引入SpringMVC的依赖,并且Spring Boot会自动配置tomcat 和SpringMVC。

  @ComponentScan:默认扫描@SpringBootApplication所在类的同级目录以及它的子目录,excludeFilters:指定不适合组件扫描的类型。

关闭自动配置

  Spring Boot会根据项目中的jar包依赖,自动做出配置,Spring Boot支持的自动配置非常多,致使它的初始化时间比较长,因此为了避免不必要的耗时,可以将一些和第三方组件的自动集成和配置关闭。比如不想自动配置Redis:

@SpringBootApplication(exclude = {RedisAutoConfiguration.class})

自定义Banner

  在启动Spring Boot 项目的时候在控制台上会输出一个SPRING 的图案。可以通过banner文件自定义这个图案,同时也可以关闭这个输出图案。

  自定义Banner~ 可以通过这个链接就可以自定义想要输出的图案,然后把自定义的图案拷贝到一个文件,将该文件命名为banner.txt 放到resources 目录中重启即可看到自定义的图案。

当然也可以关闭控制台输出团案:修改main 方法中的代码:

public static void main(String[] args) {
//SpringApplication.run(SpringbootTestApplication.class, args);
SpringApplication application = new SpringApplication(SpringbootTestApplication.class);
application.setBannerMode(Banner.Mode.OFF);
application.run(args);
}  

Spring Boot 核心配置文件

  Spring Boot 的核心配置文件是 application 和 bootstrap 配置文件。

  application 配置文件主要用于 Spring Boot 项目的自动化配置。

  bootstrap 配置文件有以下几个应用场景。

  • 使用 Spring Cloud Config 配置中心时,这时需要在 bootstrap 配置文件中添加连接到配置中心的配置属性来加载外部配置中心的配置信息;
  • 一些固定的不能被覆盖的属性;
  • 一些加密/解密的场景;

而配置文件又有两种格式:.properties 和 .yaml,它们的区别主要是书写格式不同。

.properties:

spring.datasource.username=root

.yaml:

spring:
datasource:
username: root

另外,.yaml 格式不支持 @PropertySource 注解导入配置。

导入XML配置文件

  SpringBoot提倡零配置,它已经为我们做了很多的配置但是如果在相关的项目中仍然需要xml 文件做一些额外的配置,别担心,Spring Boot 也是支持的。可以在入口类通过@ImportResource 进行xml 配置文件的导入并且支持对多个xml 文件的配置。

@ImportResource({"classpath:*.xml","classpath:**.xml"})

Spring Boot 核心注解与配置文件的更多相关文章

  1. 3个Spring Boot核心注解,你知道几个?

    Spring Boot 核心注解讲解 Spring Boot 最大的特点是无需 XML 配置文件,能自动扫描包路径装载并注入对象,并能做到根据 classpath 下的 jar 包自动配置. 所以 S ...

  2. 【SpringBoot】15. Spring Boot核心注解

    Spring Boot核心注解 1 @SpringBootApplication 代表是Spring Boot启动的类 2 @SpringBootConfiguration 通过bean对象来获取配置 ...

  3. 深入了解Spring Boot 核心注解原理

    SpringBoot目前是如火如荼,所以今天就跟大家来探讨下SpringBoot的核心注解@SpringBootApplication以及run方法,理解下springBoot为什么不需要XML,达到 ...

  4. Spring Boot核心注解@SpringBootApplication

    一.作用   @SpringBootApplication是一个组合注解,用于快捷配置启动类. 二.用法   可配置多个启动类,但启动时需选择以哪个类作为启动类来启动项目. 三.拆解 1.拆解     ...

  5. Spring Boot核心注解

    (1)@SpringBootApplication 代表SpringBoot的启动类 (2)@SpringBootConfiguration 通过bean对象来获取配置信息 (3)@Configura ...

  6. Spring Boot 核心配置文件 bootstrap & application

    Spring Boot 核心配置文件 bootstrap & application 1.SpringBoot bootstrap配置文件不生效问题 2.bootstrap/ applicat ...

  7. Spring Boot配置,读取配置文件

    Spring Boot配置,读取配置文件 一.配置Spring Boot 1.1 服务器配置 1.2 使用其他Web服务器 1.3 配置启动信息 1.4 配置浏览器显示ico 1.5 Yaml语法 1 ...

  8. Spring Boot常用注解总结

    Spring Boot常用注解总结 @RestController和@RequestMapping注解 @RestController注解,它继承自@Controller注解.4.0之前的版本,Spr ...

  9. Spring Boot 常用注解汇总

    一.启动注解 @SpringBootApplication @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documen ...

随机推荐

  1. vs code插件大全

    一.HTML Snippets 超级使用且初级的H5代码片段以及提示 二.HTML CSS Support  让HTML标签上写class智能提示当前项目所支持的样式 三.Debugger for C ...

  2. 包装类和toString和static关键字

    包装类 针对八种基本数据类型定义的引用类型. 有类的特点,可以调用类中的方法. 基本数据类型 包装类 boolean Boolean byte Byte short Short int Integer ...

  3. GO判断输入

    判断用户密码输入: package main import"fmt" func main(){ var a int var b int fmt.Printf("请输入密码 ...

  4. 五 Spring的配置:Bean的配置,生命周期和作用范围

    Bean相关的配置: <bean>标签的id和name的配置: id:使用了约束中的唯一约束,里面不能出现特殊字符 name:没有使用唯一约束,理论上可以重复,实际上开发不行,里面可以出现 ...

  5. Kali Linux RPi0w Nexmon操作笔记

    Kali Linux RPi0w Nexmon镜像下载地址:https://www.offensive-security.com/kali-linux-arm-images/ 1.烧录系统 可参考:树 ...

  6. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 排版:设定文本居中对齐

    <!DOCTYPE html> <html> <head> <title>菜鸟教程(runoob.com)</title> <meta ...

  7. springmvc启动加载指定方法

    官网: https://docs.oracle.com/javaee/7/api/javax/annotation/PostConstruct.htmlblog:https://blog.csdn.n ...

  8. 科普:为什么 String hashCode 方法选择数字31作为乘子

    作者:coolblog 此文章转载自:https://segmentfault.com/a/1190000010799123 1. 背景 某天,我在写代码的时候,无意中点开了 String hashC ...

  9. springcloud gateway nullpointerexception (NettyRoutingFilter)

    最近在做一个下载功能时,发现直接调用服务是可以下载的,但是通过gateway路由下载会报NPE异常,具体如下 java.lang.NullPointerException: null at java. ...

  10. 实用类-<装箱与拆箱>

    装箱:把基本数据类型装换为对应的对象类 作用:1.在需要使用对象类型的时候,装换成对应的对象类型(集合里面) 2.转换完成以后,拥有相应的属性和方法,方便咱们的数据操作 拆箱 Integer intO ...