欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

一、@Service注解

@Service注解用于類上,標(biāo)記當(dāng)前類是一個(gè)service類,加上該注解會(huì)將當(dāng)前類自動(dòng)注入到spring容器中,不需要再在applicationContext.xml文件定義bean了。在Controller模塊中可以通過(guò)@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容器,使得從該類所在的項(xiàng)目跑起來(lái)的過(guò)程中,這個(gè)類就被實(shí)例化。當(dāng)然也有語(yǔ)義化的作用,即代表該類是充當(dāng)Controller的作用。
  • @ResponseBody 它的作用簡(jiǎn)短截說(shuō)就是指該類中所有的API接口返回的數(shù)據(jù),甭管你對(duì)應(yīng)的方法返回Map或是其他Object,它會(huì)以Json字符串的形式返回給客戶端,本人嘗試了一下,如果返回的是String類型,則仍然是String。
  • 假如返回類型是Map類型,但是沒(méi)有加@ResponseBody注解,只有@Controller修飾的時(shí)候,Spring以為會(huì)返回一個(gè)View(也就是MVC中的那C)但是返回的東西卻是一個(gè)Map,頁(yè)面會(huì)報(bào)錯(cuò)。
@Controller
public class FileUploadController {
	//跳轉(zhuǎn)到上傳文件的頁(yè)面
	//在對(duì)應(yīng)的方法上,視圖解析器可以解析return 的jsp,html頁(yè)面,并且跳轉(zhuǎn)到相應(yīng)頁(yè)面。
	@RequestMapping(value="/gouploadimg", method = RequestMethod.GET)
	public String goUploadImg() {
		//跳轉(zhuǎn)到 templates 目錄下的 uploadimg.html
		return "uploadimg";
	}
	//處理文件上傳
	//若返回json等內(nèi)容到頁(yè)面,則需要加@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兩個(gè)注解的結(jié)合,返回json數(shù)據(jù)不需要在方法前面加@ResponseBody注解了,但使用@RestController這個(gè)注解,就不能返回jsp,html頁(yè)面,視圖解析器無(wú)法解析jsp,html頁(yè)面

@RestController /* @Controller + @ResponseBody*/
public class HospitalController {
    //注入Service服務(wù)對(duì)象
    @Autowired
    private HospitalService hospitalService;
    /**
     * 查詢所有醫(yī)院信息(未分頁(yè))
     */
	//@RestController注解可以直接返回json數(shù)據(jù)
	//@Controller注解無(wú)法返回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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 超詳細(xì)講解Java異常

    超詳細(xì)講解Java異常

    Java 異常機(jī)制可以使程序中異常處理代碼和正常業(yè)務(wù)代碼分離,保證程序代碼更加優(yōu)雅,并提高程序健壯性。本文超詳細(xì)講解了Java異常,感興趣的小伙伴可以參考一下這篇文章
    2021-09-09
  • Java性能優(yōu)化之關(guān)于大對(duì)象復(fù)用的目標(biāo)和注意點(diǎn)

    Java性能優(yōu)化之關(guān)于大對(duì)象復(fù)用的目標(biāo)和注意點(diǎn)

    這篇文章主要介紹了Java性能優(yōu)化之關(guān)于大對(duì)象復(fù)用的目標(biāo)和注意點(diǎn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • SpringBoot使用OpenCV示例總結(jié)

    SpringBoot使用OpenCV示例總結(jié)

    這篇文章主要介紹了SpringBoot使用OpenCV示例總結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • 聊聊SpringBoot整合Nacos自動(dòng)刷新配置的問(wèn)題

    聊聊SpringBoot整合Nacos自動(dòng)刷新配置的問(wèn)題

    Nacos作為SpringBoot服務(wù)的注冊(cè)中心和配置中心,本例將在配置文件中配置一個(gè)?cml.age=100?的配置項(xiàng),程序中編寫一個(gè)方法讀取配置文件,并通過(guò)?Get--->/test/age?接口提供給瀏覽器訪問(wèn),感興趣的朋友跟隨小編一起看看吧
    2022-01-01
  • SpringBoot加載多個(gè)配置文件實(shí)現(xiàn)dev、product多環(huán)境切換的方法

    SpringBoot加載多個(gè)配置文件實(shí)現(xiàn)dev、product多環(huán)境切換的方法

    這篇文章主要介紹了SpringBoot加載多個(gè)配置文件實(shí)現(xiàn)dev、product多環(huán)境切換,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03
  • Springboot實(shí)現(xiàn)通用Auth認(rèn)證的幾種方式

    Springboot實(shí)現(xiàn)通用Auth認(rèn)證的幾種方式

    本文主要介紹了Springboot實(shí)現(xiàn)通用Auth認(rèn)證的幾種方式,主要介紹了4種方式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • Spring Cloud 系列之注冊(cè)中心 Eureka詳解

    Spring Cloud 系列之注冊(cè)中心 Eureka詳解

    Netflix Eureka 是由 Netflix 開源的一款基于 REST 的服務(wù)發(fā)現(xiàn)組件,包括 Eureka Server 及 Eureka Client。這篇文章主要介紹了Spring Cloud 系列之注冊(cè)中心 Eureka,需要的朋友可以參考下
    2020-11-11
  • 淺談web服務(wù)器項(xiàng)目中靜態(tài)請(qǐng)求和動(dòng)態(tài)請(qǐng)求處理

    淺談web服務(wù)器項(xiàng)目中靜態(tài)請(qǐng)求和動(dòng)態(tài)請(qǐng)求處理

    這篇文章主要介紹了淺談web服務(wù)器項(xiàng)目中靜態(tài)請(qǐng)求和動(dòng)態(tài)請(qǐng)求處理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 舉例講解Java中的多線程編程

    舉例講解Java中的多線程編程

    這篇文章主要介紹了舉例講解Java中的多線程編程,線程是Java學(xué)習(xí)中的重要知識(shí),需要的朋友可以參考下
    2015-09-09
  • 關(guān)于Java集合框架Collection接口詳解

    關(guān)于Java集合框架Collection接口詳解

    這篇文章主要介紹了關(guān)于Java集合框架Collection接口詳解,Collection接口是Java集合框架中的基礎(chǔ)接口,定義了一些基本的集合操作,包括添加元素、刪除元素、遍歷集合等,需要的朋友可以參考下
    2023-05-05

最新評(píng)論