星空网 > 软件开发 > Java

spring使用DataSoure注入参数时报No supported DataSource type found

    平常阅读源码什么的没有目的性,所以很少去看什么源码,主要是比较绕看起来吃力,所以一般工作只是找个模版模仿一下。

以上废话,割————————————————————————————————————————————————————————————

    最近照常模仿使用了其它项目里的DataSource用法,代码如下:

    

 1    @Bean 2   @Primary 3   @ConfigurationProperties(prefix = "datasource.from") 4   public DataSource dataSource(){ 5     return DataSourceBuilder.create().build(); 6   } 7    8   @Autowired 9   @Qualifier("dataSource")10   private DataSource dataSource;11 12   @Bean(name="sqlSessionFactory")13   public SqlSessionFactory sqlSessionFactory() throws Exception {14     SqlSessionFactoryBean bean = new SqlSessionFactoryBean();15     bean.setDataSource(dataSource);16     bean.setConfigLocation(new ClassPathResource("MybatisConfig.));17     return bean.getObject();18   }

    在运行初始化的时候报“No supported DataSource type found”,查找网上资料又说没有指定数据库类型的。

    于是,自己在配置中增加了datasource.from.type=oracle,运行还是报一样的错。于是,到晚上脑子清醒点时,看了下DataSource初始化时的部分源码。

    主要的是第三段代码如下:

1 private static final String[] DATA_SOURCE_TYPE_NAMES = { "org.apache.tomcat.jdbc.pool.DataSource", "com.zaxxer.hikari.HikariDataSource", "org.apache.commons.dbcp.BasicDataSource", "org.apache.commons.dbcp2.BasicDataSource" };

public Class<? extends DataSource> findType(){  if (this.type != null) {    return this.type;  }  for (String name : DATA_SOURCE_TYPE_NAMES) {  try {    return ClassUtils.forName(name, this.classLoader);  }catch (Exception ex) {}

1 private Class<? extends DataSource> getType() {2    Class<? extends DataSource> type = findType();3    if (type != null) {4     return type;5    }6    throw new IllegalStateException("No supported DataSource type found");7   }

1 public DataSource build() {2   Class<? extends DataSource> type = getType();3   DataSource result = (DataSource)BeanUtils.instantiate(type);4    maybeGetDriverClassName();5    bind(result);6   return result;7  }

    看完上面的代码就明白为什么报错了,就是说在创建DataSource没有找到javax.sql.DataSource的子类,也就是必须要引入DATA_SOURCE_TYPE_NAMES枚举中涉及类的jar包,另外注意引入对应数据库JDBC的jar包。

 

以上,Good lucky!

 




原标题:spring使用DataSoure注入参数时报No supported DataSource type found

关键词:Spring

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

等咯网络:https://www.goluckyvip.com/tag/30199.html
NYK ORPHEUS:https://www.goluckyvip.com/tag/302.html
玩转内容营销:https://www.goluckyvip.com/tag/3020.html
邓白氏编码:https://www.goluckyvip.com/tag/30200.html
邓白氏集团:https://www.goluckyvip.com/tag/30201.html
邓锴 Kevin Deng :https://www.goluckyvip.com/tag/30202.html
去日本入住酒店,东西随意用却有一个特殊“要:https://www.vstour.cn/a/411241.html
中国有哪些著名的酒店品牌。:https://www.vstour.cn/a/411242.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流