当前位置: 首页 > 知识库问答 >
问题:

mybatis-spring-boot-cant不能使用作为bean注入数据源

诸葛乐逸
2023-03-14

下面是我的配置类。

@Configuration
@Component
class Config {
@Bean
@ConfigurationProperties(prefix = "my.spring.datasource")
public javax.sql.DataSource dataSource() {

    return DataSourceBuilder
            .create()
            .build();
}

}  
- Bean method 'dataSource' not loaded because @ConditionalOnProperty (spring.datasource.type) did not find property 'spring.datasource.type'
- Bean method 'dataSource' not loaded because @ConditionalOnProperty (spring.datasource.jndi-name) did not find property 'jndi-name'
- Bean method 'dataSource' not loaded because @ConditionalOnClass did not find required class 'javax.transaction.TransactionManager'   
- Bean method 'dataSource' not loaded because @ConditionalOnProperty (spring.datasource.jndi-name) did not find property 'jndi-name'
- Bean method 'dataSource' not loaded because @ConditionalOnClass did not find required class 'javax.transaction.TransactionManager'  
***************************
APPLICATION FAILED TO START
***************************

Description:

Parameter 0 of method sqlSessionTemplate in org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration required a bean of type 'org.apache.ibatis.session.SqlSessionFactory' that could not be found.
    - Bean method 'sqlSessionFactory' in 'MybatisAutoConfiguration' not loaded because @ConditionalOnMissingBean (types: org.apache.ibatis.session.SqlSessionFactory; SearchStrategy: all) found bean 'sqlSessionFactory'


Action:

Consider revisiting the conditions above or defining a bean of type 'org.apache.ibatis.session.SqlSessionFactory' in your configuration.   

应用程序.属性

my.spring.datasource.driverClassName=***
my.spring.datasource.url=****
my.spring.datasource.username=user
my.spring.datasource.password=****
my.spring.datasource.type=org.apache.tomcat.jdbc.pool.DataSource

共有1个答案

钮晟
2023-03-14

确保您已经在application.yml中配置了以下属性

spring:
  datasource:
    url: jdbc:oracle:thin:@db-host:port/catalog
    username: user
    password: pass
    driver-class-name: oracle.jdbc.OracleDriver

这样做之后,就可以将datasource注入到sping组件;如下所示。

@Autowired
DataSource dataSource;
 类似资料:
  • 说起多数据源,一般都来解决那些问题呢,主从模式或者业务比较复杂需要连接不同的分库来支持业务。我们项目是后者的模式,网上找了很多,大都是根据jpa来做多数据源解决方案,要不就是老的spring多数据源解决方案,还有的是利用aop动态切换,感觉有点小复杂,其实我只是想找一个简单的多数据支持而已,折腾了两个小时整理出来,供大家参考。 废话不多说直接上代码吧 配置文件 pom包就不贴了比较简单该依赖的就依

  • 我正在使用Spring Framework/Data/HATEOAS,并试图添加dozer。 和以下汇编程序: 所以,-我对豆子和注射很陌生-但我想工厂的豆子是?应该?来注入映射器。但是映射器肯定是空的。我知道我做得不对,但我做错了什么?

  • 这两天启动了一个新项目因为项目组成员一直都使用的是mybatis,虽然个人比较喜欢jpa这种极简的模式,但是为了项目保持统一性技术选型还是定了 mybatis。到网上找了一下关于spring boot和mybatis组合的相关资料,各种各样的形式都有,看的人心累,结合了mybatis的官方demo和文档终于找到了最简的两种模式,花了一天时间总结后分享出来。 orm框架的本质是简化编程中操作数据库的

  • 我有一个使用SpringDataREST的非常简单的SpringBoot2.0.3项目。 当我尝试使用http:localhost:8080/users上的POST添加电子邮件地址无效的用户时,会返回以下JSON: 波姆。XML 用户应用。JAVA 使用者JAVA 用户存储库。JAVA 我在谷歌上搜索过,几年前似乎有很多相关的问题,我在这里尝试过建议的解决方案 但这些都不起作用。 我已经花了很多时

  • 问题内容: 我试图将在Spring上下文中定义的bean注入到CDI托管组件中,但没有成功。不会注入Bean,而是在每次执行注入时都会创建一个新实例。我的环境是带有JBoss Weld的Tomcat 7。 Spring ApplicationContext很简单: CDI托管bean如下所示: 这是我的 但是,当我从JSF页面访问属性时,每次访问时都会创建一个新实例。这是一个简单的示例: 我得到以

  • 我有一个Spring Boot(面向批处理)应用程序,它使用一个数据源来完成批处理作业,并将内容写入数据库。 我在类似: 问题是,当我尝试将数据源注入一个Spring配置文件时: ...它告诉我: 无法自动连线。存在多个“DataSource”类型的bean。 Beans:数据源 我还尝试注入数据源,例如: ...但是没有运气:(,尽管这两个数据源的问题最终消失了。 有什么线索可以“绕过”吗?