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

读取配置文件(结合JDBC)

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

    org.springframework.boot

    spring-boot-starter-jdbc

 

    mysql

    mysql-connector-java

    5.1.38

 

    com.alibaba

    druid

    1.1.10

    自定义配置文件

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;


请使用浏览器的分享功能分享到微信等