Java 我是否需要为SpringDataJDBC项目配置下面示例中的bean?
我是否需要为SpringDataJDBC项目配置下面示例中的bean 即使没有这些bean,我也能够让我的存储库查询正常工作 据我所知,NamedParameterJdbcOperations仅在内部用于向数据库提交SQL语句,开发人员不直接使用它 希望得到更多的澄清Java 我是否需要为SpringDataJDBC项目配置下面示例中的bean?,java,spring-data-jdbc,Java,Spring Data Jdbc,我是否需要为SpringDataJDBC项目配置下面示例中的bean 即使没有这些bean,我也能够让我的存储库查询正常工作 据我所知,NamedParameterJdbcOperations仅在内部用于向数据库提交SQL语句,开发人员不直接使用它 希望得到更多的澄清 @SpringBootApplication @EnableJdbcRepositories public class SpringDataJdbcApplication extends AbstractJdbcConfigura
@SpringBootApplication
@EnableJdbcRepositories
public class SpringDataJdbcApplication extends AbstractJdbcConfiguration
{
public static void main(String[] args)
{
SpringApplication.run(SpringDataJdbcApplication.class, args);
}
@Bean
@ConfigurationProperties(prefix="spring.datasource")
public DataSource dataSource()
{
DataSourceBuilder dataSourceBuilder = DataSourceBuilder.create();
return dataSourceBuilder.build();
}
@Bean
NamedParameterJdbcOperations namedParameterJdbcOperations(DataSource dataSource)
{
return new NamedParameterJdbcTemplate(dataSource);
}
@Bean
PlatformTransactionManager transactionManager()
{
return new DataSourceTransactionManager(dataSource());
}
}
如果您在Maven或Gradle中的依赖项中包含
org.springframework.boot:springbootstarter数据jdbc
,通过“约定优先于配置”范式,那么您根本不需要创建任何包含dataSource
bean的bean。只要main
方法就足够了。这些必要的bean将自动创建
@SpringBootApplication
public class SpringDataJdbcApplication
{
public static void main(String[] args)
{
SpringApplication.run(SpringDataJdbcApplication.class, args);
}
}
和内部应用程序.yml
...
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://dbhost/db
username: xxx
password: xxx
max-active: 3
...
您是否在maven或gradle中包含依赖项
org.springframework.boot:springbootstarter数据jpa
?我已经添加了springbootstarter数据jdbc。这是针对Spring数据JDBC,而不是Spring数据JPA的问题是关于Spring数据JDBC而不是Spring数据JPA的,但主要的想法是正确的:这些bean是通过Spring Boot创建的。感谢Jens和Chayne的澄清。谢谢@Jenschauder纠正我的问题。测试之后,我只是将答案更新为Spring数据jdbc。您还应该从application.yml