SpringBoot优雅注入

在spring中一般使用配置文件,然后加载配置文件,在进行注入,原理基本差不多,一般注入:构造注入,方法注入,字段注入。

springBoot沿用了spring注入方式,并且做了增强,也加入了新的注入方式,使之更加优雅

1.通过配置文件以@Value方式注入,老方法不多叙述,上图:

创建配置文件,test.properties,文件内容为:tset=haha

创建测试配置类,TestConfig

@Configuration
@PropertySource("classpath:test.properties")//可以进行加载配置文件,但是不对yml有效
public class TestConfig{

    @Value("${tset:ddd}")//进行字段注入,指定如果默认值为ddd
    String test;

    @Bean
    public void test1() {
        System.out.println(test+"=================================================");
    }
}

就可以了,但是该方法可用,但不舒服,并且@PropertySource,不支持yml,可以看一下升级版,springBoot中有默认加载的配置文件application.yml/application.properties,效果一样,但是格式不同,官方推荐用yml,但是properties实际是优先的,在默认yml中添加配置数据如下:

测试配置类代码如下:

@Configuration
@ConfigurationProperties(prefix = "www")//prefix 为前缀
@Data//该注解使一个插件,功能大概是自动添加setter等方法
public class TestHFConfig {
    String tset = "这是默认值";
}

 调用时可以直接使用Autowired注入类:

@Autowired
TestHFConfig testHFConfig;

这样有个好处,快捷将配置文件中数据转换为配置类,并且处理方式和@Value不同,@Value找不到默认会报错,除非如上指定默认,但是风格非常不java,不喜欢,所以这种方式,可以通过setter进行注入,找不到不报错,相当于通过方法调用进行柔性的注入,代码侵入少。

虽然这种方式已经很不错了,但是还是不够优雅,很麻烦,有没有更加优雅,且符合java风格的方式呢?

在默认yml中添加,以jdbc开头的DataSource属性,spring容器会检查,发现有同名set,会进行注入,实现无感配置,灰常优雅。

    @Bean
    @ConfigurationProperties(prefix = "jdbc")
    public DataSource getDataSource(){
        return new DruidDataSource();
    }

以上对springboot中的依赖注入进行了简单介绍和记录,希望自己谨记,不要忘记。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值