zoukankan      html  css  js  c++  java
  • 使用@Value注解对bean进行属性注入

    使用@Value注解,可以有三种属性注入的方式:

    1. 使用字面量注入

    2. 使用EL表达式注入

    3. 使用占位符注入

    import org.springframework.beans.factory.annotation.Value;
    
    public class Bottle {
    
        //使用字面量注入属性
        @Value(value = "red")
        private String color;
    
        //使用el表达式注入属性
        @Value(value = "#{30 / 3.14}")
        private double diameter;
    
        //使用占位符注入属性,需要在容器中引入配置文件
        @Value(value = "${bottle.source}")
        private String source;
    
        ……
        
    }

    如果在占位符中引入配置文件中的值,必须在容器中声明配置文件的位置,可以使用@PropertySource注解

    /**
     * 配置类,使用@Value注解进行属性注入
     * 引入配置文件
     */
    @Configuration
    @PropertySource(value = {"classpath:/config.properties"})
    public class BeanConfig {
    
        //使用无参构造器注册Bottle
        @Bean(value = "bottle")
        @Scope("singleton")
        public Bottle bottle() {
            return new Bottle();
        }
    }

    这样,从容器中获取的bean对象就会被注入color、diameter、source属性。

        @Test
        public void test() {
            //创建容器
            ApplicationContext applicationContext = new AnnotationConfigApplicationContext(ValueBeanConfig.class);
            //从容器中获取Bottle实例
            Bottle bottle = (Bottle) applicationContext.getBean("bottle");
            //控制台输出
            System.out.println(bottle.toString());
            //关闭容器
            ((AnnotationConfigApplicationContext)applicationContext).registerShutdownHook();
        }

    测试结果:

    Bottle{color='red', diameter=9.554140127388534, source='laboratory'}

    如果容器中声明了配置文件的位置,还可以使用环境变量获取其中的值

    bottle.source=laboratory
    bottle.size=1599
    bottle.nickname=frankie
    //创建容器
    ApplicationContext applicationContext = new AnnotationConfigApplicationContext(ValueBeanConfig.class);
    //从容器中获取环境变量
    Environment environment = applicationContext.getEnvironment();
    String source = environment.getProperty("bottle.source");
  • 相关阅读:
    九九乘法表
    杨辉三角
    显示计算机界面
    完善3.2
    杨辉三角形
    100以内的素数
    九九乘法表
    杨辉三角
    九九乘法表
    杨辉三角形
  • 原文地址:https://www.cnblogs.com/dubhlinn/p/10680552.html
Copyright © 2011-2022 走看看