我是否需要为我的 Spring Data JDBC 项目配置下面示例中的 bean?

Do I need to configure the beans in the example below for my Spring Data JDBC project?

我是否需要为我的 Spring 数据 JDBC 项目配置下面示例中的 bean?

即使没有这些 beans,我也能够让我的存储库查询正常工作。

据我了解,NamedParameterJdbcOperations 仅在内部用于向数据库提交 SQL 语句,开发人员不会直接使用它。

希望得到更多关于此的说明。

@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:spring-boot-starter-data-jdbc,通过“约定优于配置”范例,您根本不需要创建任何 bean 包含 dataSource豆。只需 main 方法就足够了。将自动创建那些必需的 bean。

@SpringBootApplication
public class SpringDataJdbcApplication
{
    public static void main(String[] args) 
    {
        SpringApplication.run(SpringDataJdbcApplication.class, args);
    }
    
}

在application.yml

里面
...
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://dbhost/db
    username: xxx
    password: xxx
    max-active: 3
...