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的后置处理器

  • 相关阅读:
    Activity 启动模式
    Android 网络编程之Http通信
    android的消息处理机制(图+源码分析)——Looper,Handler,Message
    Android 之 ListView使用SimpleAdapter展示列表
    android 滑动翻页手势实现
    android 数据存储之SharedPerferences
    回忆Java 之 文件读写及性能比较总结
    成长,没你想象的那么迫切!
    杂想程序员
    android 数据存储之SQLite
  • 原文地址:https://www.cnblogs.com/zhangjianbing/p/9834879.html
Copyright © 2011-2022 走看看