ITPub博客

首页 > 应用开发 > Java > SpringBoot--SpringBoot 读取Properties文件(结合JDBC)

SpringBoot--SpringBoot 读取Properties文件(结合JDBC)

Java 作者:专注的阿熊 时间:2020-05-15 16:26:14 0 删除 编辑

读取配置文件(结合JDBC)

      SpringBoot整合JDBC需要添加的启动器和依赖

<dependency>

    <groupId>org.springframework.boot</groupId>

    <artifactId>spring-boot-starter-jdbc</artifactId>

</dependency>

 

<dependency>

    <groupId>mysql</groupId>

    <artifactId>mysql-connector-java</artifactId>

    <version>5.1.38</version>

</dependency>

 

<dependency>

    <groupId>com.alibaba</groupId>

    <artifactId>druid</artifactId>

    <version>1.1.10</version>

</dependency>

    自定义配置文件

jdbc.driverClassName=com.mysql.jdbc.Driver

jdbc.url=jdbc:mysql://localhost:3306/ego?useSSL=false

jdbc.username=root

jdbc.password=root

 1 通过自定义配置文件方式,获取数据源

 通过@PropertySource 注解读取配置文件,此注解为spring的注解,可以读取任何配置文件

/**

 * @author 守鹤

 * @date 2020/5/12 23:47

 */

@Configuration

@PropertySource("classpath:/jdbc.properties")

public class DataSourceConfig{

 @Value("${jdbc.driverClassName}")

    private String driverClassName;

    @Value("${jdbc.url}")

    private String url;

    @Value("${jdbc.username}")

    private String username;

    @Value("${jdbc.password}")

    private String password;

@Bean

    public DataSource getDataSource() {

        DruidDataSource dataSource = new DruidDataSource();

        dataSource.setDriverClassName(this.driverClassName);

        dataSource.setUrl(this.url);

        dataSource.setUsername(this.username);

        dataSource.setPassword(this.password);

        return dataSource;

    }

}

    2 通过application.properties文件读取配置信息

      通过 @ConfigurationProperties 注解读取配置文件,此注解是 SpringBoot 的注解不能读取其他配置文件,只能读取 SpringBoot 的 application 配置文件.

 application.properties配置文件

jdbc.driverClassName=com.mysql.jdbc.Driver

jdbc.url=jdbc:mysql://localhost:3306/ego?useSSL=false

jdbc.username=root

jdbc.password=root

   2.1 自动生成配置信息属性类的对象

/**

 * @author 守鹤

 * @date 2020/5/13 0:06

 */

@ConfigurationProperties(prefix = "jdbc")

//prefix 前缀需要和配置文件中的前缀一致

//pojo类的属性和前缀后面的名称一致

//需要提供set方法,否则属性值无法注入

public class JdbcProperties {

private String driverClassName;

    private String url;

    private String username;

    private String password;

 public String getDriverClassName() {

        return driverClassName;

    }

    public void setDriverClassName(String driverClassName) {

        this.driverClassName = driverClassName;

    }

    public String getUrl() {

        return url;

    }

    public void setUrl(String url) {

        this.url = url;

    }

    public String getUsername() {

        return username;

    }

    public void setUsername(String username) {

        this.username = username;

    }

    public String getPassword() {

        return password;

    }

    public void setPassword(String password) {

        this.password = password;

    }

}

配置信息属性类对象的使用,(注解加载类级别上)

/**

 * @author 守鹤

 * @date 2020/5/12 23:47

 */

@Configuration

//这个注解必须要写,指定加载哪个配置信息属性类

@EnableConfigurationProperties(JdbcProperties.class)

public class DataSourceConfig {

@Autowired

    private JdbcProperties jdbcProperties;

@Bean

    public DataSource getDataSource() {

        DruidDataSource dataSource = new DruidDataSource();

        dataSource.setDriverClassName(jdbcProperties.getDriverClassName());

        dataSource.setUrl(jdbcProperties.getUrl());

        dataSource.setUsername(jdbcProperties.getUsername());

        dataSource.setPassword(jdbcProperties.getPassword());

        return dataSource;

    }

}

   2.2 自动生成配置信息属性类的对象

      配置信息属性类对象的使用,(注解加载方法级别上)

@Configuration

@EnableConfigurationProperties(JdbcProperties.class)

public class DataSourceConfig {

 @Bean

    public DataSource getDataSource(JdbcProperties jdbcProperties) {DruidDataSource dataSource = new DruidDataSource();Swift Codehttps://www.gendan5.com/swiftcode.html

 dataSource.setDriverClassName(jdbcProperties.getDriverClassName());

        dataSource.setUrl(jdbcProperties.getUrl());

        dataSource.setUsername(jdbcProperties.getUsername());

        dataSource.setPassword(jdbcProperties.getPassword());

        return dataSource;

   2.3 自动生成配置信息属性类的对象

      配置信息属性类对象的使用,(注解加载构造方法级别上)

/**

 * @author 守鹤

 * @date 2020/5/12 23:47

 */

@Configuration

@EnableConfigurationProperties(JdbcProperties.class)

public class DataSourceConfig {

    private JdbcProperties jdbcProperties;

   public  DataSourceConfig(JdbcProperties jdbcProperties){

       this.jdbcProperties=jdbcProperties;

    @Bean

    public DataSource getDataSource() {

        DruidDataSource dataSource = new DruidDataSource();

dataSource.setDriverClassName(jdbcProperties.getDriverClassName());

        dataSource.setUrl(jdbcProperties.getUrl());

        dataSource.setUsername(jdbcProperties.getUsername());

        dataSource.setPassword(jdbcProperties.getPassword());

        return dataSource;

   2.4 自动生成配置信息属性类的对象(优雅方式)

     application.properties 中 prefix 后面的属性名称需要和DruidDataSource 中属性一致才可以注入.

      因为@ConfigurationProperties注解会根据配置文件的内容,调用对象的set方法.

/**

 * @author 守鹤

 * @date 2020/5/12 23:47

 */

@Configuration

public class DataSourceConfig {

@Bean

    @ConfigurationProperties(prefix = "jdbc")

    public DataSource getDataSource() {

        DruidDataSource dataSource = new DruidDataSource();

        return dataSource;


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69946337/viewspace-2692432/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-08-23

  • 博文量
    410
  • 访问量
    276749