使用注解,spring中无法注入bean? 5

@ComponentpublicclassMultiDataSourceextendsAbstractRoutingDataSource{@Autowiredprivat... @Component
public class MultiDataSource extends AbstractRoutingDataSource {
@Autowired
private Dydatasource dydatasource;

private static final ThreadLocal<String> dataSourceKey = new InheritableThreadLocal<String>();

/**
* 设置dataSourceKey的值
* @param dataSource
*/
public void setDataSourceKey(String dataSource) throws SQLException {
{
System.out.println(22222);
System.out.println(dataSource);
// String conf = "applicationContext.xml";
// ApplicationContext ac = new ClassPathXmlApplicationContext(conf);
// Dydatasource dydatasource = ac.getBean("dydatasource", Dydatasource.class);
DataSource turedatasource = dydatasource.registerDs(dataSource);
System.out.println(dydatasource);
Object ture = turedatasource;
Object data = dataSource;

System.out.println(2);

Map<Object, Object> objectObjectMap = new HashMap<Object, Object>();
objectObjectMap.put(data, ture);

super.setTargetDataSources(objectObjectMap);
System.out.println(objectObjectMap.get(data));

// dataSourceKey.set(dataSource);
}
}
/**+
* 清除dataSourceKey的值
*/
public static void toDefault() {
// dataSourceKey.remove();
}

/**
* 返回当前dataSourceKey的值
*/

@Override
protected Object determineCurrentLookupKey() {
// return dataSourceKey.get();
return null;
}

}
展开
 我来答
畅聊万事

2019-12-03 · TA获得超过6635个赞
知道大有可为答主
回答量:1万
采纳率:100%
帮助的人:406万
展开全部
这种情况,帮你找到两种解决办法:
  1 .将接口与对应的实现类放在与application启动类的同一个目录或者他的子目录下,这样注解可以被扫描到,这是最省事的办法
  2 .在指定的application类上加上这么一行注解,手动指定application类要扫描哪些包下的注解
追问
上面注释的那两行new applicationcontect获取bean其实可以获取到那个bean,但是我明明监听的时候就已经加入容器了,为什么获取不到;
靳蕴34
2019-12-04 · 贡献了超过112个回答
知道答主
回答量:112
采纳率:0%
帮助的人:7.1万
展开全部
法国哼哼唧唧健健康康卡卡该喝喝斤斤计较坎坎坷坷巴巴爸爸你非凡哥好几年那你们慢慢嘛嘛嘛你那你爸爸v成功后
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式