Spring Boot Vue 毕设系统讲解 7

 

数据仓库 HIVE实战

@ConfigurationProperties(prefix = "hive")
@Data
public class HiveDruidConfig {

    private String url;
    private String user;
    private String password;
    private String driverClassName;
    private int initialSize;
    private int minIdle;
    private int maxActive;
    private int maxWait;
    private int timeBetweenEvictionRunsMillis;
    private int minEvictableIdleTimeMillis;
    private String validationQuery;
    private boolean testWhileIdle;
    private boolean testOnBorrow;
    private boolean testOnReturn;
    private boolean poolPreparedStatements;
    private int maxPoolPreparedStatementPerConnectionSize;

    @Bean(name = "hiveDruidDataSource")
    @Qualifier("hiveDruidDataSource")
    public DataSource dataSource() {
        DruidDataSource datasource = new DruidDataSource();
        datasource.setUrl(url);
        datasource.setUsername(user);
        datasource.setPassword(password);
        datasource.setDriverClassName(driverClassName);

        // pool configuration
        datasource.setInitialSize(initialSize);
        datasource.setMinIdle(minIdle);
        datasource.setMaxActive(maxActive);
        datasource.setMaxWait(maxWait);
        datasource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);
        datasource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);
        datasource.setValidationQuery(validationQuery);
        datasource.setTestWhileIdle(testWhileIdle);
        datasource.setTestOnBorrow(testOnBorrow);
        datasource.setTestOnReturn(testOnReturn);
        datasource.setPoolPreparedStatements(poolPreparedStatements);
        datasource.setMaxPoolPreparedStatementPerConnectionSize(maxPoolPreparedStatementPerConnectionSize);
        return datasource;
    }

    @Bean(name = "hiveDruidTemplate")
    public JdbcTemplate hiveDruidTemplate(@Qualifier("hiveDruidDataSource") DataSource dataSource) {
        return new JdbcTemplate(dataSource);
    }

这段代码是一个使用Spring Boot和Druid连接池来配置Hive数据库连接的示例。它展示了如何通过@ConfigurationProperties注解来简化配置属性的绑定,以及如何通过Spring的@Bean注解来创建和管理DataSourceJdbcTemplate的Bean。下面是对这段代码的详细教学讲解:

1. @ConfigurationProperties(prefix = "hive")

  • 作用:这个注解用于将配置文件(如application.propertiesapplication.yml)中前缀为hive的属性绑定到当前类(HiveDruidConfig)的字段上。这使得配置数据库连接和其他相关参数变得非常便捷和集中。
  • 例子:如果你在application.properties中有hive.url=jdbc:hive2://...,那么url字段就会被自动赋值。

2. @Data

  • 作用:这个注解来自Lombok库,它会自动为类的字段生成getter、setter、equals、hashCode和toString方法。这减少了样板代码,使类更加简洁。

3. 字段定义

  • 类中定义了多个私有字段,这些字段对应于Hive数据库连接和Druid连接池的配置参数。

4. dataSource() 方法

  • 作用:这个方法使用@Bean注解,表示它会返回一个Bean,这个Bean会被Spring容器管理。在这个例子中,它创建并配置了一个DruidDataSource实例,这是Druid连接池的实现。
  • 配置:方法内部通过setter方法设置了DruidDataSource的各种属性,这些属性来自于类字段的值,这些值又通过@ConfigurationProperties从配置文件中获取。
  • 返回值:方法返回配置好的DruidDataSource实例,Spring容器会将其注册为一个名为hiveDruidDataSource的Bean。

5. hiveDruidTemplate() 方法

  • 作用:这个方法也使用了@Bean注解,它创建了一个JdbcTemplate实例,这个实例用于简化数据库操作。
  • 参数:方法接收一个DataSource类型的参数,通过@Qualifier("hiveDruidDataSource")注解指定使用名为hiveDruidDataSource的DataSource Bean。
  • 返回值:方法返回配置好的JdbcTemplate实例,Spring容器会将其注册为一个名为hiveDruidTemplate的Bean。

总结

这段代码展示了如何在Spring Boot应用中通过@ConfigurationProperties@Bean注解来配置和管理数据库连接。通过使用Druid连接池,可以进一步提高数据库操作的性能和稳定性。同时,通过JdbcTemplate,开发者可以更方便地进行数据库操作,而无需编写大量的JDBC代码。

相关推荐

  1. Spring Boot Vue 系统讲解 7

    2024-07-11 05:04:04       26 阅读
  2. Spring Boot Vue 系统讲解 9 【Spark】

    2024-07-11 05:04:04       20 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-11 05:04:04       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-11 05:04:04       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-11 05:04:04       58 阅读
  4. Python语言-面向对象

    2024-07-11 05:04:04       69 阅读

热门阅读

  1. influxdb时序数据库常用命令

    2024-07-11 05:04:04       24 阅读
  2. flutter

    flutter

    2024-07-11 05:04:04      24 阅读
  3. mysql索引优化

    2024-07-11 05:04:04       18 阅读
  4. Qt 实战(2)搭建开发环境 | 2.2、.pro文件详解

    2024-07-11 05:04:04       20 阅读
  5. 完善kobj_type结构体

    2024-07-11 05:04:04       20 阅读
  6. 【C++中resize和reserve的区别】

    2024-07-11 05:04:04       22 阅读
  7. 音频基础知识

    2024-07-11 05:04:04       23 阅读
  8. SQL 索引

    2024-07-11 05:04:04       20 阅读
  9. docker自定义镜像

    2024-07-11 05:04:04       19 阅读
  10. IDEA Plugins 网络异常解决办法

    2024-07-11 05:04:04       17 阅读