springboot项目主程序入口的一些常见内容:@ SpringBootApplication(复合注解)以及CommandLineRunner和ApplicationRunner两个接口
2022/1/27 14:05:25
本文主要是介绍springboot项目主程序入口的一些常见内容:@ SpringBootApplication(复合注解)以及CommandLineRunner和ApplicationRunner两个接口,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1.@SpringBootApplication 是一个复合注解
@SpringBootApplication 作为项目的主启动类,是一个复合注解,核心部分是由 @SpringBootConfiguration, @EnableAutoConfiguration ,@ComponentScan 在一起组成1.1@SpringBootConfiguration
简单的看一下源码之间的继承关系 @SpringBootConfiguration组成部分中有@Configuration
也就意味着有此注解的类也被 赋予了可以使用各种注解的功能(比如通过@Bean声明对象放入容器中等功能 但还是单独开一个包写比较好)
1.2@EnableAutoConfiguration
字面意思,启用自动配置,有此注解的类就可以把对象配置好,注入到spring容器中。
以前我们需要配置的东西,Spring Boot帮我们自动配置 (比如创建mybatis的对象放入到容器中)底层处理逻辑比较复杂
1.3@ComponentScan
组件扫描器 能扫描到程序中的注解 根据注解的功能创建bean对象 给属性赋值放入容器中等等 组件扫描器默认扫描的是 @ComponentScan 注解所在类的包和子包。 所以@ SpringBootApplication这个复合注解应该放在主包下面 这个规则约定俗成不建议打破 主类放在主包下面,其它子类放在子包下面即可2.CommandLineRunner和ApplicationRunner两个接口
应用场景:容器启动后执行一些内容。比如读取配置文件,数据库连接之类的,这时就可以实现接口和实现方法
执行时机:容器启动完成的时---容器启动末尾时间执行操作 接口与实现:用来模拟一下容器启动后的操作public interface HelloService { String sayHello(String name); } @Service("helloService") public class HelloServiceImpl implements HelloService { @Override public String sayHello(String name) { return "我叫--->:"+name; } }
springboot主启动类 实现CommandLineRunner和重写run方法
@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 { String str = helloService.sayHello("lisi"); System.out.println("调用容器中的对象="+str); System.out.println("自定义的操作,比如读取文件, 数据库等等"); } }
模拟测试结果:
这篇关于springboot项目主程序入口的一些常见内容:@ SpringBootApplication(复合注解)以及CommandLineRunner和ApplicationRunner两个接口的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南