繁体   English   中英

春天:@Value vs. @Autowired

[英]Spring: @Value vs. @Autowired

我正在处理的应用程序中使用注入有一些问题(使用Spring Version 3.1.2)。 首先,我看到很多这样的代码:

@Value("#{searchRequestBean}")
private SearchRequest searchRequest;

@Value("#{searchResponseBean}")
private SearchResponse searchResponse;

@Autowired
private SavedSearchService service;

这三个中的每一个似乎都具有将指定的bean / service自动装配到类中的效果。 我不明白的是,在这些案例中@Value@Autowired什么区别? 我在网上找到的每个例子似乎都使用@Value从属性文件中注入值。 在这种情况下, SearchResponseSearchRequest是抽象类。

我希望更好地理解这一点将有助于我解决我对Session bean的一些问题。

@Value可用于注入默认值。 一个很好的例子是将String的默认值注入属性文件的值。 在您的示例中, @Value用于将类的默认值设置为Spring托管bean。

@Autowired不能用于第一个示例:它不是属性文件识别。 @Autowired 适用于豆类的DI。 它比@Value更具体,但您可以使用@Value执行相同的操作。

这是@Value一个很好的教程: http@Value

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM