国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JSP > 正文

詳解 Spring注解的(List&Map)特殊注入功能

2024-09-05 00:23:03
字體:
供稿:網(wǎng)友

詳解 Spring注解的(List&Map)特殊注入功能

最近接手一個新項目,已經(jīng)沒有原開發(fā)人員維護了。項目框架是基于spring boot進行開發(fā)。其中有兩處Spring的注解花費了大量的時間才弄明白到底是怎么用的,這也涉及到spring注解的一個特殊的注入功能。

首先,看到代碼中有直接注入一個List和一個Map的。示例代碼如下:

@Autowiredprivate List<DemoService> demoServices;@Autowiredprivate Map<String,DemoService> demoServiceMap;

以上是兩處代碼示例化之后的demo。當時看到這里之后有些懵,全局搜索之后并沒有發(fā)現(xiàn)定義一個List和Map的對象。然而debug運行之后卻發(fā)現(xiàn)它們的確都有值。這個事情就有些神奇了。在網(wǎng)上搜索也收獲甚微。

最后在調(diào)試List的時候突然靈感一閃,如果只有一個對象那么List里面的值不就只有一個嗎。于是開始測試驗證,結(jié)果發(fā)現(xiàn)的確如此。當實例化一個DemoService之后,另外一個類采用泛型注入List,Spring竟然成功的將實例化的對象放入List之中。思路打開之后,針對Map的就更好說了。Spring會將service的名字作為key,對象作為value封裝進入Map。

具體事例代碼如下

DemoService代碼:

package com.secbro.learn.service;import org.springframework.stereotype.Service;/** * Created by zhuzs on 2017/5/8. */@Servicepublic class DemoService {  public void test(){    System.out.println("我被調(diào)用了");  }}

DemoController代碼:

package com.secbro.learn.controller;import com.secbro.learn.service.DemoService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;import java.util.List;import java.util.Map;/** * Created by zhuzs on 2017/5/8. */@Controller@RequestMapping(value = "/demo")public class DemoController {  @Autowired  private List<DemoService> demoServices;  @Autowired  private Map<String,DemoService> demoServiceMap;  @ResponseBody  @RequestMapping(value = "/test")  public String test(){    for(Map.Entry<String,DemoService> entry : demoServiceMap.entrySet()){      entry.getValue().test();    }    System.out.println("===============分割線=============");    for(DemoService demoService : demoServices){      demoService.test();    }    return "success";  }}

運行之后,訪問http://localhost:8080/demo/test 執(zhí)行結(jié)果如下:

我被調(diào)用了===============分割線=============我被調(diào)用了

原來,在不知不覺中Spring已經(jīng)幫我們做了很多事情,只是我們不知道而已。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!


注:相關(guān)教程知識閱讀請移步到JSP教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 溧水县| 日喀则市| 那曲县| 北安市| 永嘉县| 镶黄旗| 峨眉山市| 永福县| 沂南县| 邯郸市| 镇康县| 旌德县| 安乡县| 旬邑县| 青浦区| 汪清县| 安多县| 黎川县| 洮南市| 佛坪县| 南汇区| 葵青区| 砀山县| 瓮安县| 蒙自县| 平舆县| 合阳县| 喀喇沁旗| 湘潭县| 仁布县| 岳西县| 承德县| 航空| 安庆市| 江津市| 桓仁| 贵阳市| 运城市| 梅州市| 竹北市| 中阳县|