Внедрение определенного источника данных в Spring Boot 2.0.2 Release - PullRequest
0 голосов
/ 13 ноября 2018

При попытке автоматического подключения DataSource с использованием Spring Boot 2.0.2 RELEASE выдает следующую ошибку и не может ее вставить:

«Не могу автопровода.Существует более одного компонента типа DataSource.

Объекты создаются в классе DataSourceConfiguration для HikariDataSource, BasicDataSource и для Tomcat.

Есть ли способ квалифицировать один из них и избежать создания остальных?

@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    public SecurityConfig() {
        this.usersByUsernameQuery = // definitions here
        this.authoritiesByUsernameQuery = //
        this.allowedAuthorities = //
    }

@Autowired
    public void configureGlobal(final AuthenticationManagerBuilder auth, final DataSource dataSource) throws Exception {
        auth.jdbcAuthentication()
            .dataSource(dataSource)
            .usersByUsernameQuery(usersByUsernameQuery)
            .authoritiesByUsernameQuery(authoritiesByUsernameQuery);
    }
}

pom.xml:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-logging</artifactId>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.46</version>
    </dependency>
</dependencies>

application.properties:

spring.datasource.url=jdbc:mysql://localhost:9400/test
spring.datasource.username=root
spring.datasource.password=test
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
...