当前位置: 首页 > article >正文

SpringBoot对于Spring的扩展

Springboot所提供的注解

@Configuration:用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext类进行扫描,并用于构建bean定义,初始化Spring容器。

@ConditionalOnProperty:

  • prefix:属性的前缀部分。
  • name:属性名称。
  • havingValue:属性的值与 havingValue 相等时条件成立(默认不指定)。
  • matchIfMissing:如果属性未定义,是否加载配置(默认 false,即未定义时不加载)。
  • value:赋予属性值的,是否有值通过matchIfMissing来设置。

或者将value替换成name,matchIfMissing替换为havingValue 效果是一样的。        

@ConditionalOnBean:是否会加载Bean

如果存在括号中的类,这个Bean就会加载,没有则不会进行加载,这个不仅可以作用在类上,还可以作用在方法上面进行使用。

这个是判断是否需要注入到IOC容器里面,是以IAccountService.class是否存在作为标准,存在进行加载,不存在则不加载。

@ConditionalOnMissingBean与上面@ConditionalOnProperty的作用是相反的。

@ConditionalOnClass:JVM 中存在指定的 Class 进行条件注入

Springboot自定义一个条件注解:

@Target:用来表示注解作用范围,超过这个作用范围,编译的时候就会报错。

@Retention:用于指定注解的生命周期,即注解在什么阶段仍然有效。

之后定义一个Condition接口的实现类,因为上面的那个注解也是作用在Condition这个接口的。

之后可以根据这个ConditionalOnImoocCondition类来进行使用。

这里的value的值需要是on需要对应上面那个ConditionalOnImoocCondition里面所等于的值,从而实现对于IOC容器的一个加载。


http://www.kler.cn/a/514656.html

相关文章:

  • 图论 n 皇后问题
  • Hadoop特点和HDFS命令
  • IP地址的格式有哪几类类型
  • vim在末行模式下的删除功能
  • MyBatis和JPA区别详解
  • YOLO-cls训练及踩坑记录
  • LightGBM:让机器学习更快、更准、更高效
  • 基于SpringBoot+Vue的旅游管理系统【源码+文档+部署讲解】
  • gitlab处理空文件夹的提交或空文件夹提交失败
  • 洛谷题目 P1271 【深基9.例1】选举学生会 题解
  • 物联网边缘(Beta)离全面落地还有多远?
  • MySQL主从配置
  • Excel常用功能总结
  • java中的单元测试的使用以及原理
  • 机器学习-线性回归(简单回归、多元回归)
  • Java爬虫还有其他用途吗?
  • 头歌实训作业 算法设计与分析-贪心算法(第3关:活动安排问题)
  • cling: c++交互式执行
  • 数据分析 基础定义
  • 深入探讨Web应用开发:从前端到后端的全栈实践