Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 数据源无法通过Spring引导应用程序初始化?_Java_Spring_Spring Boot_Amazon Rds - Fatal编程技术网

Java 数据源无法通过Spring引导应用程序初始化?

Java 数据源无法通过Spring引导应用程序初始化?,java,spring,spring-boot,amazon-rds,Java,Spring,Spring Boot,Amazon Rds,我正在创建一个Spring启动应用程序,在其中初始化Spring文件中的数据源。但下面是一个错误: java.lang.NullPointerException: null at com.howtodoinjava.demo.controller.JdbcCustomerDAO.insert(JdbcCustomerDAO.java:28) ~[classes/:na] at com.howtodoinjava.demo.controller.EmployeeController

我正在创建一个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上 删除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
…这应该是个好办法

SpringBoot是关于约定和发现的,所以您不必定义、声明(保留)所有bean和依赖项。你只需声明几个“属性”就可以获得很多

更新

SpringBoot允许使用两种“风格”(XML和Java类)的SpringConfig,但同样,SpringBoot应用程序只需要很少甚至不需要配置,完全不需要生成代码,也不需要XML配置。它可能看起来像一个传统的SpringMVC应用程序,但实际上却大不相同。看看,你会发现很多有用的提示和例子

此外,在您的情况下,如果希望通过Java config配置数据源,您可以执行以下类似操作:

@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();
  }
}

这是因为
dataSource
没有被注入;通过使用
@Autowired
注释尝试构造函数注入,然后将其调整为使用setter injectionStil,直到在放置注释后给出相同的错误。springboot应用程序中不允许使用spring配置吗?同时,我正在尝试你的解决方案。谢谢。你的解决方案奏效了。但是你能回答我上面的问题吗?我在答案中加入了and“update”子句,以备将来参考,以防有人不得不做同样的更改,所以当看到正确答案并希望确保添加额外属性的人被否决时?因此,对于SpringBoot用户来说,这里的属性将派上用场,祝您度过愉快的一天!