java - 数据源无法通过 Spring boot 应用程序初始化?

标签 java spring spring-boot amazon-rds

我正在创建一个 Spring boot 应用程序,在其中初始化 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

...这应该可以解决问题!

Spring Boot 是关于约定和发现的,因此您不必定义、声明(保留)所有 bean 和依赖项。您只需声明一些“属性”即可获得很多它们。

更新

Spring Boot 允许使用两种“风格”(XML 和 Java 类)的 Spring 配置,但同样,Spring Boot 应用程序需要很少甚至不需要配置,完全不需要生成代码,也不需要 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();
  }
}

关于java - 数据源无法通过 Spring boot 应用程序初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41772041/

相关文章:

spring - 相同的端点,有和没有 @RequestParam

json - 如何解决 jackson 中属性(property)的 setter/getter 定义冲突

spring-boot - 我可以使用 PropertiesLauncher 启动 Spring Boot WAR 吗?

spring-boot - 如何在具有运行中的spring-boot应用程序的kubernetes容器/容器中运行cron?

使用 ProcessBuilder 构建的 Java 子进程丢失串口数据

java - 无法使用 Java 11 在 IntelliJ 中启动 JavaFX 应用程序

java - 当我们已经使用 id "io.spring.dependency-management"插件时,我们还需要 "org.springframework.boot"gradle 插件吗

java - swt中两个复合体之间如何通信

spring - 基于 spring 的 jar 项目提供 bean 配置文件是一种不好的做法吗?

java - 无法解析多部分 servlet 请求