2017-01-20 81 views
0

我正在創建一個Spring啓動應用程序,我正在初始化spring文件中的數據源。但是,得到如下錯誤:數據源無法通過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 

獲得NullPointerException異常下面一行:

conn = dataSource.getConnection(); 

我的源代碼是有在GitHub https://github.com/thesnehajain/spring_boot/tree/master/springbootdemo

+0

這是因爲'dataSource'是沒有得到注射;嘗試使用'@ Autowired'註釋構造函數注入,稍後調整它以使用setter注入 –

+0

Stil註釋後給出相同的錯誤。 – Vicky

回答

1

刪除你的XML文件(所有的人!)。

創建一個新的文件application.propertiessrc/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是關於約定和發現的一切,所以你不必定義,聲明(繼續)所有的bean和依賴關係。你可以獲得很多隻是聲明一些「屬性」。

UPDATE

Spring配置,在這兩個「口味」(XML和Java類),是在春季啓動允許的,但同樣,春季啓動應用程序需要很少沒有的配置,絕對沒有代碼生成並且不需要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應用程序中不允許使用spring配置嗎?同時我正在嘗試你的解決方案。 – Vicky

+0

謝謝。你的解決方案已經奏效但是,你能回答我的上述問題嗎? – Vicky

+0

我在答案中加入了「更新」條款,以備將來參考,以防某人需要做相同的更改 –

相關問題