spring的属性注入

筅森魡賤 提交于 2020-04-05 15:32:13

 

1.指定配置文件,创建jdbc.properties

jdbc.driver = com.mysql.jdbc.driverjdbc.url = jdbc:mysql://localhost:3306/demojdbc.username = rootjdbc.password = root

2.创建一个配置类,配置类中完成属性的注入

//完成自动配置的三种形式,xml,注解,配置@Configuration//将配置文件的值读取到spring   value值是文件路径@PropertySource(value = "jdbc.properties")public class DruidConf {    //从spring环境中读取每一个键值对,并且赋值于成员变量,使用value取值,取值方式spel,spring的el表达式    @Value("${jdbc.driver}")    String driver;    @Value("${jdbc.url}")    String url;    @Value("${jdbc.username}")    String username;    @Value("${jdbc.password}")    String password;    //@Bean 将结果交给工厂管理    @Bean    public DruidDataSource getDruidDataSources(){        DruidDataSource dataSource = new DruidDataSource();        dataSource.setDriverClassName(driver);        dataSource.setUrl(url);        dataSource.setUsername(username);        dataSource.setPassword(password);        return dataSource;    }}

3.处理器中的使用

@RestControllerpublic class TestController {    @Autowired    DruidDataSource druidDataSource;    @RequestMapping("/test")    public void test(){        System.out.println("==============");    }}

SpringBoot属性的注入

1.yml文件的书写

jdbc:  driver: com.mysql.jdbc.driver  url: jdbc:mysql://localhost:3306/demo  username: root  password: root

2.属性配置类

package com.nylg.conf;

import org.springframework.boot.context.properties.ConfigurationProperties;

import java.util.Objects;//属性配置类,prefix前置配置 
@ConfigurationProperties(prefix = "jdbc") public class DruidConfSpringBoot { String driver; String url; String username; String password; public String getDriver() { return driver; } public void setDriver(String driver) { this.driver = driver; } 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; } public DruidConfSpringBoot() { } public DruidConfSpringBoot(String driver, String url, String username, String password) { this.driver = driver; this.url = url; this.username = username; this.password = password; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; DruidConfSpringBoot that = (DruidConfSpringBoot) o; return Objects.equals(driver, that.driver) && Objects.equals(url, that.url) && Objects.equals(username, that.username) && Objects.equals(password, that.password); } @Override public int hashCode() { return Objects.hash(driver, url, username, password); } @Override public String toString() { return "DruidConfSpringBoot{" + "driver='" + driver + '\'' + ", url='" + url + '\'' + ", username='" + username + '\'' + ", password='" + password + '\'' + '}'; } }

 

3.引入jar,重启项目

<!--    配置文件提示-->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-configuration-processor</artifactId>
      <optional>true</optional>
    </dependency>

 

4.核心配置类

@Configuration//引入哪个属性配置类
@EnableConfigurationProperties(DruidConfSpringBoot.class)
public class DruidConf {
   @Autowired
   DruidConfSpringBoot druidConfSpringBoot;

    //@Bean 将结果交给工厂管理
    @Bean
    public DruidDataSource getDruidDataSources(){
        DruidDataSource dataSource = new DruidDataSource();     //通过对象获取属性
        dataSource.setDriverClassName(druidConfSpringBoot.getDriver());
        dataSource.setUrl(druidConfSpringBoot.getUrl());
        dataSource.setUsername(druidConfSpringBoot.getUsername());
        dataSource.setPassword(druidConfSpringBoot.getPassword());
        return dataSource;
    }
}

 

属性配置过程

 

 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!