数据源无法通过 Spring 引导应用程序初始化?
Datasource not able to initialize via Spring boot application?
我正在创建一个 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
删除您的 XML 个文件(全部!)。
在 src/main/resources
中创建一个新文件 application.properties
并将其放入其中:
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
...这应该可以解决问题![=15=]
Spring Boot 是关于约定和发现的,因此您不必定义、声明(继续)所有 bean 和依赖项。您只需声明一些 "properties".
就可以获得很多
更新
Spring 配置,在 "flavors"(XML 和 Java 类)中,在 Spring 引导下是允许的,但同样, 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();
}
}
我正在创建一个 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
删除您的 XML 个文件(全部!)。
在 src/main/resources
中创建一个新文件 application.properties
并将其放入其中:
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
...这应该可以解决问题![=15=]
Spring Boot 是关于约定和发现的,因此您不必定义、声明(继续)所有 bean 和依赖项。您只需声明一些 "properties".
就可以获得很多更新
Spring 配置,在 "flavors"(XML 和 Java 类)中,在 Spring 引导下是允许的,但同样, 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();
}
}