是这么个场景,我有一个场景,如果用户配置了数据源,那么我就创建 bean1,如果用户没有配置,那么我就创建 bean2。
弄了半天没弄出来,用了 conditionOn 什么的注解没弄出来。
这东西到底怎么配啊???
弄了半天没弄出来,用了 conditionOn 什么的注解没弄出来。
这东西到底怎么配啊???
1
gaobing Feb 16, 2020 via Android
做 starter 吗,conditionon 条件检测一下容器中有没有 datasource 这个接口的类,可以参考 durid starter 的实现
|
2
rizon OP @gaobing #1 主要问题就出在,我自己写的 @ConditionalOnBean(DataSource.class) 判断结果总是 false
|
4
0NF09LJPS51k57uH Feb 16, 2020
ConditinalOnBean 或者 ConditionalOnMissingBean 都可以,如果你参数是 Class 的话,你要确定 spring 根据这个 class 生成的 beanName 和你期待的是不是一致。可以下断点看一下。
|
6
daxiguaya Apr 3, 2020
实际上得看数据源从哪里注册进去的,从 META-INF/spring.factories 里的自动配置注册进去的话得这样: https://paste.ubuntu.com/p/NZPyqT5pXC/
|