@ConfigurationProperties和@Value不同的使用场景,@Bean添加组件 (6.spring boot配置文件注入)...

接上文

注释掉@ConfigurationProperties使用@Value注解

    /**
     * <bean class="Person">
     *     <property name="lastName" value="字面量/${key}从环境变量、配置文件中获取值/#{spel}"></property>
     * <bean/>
     */
//Spring底层注解
    @Value("${person.last-name}")
    private String lastName;

    @Value("#{11*2}")
    private Integer age;

  

测试可以获取到

 

  1.                               @configurationpropertis                        @Value
  2.  功能:                  批量注入                                                  一个个指定
  3. 松散绑定:            支持。last-name等价于lastName           不支持
  4. SPEL                     不支持                                                    支持
  5. JSR303数据校验    支持。校验在属性中@Email                 不支持
  6. 复杂类型封装         支持                                                       不支持 ${person.dogs}报错

如果只是在某个业务需要获取一下配置文件中的某个值,使用@Value

 如果专门编写一个javaBean和配置文件进行映射,就直接用@configurationProperties批量注入

 

 

@PropertySource 和 @ImportResource

@PropertySource:加载指定的配置文件

测试通过

 

 @ImportResource

拿到ioc容器

自己编写的配置文件不能生效自动识别

@ImportResource(locations = {"classpath:beans.xml"})导入spring的配置文件让其生效
加到测试类上,测试就可以找到了

 

 

 

 
 

 SpringBoot推荐给容器添加组件的方式: 全注解的方式

1.配置类

service下有一个服务类

 

 新建config目录,创建一个配置类

下图 启动测试类,上图可见成功了

 

如果改成下图就会查找失败

springboot推荐注解方式@Bean给容器中添加组件

package com.tabctrlshift.springboot.config;

import com.tabctrlshift.springboot.service.HelloService;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

//指明sb当前类这是一个配置类
//以前用<bean>标签
@Configuration
public class MyAppConfig {

//    将方法的返回值添加到容器中,容器中这个组件默认id就是方法名
    @Bean
    public HelloService helloService08(){
        System.out.println("配置类@Bean给容器中添加组件了");
        return new HelloService();
    }
}

  





 

配置文件占位符

可以用:指定默认值

 

转载于:https://www.cnblogs.com/tabCtrlShift/p/9074600.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值