zoukankan      html  css  js  c++  java
  • 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的后置处理器

  • 相关阅读:
    CRC全套算法 CRC4,CRC5,CRC7,CRC8,CRC16,CRC32,CRC32 mpeg-2
    ubuntu18.04使用vscode报pylint is not install错误
    [转]C结构体之位域(位段/位域)
    获取gcc和clang的内置宏定义
    Win10下使用MinGW到指定路径编译C-C++文件
    【YM】ssh命令 远程登录Linux
    Linux环境下搭建Qt5.9开发环境
    WSL-Ubuntu-更换apt源为阿里源
    git常用命令
    Lucene的基本使用
  • 原文地址:https://www.cnblogs.com/zhangjianbing/p/9834879.html
Copyright © 2011-2022 走看看