SpringBoot常见功能特性分析

本文详细分析了SpringBoot的常见功能特性,包括启动入口、容器启动操作、Profile环境配置、配置信息封装成实体类以及定时任务的实现。通过@Configuration、@EnableAutoConfiguration和@ComponentScan注解理解SpringBoot应用的启动过程;探讨了CommandLineRunner和ApplicationRunner的执行顺序;介绍了如何根据不同环境配置Profile;展示了如何使用@ConfigurationProperties将配置信息自动映射到实体类;最后讲解了如何设置和执行定时任务。
摘要由CSDN通过智能技术生成

SpringBoot常见功能特性分析:

  • SpringBoot 应用启动入口
  • 容器启动之后执行的操作
  • Profile环境配置
  • 配置信息封装成实体类
  • 定时任务
(1)SpringBoot应用启动入口

在这里插入图片描述

查看@SpringBootApplication

在这里插入图片描述

查看@SpringBootConfiguration

在这里插入图片描述

因此,@SpringBootApplication实际上是由@Configuration、@EnableAutoConfiguration、@ComponentScan注解所修饰的一个组合注解。

@ Configuration:一个类级的注解,只是对象是一个Bean定义的源。@ Configuration类通过@Bean注解的公共方法声明Bean,@Bean注释是用来表示一个方法实例化、配置和初始化,是由Spring IOC容器管理的一个新的对象。

测试@Configuration注解:

在这里插入图片描述

该类由@Configuration注解,并编写了使用public修饰@Bean注解的方法restTemplate

因此,方法返回的RestTemplate就可以交由Spring IOC容器进行管理,使用时可以使用@Autowired注解注入。而且,在此方法内可以方便地对RestTemplate(Bean)做属性方面的定制工作。

@EnableAutoConfiguration:启用Spring应用程序上下文的自动配置,试图猜测和配置我们可能需要的Bean,自动配置类通常采用基于类路径classpath和已经定义的Bean对象进行应用。Spring的一个核心功能点。

@ComponentScan:为@Configuration注解的类去配置组件的扫描指令,同时提供了与Spring XML元素并行的支持,如果指令的包没有被定义,则将从声明该注解的类所在的包进行扫描。通俗点讲,该注解会自动扫描指令包下全部标有@Component注解(包括@Componet下的子注解)的类,并把它们注册为Spring IOC容器中的一个Bean。

(2)容器启动之后执行的操作

Runner01实现接口CommandLineRunner

在这里插入图片描述

Runner02实现接口ApplicationRunner

在这里插入图片描述

默认情况下,ApplicationRunner有优先于CommandLineRunner执行

在这里插入图片描述

若想规定多个Runner执行的顺序,可以通过@Order注解去标记执行的顺序

Runner01:

在这里插入图片描述

Runner02:

在这里插入图片描述

执行结果:

在这里插入图片描述

(3)Profile环境配置

在写应用程序时,可能需要根据不同的环境来读取配置文件,如开发、测试、生产三个不同的环境,则需要定义三个不同环境下的配置。

因此,可以在application.yml中合理地编排这些环境配置

在这里插入图片描述

(4)将配置信息封装成实体类

配置文件信息:

在这里插入图片描述

实体类:

在这里插入图片描述

功能:读取配置信息并自动封装成实体类

@ConfigurationProperties同类的配置信息自动地封装成实体类。并可以指定配置信息的前缀,在此指定了前缀为“adconf.mysql”的配置信息。

因此,MySQLConfig类中的四个属性就会根据配置文件中前缀为“adconf.mysql”下的配置信息自动填充,封装成实体类,方便程序调用。

(5)定时任务

在这里插入图片描述

在SpringBoot主程序中,需要加入@EnableScheduling注解,以启动定时任务的配置

创建定时任务的实现类:

在这里插入图片描述

@Scheduled:定义常用定时任务的指令方式

执行结果:

在这里插入图片描述
每隔一秒执行一次。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值