springboot 2.1. x 를 2.2. x 로 업그레이드 한 후 DataSource 를 인용 하여 나타 난 could not be found

1917 단어 springboot
저 는 현지에서 DataSource 의 bean 을 인 용 했 습 니 다. springboot 2.1. x 일 때 정상적으로 사용 할 수 있 습 니 다. 이 bean 은 인터페이스 가 반드시 들 어 와 야 합 니 다. 판단 만 통과 하면 됩 니 다. 잠시 큰 역할 을 하지 않 았 지만 springboot 이 2.1. x 에서 2.2. x 로 업그레이드 한 후에 이 DataSource 의 bean 은 다음 과 같은 이상 이 발생 했 습 니 다.
A component required a bean of type 'javax.sql.DataSource' that could not be found.

The following candidates were found but could not be injected:
	- Bean method 'dataSource' in 'JndiDataSourceAutoConfiguration' not loaded because @ConditionalOnProperty (spring.datasource.jndi-name) did not find property 'jndi-name'
	- Bean method 'dataSource' in 'XADataSourceAutoConfiguration' not loaded because @ConditionalOnClass did not find required class 'javax.transaction.TransactionManager'


Action:

Consider revisiting the entries above or defining a bean of type 'javax.sql.DataSource' in your configuration.

       이상 을 통 해 알 수 있 듯 이 구체 적 인 DataSource 를 정의 해 야 합 니 다. 그러나 2.1. x 에서 설정 파일 을 통 해 알 수 있 듯 이 HikariDataSource 의 기본 bean 을 기본적으로 실 현 했 지만 2.2. x 에서 이러한 오류 가 발생 했 습 니 다.구체 적 인 해결 방안 은 앞에서 말 한 구체 적 인 DataSource 를 정의 해 야 하기 때문에 실현 방식 은 다음 과 같다.
@Configuration
public class DataSourceConfig {

    @ConfigurationProperties(prefix="spring.datasource.hikari")
    @Bean
    public DataSource dataSource(){
        return DataSourceBuilder.create().build();
    }
}
spring:
  datasource:
    hikari:
      #            sql  
      connection-test-query: select 1
      auto-commit: true
      #               DataSourceConfig.java    ,      JobEventConfig.java          dataSource
      username: root
      password: root
      jdbc-url: jdbc:mysql://localhost:3306/orderSystem?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8

        설정 의 인용 에 주의 하 십시오. 그렇지 않 으 면 다른 오류 가 발생 할 수 있 습 니 다.

좋은 웹페이지 즐겨찾기