@Value

赋值的类型:

  1. String @Value("spring")
  2. SpringEL @Value("#{20-10}")
  3. 读取环境变量
    // 引入配置文件
    @Configuration
    @PropertySource(value={"classpath:/value.properties"})
    public class Config { ... }
    
    // 读取环境变量
    @Value("${server.port}")
    

AutowiredAnnotationBeanPostProcessor负责实现

	public AutowiredAnnotationBeanPostProcessor() {
		this.autowiredAnnotationTypes.add(Autowired.class);
		this.autowiredAnnotationTypes.add(Value.class);
		try {
			this.autowiredAnnotationTypes.add((Class<? extends Annotation>)
					ClassUtils.forName("javax.inject.Inject", AutowiredAnnotationBeanPostProcessor.class.getClassLoader()));
			logger.trace("JSR-330 'javax.inject.Inject' annotation found and supported for autowiring");
		}
		catch (ClassNotFoundException ex) {
			// JSR-330 API not available - simply skip.
		}
	}

相关文章:
BeanPostProcessor

posted @ 2020-11-16 09:04  qianbuhan  阅读(323)  评论(0)    收藏  举报