@SpringBootApplication拓展
一. @SpringBootConfiguration注解
是SpringBoot的注解, 标识一个类为配置类, 与@Configration功能一致
run方法初始化了@SpringBootConfiguration注解
注解源码
java">@Target(ElementType.TYPE)//类型
@Retention(RetentionPolicy.RUNTIME)//生命周期
@Documented
@Configuration
public @interface SpringBootConfiguration {@AliasFor(annotation = Configuration.class)boolean proxyBeanMethods() default true;
}
指定代理@bean
代码
java">@SpringBootConfiguration
public class MyConfig {@Beanpublic MyBean getMyBean() {return new MyBean("Hello! Spring Boot");}
}
@Configration
是spring的注解, 用于标记一个类为配置类,表示该类包含Bean的定义。
代码
java">@Configuration
public class MyConfig {@Beanpublic MyBean mybean(){return new MyBean (1,"mybean");}
}
二. @ComponentScan
@ComponentScan告诉Spring 哪个packages 的用注解标识的类 会被spring自动扫描并且装入bean容器。
代码
java">@Configuration
@ComponentScan(value = "com.bite.principle.config")
public class MyConfig {@Beanpublic MyBean mybean(){return new mybean("mybean",1);}
三. @EnableAutoConfigration
根据项目依赖和配置,自动配置 Spring Boot 应用程序中的 Bean。
@AutoConfigurationPackage
添加该注解的类所在的package 作为 自动配置package 进行管理。
注解源码
java">@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Inherited@Import({Registrar.class}) // 导入Registrar中注册的组件public @interface AutoConfigurationPackage {}
从上述源码可以看出,@AutoConfigurationPackage注解的功能是由 @Import 注解实现的,它是spring框架的底层注解,它的作用就是给容器中导入某个组件类.
@Import
@Import通过快速导入的方式实现把实例加入spring的IOC容器中
@Import注解可以用于导入第三方包 ,当然@Bean注解也可以,但是@Import注解快速导入的方式更加便捷
java">@Import(importDemo.class)
public class TestDemo {}