@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. Ubuntu新手指引-软件包apt命令使用

    看到这个博客,你十有八九是刚接触Ubuntu,不知从何下手.Ubuntu社区虽然现在不活跃,但里有很多文,可以帮助你快速上手,比如Ubuntu中文社区新手指引. 软件包的管理常常涉及root权限,普通 ...

  2. 区分 for...in 和 for...of

    我们都知道在 JavaScript 中 for...in 和 for...of 都可以迭代一个数组,但他们之间也有着很大的区别: 区别一:用于迭代器的返回值不同 for...in 和 for...of ...

  3. Python学习第十四课——面向对象基本思想part1

    面向对象的基本思想 # 写法1 person1 = { 'name': 'hanhan', ', 'sex': '男' } def xue_xi(person): print('%s在学习' % pe ...

  4. Linux命令:iostat命令

    Linux系统中的 iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视.它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况.同 ...

  5. 企业面试问题收集-ssh框架

    SSH框架阶段 SSH的优缺点,使用场景? Hibernate优缺点 Hibernate优点:(1) 对象/关系数据库映射(ORM)它使用时只需要操纵对象,使开发更对象化,抛弃了数据库中心的思想,完全 ...

  6. spring mvc绑定参数之 类型转换 有三种方式:

    spring mvc绑定参数之类型转换有三种方式: 1.实体类中加日期格式化注解(上次做项目使用的这种.简单,但有缺点,是一种局部的处理方式,只能在本实体类中使用.方法三是全局的.) @DateTim ...

  7. js给元素添加样式[addClass][hasClass]

    function addClass(el, className) { if (hasClass(el, className)) { return } let newClass = el.classNa ...

  8. Flask - 闪现flash

    1. 像snap一样阅后即焚,在服务器端临时存储数据的地方,如显示错误信息.(也可以用session实现) 2. Flash的底层是session做的,所以要secret_key.可以看源码 3. f ...

  9. 任意两点之间的最短路(floyed)

    F.Moving On Firdaws and Fatinah are living in a country with nn cities, numbered from 11 to nn. Each ...

  10. Serializable的理解和使用 -----转载

    1.定义 这是一个接口,当一个类实现这个接口后,这个类就变成了一个可序列化的类,它就可以被写入流,保存起来,然后也可以用流读取,反序列化. 一般情况下,一个对象会随着程序的执行完成而消失,而有时我们需 ...