2016-05-31 4 views
5

У меня есть простое приложение Spring Загрузочного аннотированное как это:Spring Boot - автоматическое связывание с DataSource Bean

@SpringBootApplication 
public class ApiApplication { 

    public static void main(String[] args) { 
     SpringApplication.run(ApiApplication.class, args); 
    } 
} 

У меня есть следующие записи в моем application.properties файле:

spring.datasource.driver-class-name=org.postgresql.Driver 
spring.datasource.url=jdbc:postgresql://localhost:5432/db 
spring.datasource.username=dbuser 
spring.datasource.password=dbpassword 

из моего понимания Spring ботинка должен иметь возможность автоматически автообновлять компонент DataSource из этих свойств.

Однако, если я стараюсь:

@Autowired 
DataSource dataSource; 

где-нибудь в моем приложении (фи в @Configuration файлов), я получаю следующее сообщение об ошибке в IntelliJ:

«Не удалось autowire Нет бобы. Найден тип 'DataSource'.

Есть ли что-то очевидное, что мне не хватает для этого?

У меня есть один источник данных.

+0

@EnableAutoConfiguration также следует добавить поверх основного класса. –

+2

'@ SpringBootApplication' предположительно также добавляет' @ EnableAutoConfiguration'. Я попытался добавить его вручную, но это не исправило ошибку. – vtosh

+0

Если это так, включите журналы уровня отладки для загрузки весны и проверьте, что происходит с компонентом DataSource. –

ответ

1

Боб фактически инициализируется правильно. Это, возможно, просто ошибка IntelliJ tooltip.

Добавление @SuppressWarnings, чтобы скрыть сообщение, будет работать без дополнительных проблем.

+0

, что верно, только что была такая же проблема - даже в IntelliJ IDEA 2017.1.3 Build # IU-171.4424.56, построенной 12 мая 2017 года, это все еще существует. Бобы правильно подключены, хотя IntelliJ предупреждает о конфликте – DevDio

2

Intelij, по-видимому, даже в 2016.2, все еще не поддерживает аннотацию @SpringBootApplication. Вам также нужно удалить аннотацию @SpringBootApplication и заменить ее комментариями @Configuration, @EnableAutoConfiguration и @ComponentScan или просто игнорировать ошибки.