基础7:注解详解(属性赋值)

@Value赋值

有下面几个点需要留意下:

①不同于XML文件配置时必须带有setter方法,在使用@Value注解时,setter方法不是必须的;

②@Value注解支持:字面量、SpEL表达式、读取Properties文件;

③当读取Properties文件时,需要在@Configuration注解的类里面,通过@PropertySources或者@PropertySource注解来引入properties文件,当引入properties文件后,Spring就会把properties里面的内容放到ConfigurableEnvironment中,@Value说白了,在读取properties时,其实是从ConfigurableEnvironment中读取的;

@Component

public class OrgDao {

 

    // 基本字面量

    @Value("中国华夏银行")

    private String orgName;

 

    // SpEL表达式

    @Value("#{100+50}")

    private int peopleCount;

 

    // 获取properties文件属性值

    @Value("${address}")

    private String address;

 

 

    @Override

    public String toString() {

        return "OrgDao{" +

                "orgName='" + orgName + '\'' +

                ", peopleCount=" + peopleCount +

                ", address='" + address + '\'' +

                '}';

    }

}

 

@PropertySources(

{@PropertySource(value = {"classpath:/org.properties"})}

)

@Import(ImportTest.class)

@Configuration

@ComponentScan(

        value = "com.spring.annotation",

        excludeFilters = {

                @ComponentScan.Filter(

                        type = FilterType.ANNOTATION,

                        classes = {Controller.class, Service.class})

        })

public class MainConfig {

 

    /**

     * @Bean,类型为返回值的类型,id默认是方法名(大小写与方法名完全一致)

     * */

    @Bean

    @Lazy

    @Conditional(MyConditional.class)

    public Persion persion(){

        return new Persion("ZhangSan",30);

    }

}

 

@Test

    public void testOrg(){

        ConfigurableEnvironment environment = applicationContext.getEnvironment();

        System.out.println(environment.getProperty("address"));

        OrgDao orgDao = (OrgDao) applicationContext.getBean("orgDao");

        System.out.println(orgDao.toString());

    }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值