SpringBoot注解介绍

1、@ComponentScan:

新建SpringBoot项目时 会自动生成一个入口类 命名规则是项目名+Application 该类上面有个@SpringBootApplication 项目启动时系统会自动扫描这个类的同级以及下级目录 将需要的对象注入到IOC容器 在需要时通过DI(依赖注入)注入到需要的对象中 那么问题来了 程序是怎么确定需要扫描哪些包呢 这是因为在@SpringBootApplication中有个注解 如图:


通过该注解上的配置 才能准确定位需要扫描哪些包 。

由此我们可以进行延伸 如果我们需要臊面的资源不再该类的同级或者下级 我们只需要在项目入口类上配置上@ComponentScan("资源路径")

就可以将我们需要的外部(其他路径)资源加载到IOC容器中了

2、@Qualifier("byname") 通过name名 注入

3、@Primary 对于同一个类型下有多个实现 该注解可以标明哪个实现类是优先被注入的 如图:




此时会优先注入带有@Primary注解的bean 如下图:

4、@ConditionalOnProperty 该注解可以读取配置文件 根据配置文件的值来决定是否将bean注入到容器中

    该注解中的三个参数:value 值为配置文件中配置项的名字 havingValue为值  matchIfMissing 的值为true和false 时针对没有配置项的情况下时是否注入

5、

@Getter lombok为实体类自动生成getter方法

@Setter lombok为实体类自动生成setter方法

@AllArgsConstructor  lombok为实体类自动生成全参数构造方法

@NoArgsConstructor  lombok为实体类自动生成无参数构造方法

@RequiredArgsConstructor lombok为实体类自动生成成员变量非空的参数构造方法

@NonNull lombok为实体类指定参数非空

实体类.builder().name("muse").age(18).build()可以替换之前的setter方法赋值 不过需要在实体类上增加@Builder注解

但是一旦使用@Builder 就无法通过构造方法去实例化bean 因为@Builder会生成一个私有的构造方法 如果想使用构造方法实例化 可以配合使用NoArgsConstructor  或者手动新增一个无参构造

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容