@SpringBootApplication:标注一个主程序类,说明这是一个Spring boot应用
@AutoConfigurationPackage:自动配置包,在@SpringBootApplication中,将主配置类(@SpringApplication标注的类)的所在包及下面所有子包里面的所有组件扫描到Spring容器。
-
@ConfigurationProperties:告诉SpringBoot将本类中的所有属性和配置文件中相关的配置进行绑定。
- prefix:配置文件中哪个下面的所有属性进行映射
- 只有这个组件是容器中的组件,才能使用容器中提供的ConfigurationProperties功能
@SpringBootTest:表示这是一个SpringBoot的单元测试
@RunWith(SpringRunner.class):表示用SpringBoot的启动器来跑
@PropertySource:加载指定的配置文件
@ImportResource:导入Spring 的配置文件,让配置文件里面的内容失效
-
@Bean:向IOC容器中注入一个类
写在方法上:默认的id就是方法名
写在类上:默认的id为首字母小写的类名
-
自定义初始化和销毁方法
@Bean(initMethod="自定义初始化方法",destroyedMethod="自定义销毁方法")
-
通过扫描装配Bean:
@Component:标明哪个类将被Spring IOC容器扫描装配
-
@ComponentScan:扫面当前类所在的包以及子包
配置项
basePackages:定义扫描的包名
basePackageClasses:定义扫描的类
includeFilters:定义满足过滤器条件的Bean才去扫描
-
excludeFilters:排除过滤器条件的Bean
注意:他们都需要通过一个注解@Filter去定义,他有一个type类型,这里可以定义为注解或者正则表达式等类型。classes定义注解类,pattern定义正则表达式。
eg:不想扫描包下面的service类
@ComponentScan(basePackages="com.springboot.*", excludeFilters={@Filter(classes={service.class})})
- 所有标注了@Service的类将不被IOC容器扫描注入
-
@Autowired:注入一个类
- 首先根据类型找到对应的Bean
- 如果对应的Bean不唯一,则根据其属性名称和Bean名称进行匹配,如果再无法匹配,则抛出异常
@Primary:当发现有多个同样类型的Bean时,优先使用@primary注入的
@Quelifier:通过Bean的名称来注入Bean,与@Autowired组合到一起使用
@ConfigurationProperties:读取配置文件的值,并映射到对象的属性中
-
@Scope:定义作用域
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
@Override :重写