• Spring源码窥探之:@Value


    1. 首先定义实体

    /**
     * @author 70KG
     * @Title: Apple
     * @Description: 苹果实体
     * @date 2018/10/22下午9:26
     * @From www.nmyswls.com
     */
    @Data
    public class Apple {
    
        @Value("${apple.color}")
        private String color;
    
        @Value("红富士")
        private String name;
    
    }

    2. 属性文件test.properties放在resource下

    apple.color=red

    3. spring的配置类

    @PropertySource(value = "classpath:/test.properties")将属性文件读取到内存中

    /**
     * @author 70KG
     * @Title: AppleConfig
     * @Description: 配置类
     * @date 2018/10/22下午9:28
     * @From www.nmyswls.com
     */
    @Configuration
    @PropertySource(value = "classpath:/test.properties")
    public class AppleConfig {
    
        @Bean
        public Apple apple() {
            return new Apple();
        }
    
    }

    4. 测试

    /**
     * @author 70KG
     * @Title: Test01
     * @Description: test
     * @date 2018/10/22下午9:30
     * @From www.nmyswls.com
     */
    public class Test01 {
    
        @Test
        public void test01() {
            AnnotationConfigApplicationContext app = new AnnotationConfigApplicationContext(AppleConfig.class);
            // 从容器中获取所有的bean
            String[] names = app.getBeanDefinitionNames();
            for (String name : names) {
                System.out.println("bean的名字--->" + name);
            }
            Apple apple = (Apple) app.getBean("apple");
            System.out.println(apple);
    
            System.out.println("==========IOC容器创建完成==========");
    
            ConfigurableEnvironment environment = app.getEnvironment();
            String property = environment.getProperty("apple.color");
            System.out.println("获取配置文件中的属性---->" + property);
        }
    
    }

    5. 测试结果

    bean的名字--->org.springframework.context.annotation.internalConfigurationAnnotationProcessor
    bean的名字--->org.springframework.context.annotation.internalAutowiredAnnotationProcessor
    bean的名字--->org.springframework.context.annotation.internalRequiredAnnotationProcessor
    bean的名字--->org.springframework.context.annotation.internalCommonAnnotationProcessor
    bean的名字--->org.springframework.context.event.internalEventListenerProcessor
    bean的名字--->org.springframework.context.event.internalEventListenerFactory
    bean的名字--->appleConfig
    bean的名字--->apple
    Apple(color=red, name=红富士)
    ==========IOC容器创建完成==========
    获取配置文件中的属性---->red

    前面的都是bean的后置处理器

  • 相关阅读:
    第三章 属性高级
    第二章 对象高级
    第一章 函数高级
    JavaScript笔记(6)
    Charles断点设置
    Charles安装及设置
    python-uiautomator2(001)
    Pycharm安装及激活
    Postman中Collection Runner添加外部数据文件
    Postman带Token的接口测试
  • 原文地址:https://www.cnblogs.com/zhangjianbing/p/9834879.html
Copyright © 2020-2023  润新知