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:定义常用定时任务的指令方式

执行结果:


每隔一秒执行一次。

SpringBoot常见功能特性分析相关推荐

  1. SpringBoot启动流程分析(四):IoC容器的初始化过程

    SpringBoot系列文章简介 SpringBoot源码阅读辅助篇: Spring IoC容器与应用上下文的设计与实现 SpringBoot启动流程源码分析: SpringBoot启动流程分析(一) ...

  2. Selenium常见异常分析及解决方案

    Selenium常见异常分析及解决方案 参考文章: (1)Selenium常见异常分析及解决方案 (2)https://www.cnblogs.com/superhin/p/11454861.html ...

  3. SpringBoot源码分析(二)之自动装配demo

    SpringBoot源码分析(二)之自动装配demo 文章目录 SpringBoot源码分析(二)之自动装配demo 前言 一.创建RedissonTemplate的Maven服务 二.创建测试服务 ...

  4. Springboot源码分析第一弹 - 自动装配实现

    Springboot就不用多了吧,解放Java开发双手的神器. 最显著的特点就是,去配置化,自动装配,自动配置.让开发人员只需要注重业务的开发 今天就来了解一下自动装配的源码是怎么实现的 预先准备 直 ...

  5. 电路实验一阶电路误差分析_常见滤波电路分析技巧

    原标题:常见滤波电路分析技巧 在整流电路输出的电压是单向脉动性电压,不能直接给电子电路使用.所以要对输出的电压进行滤波, 消除电压中的交流成分,成为直流电后给电子电路使用.在滤波电路中,主要使用对交流 ...

  6. SpringBoot常见的经典面试题

    SpringBoot常见的经典面试题 最近很多人面试时,简历上都说自己熟悉 Spring Boot, 或者说正在学习Spring Boot,一被面试官问道,都只停留在简单的使用阶段,很多东西都不清楚, ...

  7. 大数据技术人员工具包之—常见数据挖掘分析处理工具

    大数据技术人员工具包之-常见数据挖掘分析处理工具 2016年03月15日 大数据 数据科学融合了多门学科并且建立在这些学科的理论和技术之上,包括数学.概率模型.统计学.机器学习.数据仓库.可视化等.在 ...

  8. SpringBoot 常见配置注解使用:

    SpringBoot 配置注解解析 会不断更新! 一起学习呀! application.yml 常见配置: server server.servlet.context-path 应用上下文路径 ser ...

  9. SpringBoot源码分析之内置Servlet容器

    原文链接:http://fangjian0423.github.io/2017/05/22/springboot-embedded-servlet-container/ SpringBoot内置了Se ...

最新文章

  1. 经济书籍:世界是平的
  2. 入手一个windows ce系统的可以打电话的HPC,测试在上面发表博客
  3. python用input输入列表有缺陷_Python 三程三器的那些事
  4. 运营商 sni 服务器,什么是服务器名称指示(SNI)
  5. android字符串显示textview,Android编程:TextView不显示完整字符串
  6. 编制一个函数jsValue(),求出千位数上的数减百位数上的数减十位数上的数减个位数上的数大于零的个数cnt,再求出所有满足此条件的四位数的平均值pjz1,以及不满足此条件的四位数的平均值pzj2
  7. prometheus + cadvisor + grafana 监控容器和服务器
  8. php连接mssql的一些相关经验和总结
  9. 语言独立性和与语言无关的组件
  10. PS 进行隐藏图制作
  11. CSS【进阶】线性径向渐变background-image:linear-gradient();background-image:radial-gradient();
  12. DocumentFragment
  13. 分布式调度框架Elastic-Job
  14. Stacked Hybrid-Attention and Group Collaborative Learning for Unbiased Scene Graph Generation
  15. 使您的软件运行起来: 防止缓冲区溢出(转)
  16. java人民币数字转大写汉字(小写转为大写).java
  17. 利用cout域宽实现数字时钟
  18. [Java]从键盘输入一行英文字符串,只统计字符串中出现的每个英文字母的个数。
  19. 强一致性、顺序一致性、弱一致性和共识
  20. [木马]不释放资源到本地文件系统,直接运行其内嵌exe程序 卡巴竟然报毒,MSE正常

热门文章

  1. java访问控制符_java中访问控制符的作用
  2. [ CodeForces 865 D ] Buy Low Sell High
  3. HDU 6304 Chiaki Sequence Revisited
  4. 打印出如下图案(菱形)
  5. HTML/CSS[收藏]
  6. python-常用函数模块学习-subprocess
  7. DropDownList联动
  8. 转数据库分库分表(sharding)系列(一) 拆分实施策略和示例演示
  9. levelDB数据库使用及实例 - 高性能nosql存储数据库
  10. python2.7 print函数