2017-01-20 3 views
0

Я создаю приложение загрузки Spring, в котором я инициализирую источник данных в файле весны. Но получить ниже сообщение об ошибке:Datasource не может инициализироваться с помощью приложения Spring загрузки?

java.lang.NullPointerException: null 
    at com.howtodoinjava.demo.controller.JdbcCustomerDAO.insert(JdbcCustomerDAO.java:28) ~[classes/:na] 
    at com.howtodoinjava.demo.controller.EmployeeController.getCustomer(EmployeeController.java:36) ~[classes/:na] 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_91] 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_91] 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_91] 
    at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_91] 
    at org 

Getting NullPointerException на строку ниже:

conn = dataSource.getConnection(); 

Мой исходный код там на GitHub https://github.com/thesnehajain/spring_boot/tree/master/springbootdemo

+0

Это потому, что 'dataSource' не получает инъекции; попробуйте ввести конструктор с помощью аннотации '@ Autowired', а затем настроить его на использование инжектора setter. –

+0

Stil дает такую ​​же ошибку после добавления аннотации. – Vicky

ответ

1

Удалить файлы XML (все из них!).

Создайте новый файл application.properties внутри src/main/resources и поместить его внутри него:

spring.datasource.driverClassName = com.mysql.jdbc.Driver 
spring.datasource.url = jdbc:mysql://rdssample.xxxxxx.us-west-2.rds.amazonaws.com:3306/customer 
spring.datasource.username = rdssample 
spring.datasource.password = rdssample 
#spring.jpa.hibernate.ddl-auto = create-drop 
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect 

... что должно сделать трюк!

Spring Boot - это все о соглашениях и открытиях, поэтому вам не нужно определять, объявлять (продолжать) все ваши бобы и зависимости. Вы можете приобрести много из них, просто объявляя несколько «свойств».

UPDATE

Spring конфигурации, в обоих «вкусами» (XML и классы Java), допускается при Spring ботинке, но опять же, весна загрузки приложений требуется очень мало без конфигурации, абсолютно без генерации кода и нет необходимости в настройке XML. Это может выглядеть как традиционное приложение Spring MVC, но на самом деле это совсем другое. Посмотрите на Spring Boot Reference Guide, вы найдете много полезных советов и примеров.

Кроме того, в вашем случае, если вы хотите настроить источник данных с помощью Java-конфигурации, вы можете сделать что-то похожее на это:

@Configuration 
public class DataConfig { 
    @Bean 
    public DataSource dataSource() { 
    return DataSourceBuilder.create() 
     .driverClassName("com.mysql.jdbc.Driver") 
     .username("rdssample") 
     .password("rdssample") 
     .url("jdbc:mysql://rdssample.xxxxxx.us-west-2.rds.amazonaws.com:3306/customer") 
     .build(); 
    } 
} 
+0

Конфигурация пружины не разрешена в приложениях springboot? Тем временем я пробую ваше решение. – Vicky

+0

Спасибо. Ваше решение сработало. Но не могли бы вы ответить на мой вопрос? – Vicky

+0

Я положил и «обновил» предложение в самом ответе для будущих ссылок, если кто-то должен сделать то же самое изменение. –