最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring中@Service注解的作用與@Controller和@RestController之間區(qū)別

 更新時間:2023年03月30日 09:32:48   作者:包小志  
這篇文章主要介紹了Spring中@Service注解的作用與@Controller和@RestController之間的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧

一、@Service注解

@Service注解用于類上,標(biāo)記當(dāng)前類是一個service類,加上該注解會將當(dāng)前類自動注入到spring容器中,不需要再在applicationContext.xml文件定義bean了。在Controller模塊中可以通過@Autowired注入service類。直接調(diào)用service類中方法。

@Service
@Primary
public class YtDesignInfoServiceImpl implements YtDesignInfoService {
    @Autowired
    private YtDesignInfoMapper ytDesignInfoMapper;
    @Override
    public YtDesignInfo getItem(String GCID){
        YtDesignInfoExample example = new YtDesignInfoExample();
        YtDesignInfoExample.Criteria criteria = example.createCriteria();
        criteria.andLProjectidEqualTo(GCID);
        List<YtDesignInfo> ytDesignInfos = ytDesignInfoMapper.selectByExample(example);
        return ytDesignInfos.get(0);
    }
}
@RestController
@Api(tags = "YantuController", value = "巖土管理")
@RequestMapping("/yantu")
public class YanTuController {
    @Autowired
    private YtDesignInfoService ytDesignInfoService;
    @Autowired
    private YtDuanmianService ytDuanmianService;
    @ApiOperation(value = "新增巖土成果的工程信息")
    @PostMapping(value = "/addYanTuItemInfo")
    public CommonResult<?> addYanTuInfo(Principal principal, @Validated YtDesignInfo ytDesignInfo) {
        if (principal == null) {
            return CommonResult.unauthorized(null);
        }
        int i = ytDesignInfoService.addItem(ytDesignInfo);

        if (i>0) {
            return CommonResult.success("上傳成功");
        } else {
            return CommonResult.failed("上傳失敗");
        }
    }
}

二、@Controller和@RestController的區(qū)別

1. @controller注解

  • @Controller 將當(dāng)前修飾的類注入SpringBoot IOC容器,使得從該類所在的項目跑起來的過程中,這個類就被實例化。當(dāng)然也有語義化的作用,即代表該類是充當(dāng)Controller的作用。
  • @ResponseBody 它的作用簡短截說就是指該類中所有的API接口返回的數(shù)據(jù),甭管你對應(yīng)的方法返回Map或是其他Object,它會以Json字符串的形式返回給客戶端,本人嘗試了一下,如果返回的是String類型,則仍然是String。
  • 假如返回類型是Map類型,但是沒有加@ResponseBody注解,只有@Controller修飾的時候,Spring以為會返回一個View(也就是MVC中的那C)但是返回的東西卻是一個Map,頁面會報錯。
@Controller
public class FileUploadController {
	//跳轉(zhuǎn)到上傳文件的頁面
	//在對應(yīng)的方法上,視圖解析器可以解析return 的jsp,html頁面,并且跳轉(zhuǎn)到相應(yīng)頁面。
	@RequestMapping(value="/gouploadimg", method = RequestMethod.GET)
	public String goUploadImg() {
		//跳轉(zhuǎn)到 templates 目錄下的 uploadimg.html
		return "uploadimg";
	}
	//處理文件上傳
	//若返回json等內(nèi)容到頁面,則需要加@ResponseBody注解
	//如果返回的是String類型,則仍然是String。
	@RequestMapping(value="/testuploadimg", method = RequestMethod.POST)
	@ResponseBody
	public String uploadImg(@RequestParam("file") MultipartFile file,HttpServletRequest request) {
		System.out.println("調(diào)用文件上傳方法");
		String contentType = file.getContentType();
		String fileName = file.getOriginalFilename();	
		return filename;
	}
}

2. @RestController注解

相當(dāng)于@Controller+@ResponseBody兩個注解的結(jié)合,返回json數(shù)據(jù)不需要在方法前面加@ResponseBody注解了,但使用@RestController這個注解,就不能返回jsp,html頁面,視圖解析器無法解析jsp,html頁面

@RestController /* @Controller + @ResponseBody*/
public class HospitalController {
    //注入Service服務(wù)對象
    @Autowired
    private HospitalService hospitalService;
    /**
     * 查詢所有醫(yī)院信息(未分頁)
     */
	//@RestController注解可以直接返回json數(shù)據(jù)
	//@Controller注解無法返回json數(shù)據(jù)
    @RequestMapping(value = "findAllHospital",method = RequestMethod.GET)
    public  List<Hospital> findAllHospital(){
        List<Hospital> hospitalList= hospitalService.findAllHospital();
        return hospitalList;
    }
}

到此這篇關(guān)于Spring中@Service注解的作用與@Controller和@RestController之間區(qū)別的文章就介紹到這了,更多相關(guān)Spring @Service注解作用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java request.getParameter中文亂碼解決方法

    java request.getParameter中文亂碼解決方法

    今天跟大家分享幾個解決java Web開發(fā)中,request.getParameter()獲取URL中文參數(shù)亂碼的解決辦法,需要的朋友可以參考下
    2020-02-02
  • Spring框架+jdbcTemplate實現(xiàn)增刪改查功能

    Spring框架+jdbcTemplate實現(xiàn)增刪改查功能

    這篇文章主要介紹了Spring框架+jdbcTemplate實現(xiàn)增刪改查功能,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • 配置了jdk的環(huán)境idea卻提示找不到j(luò)dk解決辦法

    配置了jdk的環(huán)境idea卻提示找不到j(luò)dk解決辦法

    在使用Java編程語言進行開發(fā)時,IDEA是一個非常流行和強大的集成開發(fā)環(huán)境,這篇文章主要給大家介紹了關(guān)于配置了jdk的環(huán)境idea卻提示找不到j(luò)dk的解決辦法,需要的朋友可以參考下
    2023-12-12
  • SpringBoot?自定義starter?yaml提示失效問題及解決方法

    SpringBoot?自定義starter?yaml提示失效問題及解決方法

    在自定義starter后,必不可少會有properties配置參數(shù)需要指定,而在有時又不知道為什么出現(xiàn)這個問題,這篇文章主要介紹了SpringBoot?自定義starter?yaml提示失效問題,需要的朋友可以參考下
    2022-12-12
  • Springboot使用zxing實現(xiàn)二維碼生成和解析

    Springboot使用zxing實現(xiàn)二維碼生成和解析

    ZXing支持各種條形碼,二維碼掃描,由多個模塊組成,?而且支持PC端,移動端,本文將利用zxing實現(xiàn)二維碼生成和解析,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-10-10
  • Java聊天室之實現(xiàn)獲取Socket功能

    Java聊天室之實現(xiàn)獲取Socket功能

    這篇文章主要為大家詳細(xì)介紹了Java簡易聊天室之實現(xiàn)獲取遠程服務(wù)器和客戶機的IP地址和端口號功能,文中的示例代碼講解詳細(xì),需要的可以了解一下
    2022-10-10
  • 若依框架多數(shù)據(jù)源切換方式

    若依框架多數(shù)據(jù)源切換方式

    這篇文章主要介紹了若依框架多數(shù)據(jù)源切換方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • 學(xué)習(xí)Java內(nèi)存模型JMM心得

    學(xué)習(xí)Java內(nèi)存模型JMM心得

    這篇文章主要介紹了學(xué)習(xí)Java內(nèi)存模型JMM的心得以及對其原理做了深入的介紹,有興趣的朋友學(xué)習(xí)下吧。
    2017-12-12
  • SpringBoot?對接飛書多維表格事件回調(diào)監(jiān)聽流程分析

    SpringBoot?對接飛書多維表格事件回調(diào)監(jiān)聽流程分析

    本文介紹了如何通過飛書事件訂閱機制和SpringBoot項目集成,對多維表數(shù)據(jù)的記錄變更進行對接的詳細(xì)流程,包括如何創(chuàng)建應(yīng)用、配置參數(shù)、編寫訂閱代碼、訂閱文檔事件以及在SpringBoot工程中集成的步驟,感興趣的朋友跟隨小編一起看看吧
    2024-12-12
  • Java面向?qū)ο蟪绦蛟O(shè)計多態(tài)性示例

    Java面向?qū)ο蟪绦蛟O(shè)計多態(tài)性示例

    這篇文章主要介紹了Java面向?qū)ο蟪绦蛟O(shè)計多態(tài)性,結(jié)合實例形式分析了java多態(tài)性的概念、原理、定義與使用方法及相關(guān)注意事項,需要的朋友可以參考下
    2018-03-03

最新評論

来安县| 鹰潭市| 宁化县| 尉犁县| 东辽县| 大厂| 米易县| 临洮县| 开远市| 康马县| 枣强县| 巴里| 兴化市| 安西县| 巴塘县| 雷波县| 措美县| 张家口市| 精河县| 桃源县| 宕昌县| 砚山县| 大方县| 崇仁县| 新乐市| 望谟县| 清丰县| 仁怀市| 连江县| 黄陵县| 三明市| 蓝田县| 固阳县| 尼木县| 承德县| 巴塘县| 保德县| 北票市| 丽江市| 临洮县| 神池县|