[英]Can't find where @Resource object is instantiated in Spring xml
我試圖找出正在實例化Java對象的位置。 我有一個Spring控制器,並且在控制器中是dataService
字段:
@SuppressWarnings("restriction")
@Controller
public class DataController {
/**
* Service for which to delegate retrieval of data
*/
@Resource
private DataService dataService;
( DataService
是一個接口。實現此服務的類是DataServiceImpl
)。
據我了解,當字段上方有@Resource時,它表示該對象是使用通常在xml文件中定義的spring bean實例化的。 但是,我已經在工作區中搜索了該對象的名稱(以及許多變體),並查看了項目中所有通常的spring bean位置,但是在任何地方都找不到任何提及。 有人知道這里會發生什么嗎?
從Spring框架文檔中,
@Resource具有名稱屬性,默認情況下,Spring將該值解釋為要注入的Bean名稱。 如果未明確指定名稱,則默認名稱是從字段名稱或setter方法派生的。 如果是字段,則以字段名稱為准; 如果使用setter方法,則使用bean屬性名稱
如果沒有提供name屬性,那么spring將退回到自動裝配,它將搜索並注入匹配類型的bean。因此DataServiceImpl
可以在spring bean xml文件中定義或使用@Component
注釋。
在沒有指定顯式名稱且與@Autowired類似的情況下,@ Resource使用的特殊情況是,@ Resource查找主類型匹配而不是特定的命名bean,並解析眾所周知的可解決依賴項。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.