简单的看一下源码之间的继承关系 @SpringBootConfiguration组成部分中有@Configuration
也就意味着有此注解的类也被 赋予了可以使用各种注解的功能(比如通过@Bean声明对象放入容器中等功能 但还是单独开一个包写比较好)
字面意思,启用自动配置,有此注解的类就可以把对象配置好,注入到spring容器中。
以前我们需要配置的东西,Spring Boot帮我们自动配置 (比如创建mybatis的对象放入到容器中)底层处理逻辑比较复杂
应用场景:容器启动后执行一些内容。比如读取配置文件,数据库连接之类的,这时就可以实现接口和实现方法
执行时机:容器启动完成的时---容器启动末尾时间执行操作 接口与实现:用来模拟一下容器启动后的操作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("自定义的操作,比如读取文件, 数据库等等"); } }
模拟测试结果: