SpringBoot--SpringBoot 讀取Properties檔案(結合JDBC)

專注的阿熊發表於2020-05-15

讀取配置檔案(結合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 Code

 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部落格 ” ,連結:http://blog.itpub.net/69946337/viewspace-2692432/,如需轉載,請註明出處,否則將追究法律責任。

相關文章