Spring Boot 2.x 系列--注解

@ComponentScan 组件扫描. 会自动扫描指定包下的全部标有@Component的类,并注册成bean,当然包括@Component下的子注解@Service,@Repository,@Controller。

举个栗子: spring boot 中(Springboot会自动扫描启动类同级包及其同级包的子包所有的注解。), 我的包名为  com.package1,cn.package2. 那么我的Application启动类在  com 下面. 

问: 我 cn 下面的扫描不到怎么办.  

问: 我只想扫描某个包下面的怎么办  答: 加注解写上你要扫描的包名,多个用逗号隔开 , 看下面

@ComponentScan("com.package1,cn.package2")  

@EntityScan 看到这个注解, 上面的会了 就知道了

@EnableAutoConfiguration 启用自动配置(当然也可以使用exclude属性禁用某些类),这就是Spring Boot自动配置实现的核心入口

@SpringBootApplication  组合注解相当于@Configuration,@EnableAutoConfiguration和 @ComponentScan 并具有他们的默认属性值

@Entity 声明实体

 @Table 指定表名

@Version  该注释可用于在实体Bean中添加乐观锁支持。

@Id 声明此属性为主键

@GeneratedValue 指定主键策略

@Column 声明该属性与数据库字段的映射关系。

@Configuration 一般配合  @Bean 使用.   声明当前类是一个配置类,相当于一个Spring的XML配置文件,与@Bean配合使用。 

@Configuration VS @Component
共同点:都可以用于创建Bean;
不同点:实现原理不同,@Configuration基于CGlib代理实现,@Component基于反射实现;
使用场景:@Configuration用于全局配置,比如数据库相关配置,MVC相关配置等;业务Bean的配置使用注解配置(@Component,@Service,@Repository,@Controller)。

@Import  就是之前xml配置中的import标签,可以用于依赖第三方包中bean的配置和加载.

@ImportResource 导入xml文件, 需要配合@Configuration注解一起使用,定义为配置类  

@ImportResource({"classpath:some-context.xml","classpath:other-context.xml"})

 

Springboot是常用的条件依赖注解有:

@ConditionalOnBean,仅在当前上下文中存在某个bean时,才会实例化这个Bean。

@ConditionalOnClass,某个class位于类路径上,才会实例化这个Bean。

@ConditionalOnExpression,当表达式为true的时候,才会实例化这个Bean。

@ConditionalOnMissingBean,仅在当前上下文中不存在某个bean时,才会实例化这个Bean。

@ConditionalOnMissingClass,某个class在类路径上不存在的时候,才会实例化这个Bean。

@ConditionalOnNotWebApplication,不是web应用时才会实例化这个Bean。

@AutoConfigureAfter,在某个bean完成自动配置后实例化这个bean。

@AutoConfigureBefore,在某个bean完成自动配置前实例化这个bean。

 

 

 

....后期待增加

你可能感兴趣的:(Spring,Boot,2.x)