在springboot应用中,存在这样的使用场景,在springboot ioc容器创建好之后根据业务需求先执行一些操作,springboot提供了两个接口可以实现该功能:

  1. CommandLineRunner
  2. ApplicatioinRunner

使用思路:

  1. 实现改接口,重写run方法,run方法中完成要完成的操作
  2. 实例化接口,并注入到spring ioc容器
/**
* Application类
*/
@SpringBootApplication
public class Application implements CommandLineRunner {
@Resource
private HelloService helloService; public static void main(String[] args) {
System.out.println(" 容器创建之前");
SpringApplication.run(Application.class, args);
System.out.println("容器创建之后");
} @Override
public void run(String... args) throws Exception {
System.out.println("前面过程在创建容器,现在创建好了,先执行下列操作:");
//调用run方法时,spring ioc容器中helloService已经创建并装配好
helloService.sayHello("操作:arminker");
}
}

总结

  1. @SpringBootApplication标注的类是一个配置类
  2. 在springboot应用中,配置类对象会自动被spring ioc容器所管理
  3. 在测试类中,使用AnnotationConfigApplicationContext获取容器对象,发现无法获取,说明在非springboot项目中,被@Configuration标注的类不会对项目进行自动配置,必须要添加配置参数。

最新文章

  1. BestCoder Round 69 Div 2 1001&& 1002 || HDU 5610 && 5611
  2. How to: Convert Between Various String Types
  3. MySQL的mysqldump工具的基本用法
  4. 修改CSV中的某些值 -- 2
  5. 多校6 1003 HDU5795 A Simple Nim (sg函数)
  6. SQL Server 负载均衡集群方案之Moebius
  7. nuc950支持nand的mtd驱动的kernel修改
  8. sql查询 数据库 表 字段 等
  9. 定义你自己ViewGroup
  10. JAVA的abstract修饰符 && 接口interface用法 && 抽象类和interface的差别
  11. 使用net Manager工具远程连接oracle
  12. [bzoj3196]Tyvj 1730 二逼平衡树——线段树套平衡树
  13. UOJ #460 新年的拯救计划
  14. 工具方法: jQuery.方法() $.extend (小计)
  15. selenium基础用法(爬虫)
  16. [转帖]IBM POWER系列处理器的前世今生
  17. 09观察者模式ObServer
  18. java面向切面编程总结-面向切面的本质
  19. 【动态规划】POJ-2229
  20. Ubuntu Server 下配置静态网络的方法

热门文章

  1. [BUUCTF]PWN——[V&N2020 公开赛]warmup
  2. [BUUCTF]REVERSE——[BJDCTF2020]JustRE
  3. [BUUCTF]PWN14——not_the_same_3dsctf_2016
  4. 【Web】BUUCTF-warmup(CVE-2018-12613)
  5. SpringBoot Redis 发布订阅模式 Pub/Sub
  6. CF1461A String Generation 题解
  7. canvas 实现渐变色填充的三角形
  8. SpringCloud使用GateWay网关前端请求请求跨域处理
  9. lldb调试C++总结(3)
  10. 【LeetCode】107. Binary Tree Level Order Traversal II 解题报告 (Python&C++)