springboot读取配置文件与属性注入

springboot如何代替spring中的applicationContext的配置文件

springboot中用类来代替spring的配置文件。创建对象注入依赖都是通过配置类来处理的。
配置类就是springboot中的配置文件。在该配置类上加上@Configuration注解。将bean交给spring
管理,在方法上加上@Bean注解。方法的返回值就是spring中配制文件中bean的class
在方法中手动创建出对象

@Configuration
public class JdbcConfig {

    @Bean
    public DruidDataSource getDataSource(){
        DruidDataSource druidDataSource = new DruidDataSource();
        return druidDataSource;
    }
}

spingboot中属性注入(将数据文件(properteis或yml)中的数据读取到类中)
spring容器默认读取名为application.properteis文件

方式一:通过@PropertySource、与@Value相结合。spring方式

@Configuration
@PropertySource("classpath:db.properties")
public class JdbcConfig {

    @Value("${jdbc.driver}")
    private String driver;
    @Value("${jdbc.username}")
    private String username;
    @Value("${jdbc.url}")
    private String url;
    @Value("${jdbc.password}")
    private String password;
    @Bean
    public DruidDataSource getDataSource(){
        DruidDataSource druidDataSource = new DruidDataSource();
        druidDataSource.setDriverClassName(driver);
        druidDataSource.setUsername(username);
        druidDataSource.setUrl(url);
        druidDataSource.setPassword(password);
        return druidDataSource;
    }
}

方式二:设置一个数据封装类来读取属性(适用于很多地方需要的数据文件中的数据)

			1、@ConfigurationProperties 写在封装数据类上
			2、@Data(默认提供get、set方法,导入Lombok依赖)
			3、@EnableConfigurationProperties(使用封装数据类)
				三个注解来配合使用
				被@ConfigurationProperties标记的类就像是spring配置文件中的读取properties文件的标签
				会通过@Data标签,将配置文件的value赋值给属性。@EnableConfigurationProperties
				类似于bean中的ref使用对应的properties。
/*封装数据类*/
@ConfigurationProperties(prefix = "jdbc")
@Data
public class JdbcProperties {
    private String driver;
    private String username;
    private String url;
    private String password;
}


/*配置类(配置文件)对应的bean需要引入数据,容器自动将数据封装类注入到对应的bean中*/

@Configuration
@EnableConfigurationProperties(JdbcProperties.class)
public class JdbcConfig {

    @Bean
    public DruidDataSource getDataSource(JdbcProperties jdbcProperties){
        DruidDataSource druidDataSource = new DruidDataSource();
        druidDataSource.setDriverClassName(jdbcProperties.getDriver());
        druidDataSource.setUsername(jdbcProperties.getUsername());
        druidDataSource.setUrl(jdbcProperties.getUrl());
        druidDataSource.setPassword(jdbcProperties.getPassword());
        return druidDataSource;
    }
}


/*jar坐标*/
<dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
</dependency>

方式三:直接将@ConfigurationProperties表记在配置类中的bean方法上
此方法适合用于只读取一次或少次配置文件中的数据



@Configuration
public class JdbcConfig {

    @Bean
    @ConfigurationProperties(prefix = "jdbc")
    public DruidDataSource getDataSource(){
        DruidDataSource druidDataSource = new DruidDataSource();
        return druidDataSource;
    }
}
spring容器扫描到该配置类之后。法发对应的bean上存在 @ConfigurationProperties(prefix = "jdbc")
会根据bean返回对象类型,找到对应的setKey()方法,对对象进行初始化操作。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值