SSM集成框架常見注解的使用

@requestParam


此注解出于String-mvc框架中

在框架中使用注解驅(qū)動的時候注意要在對應(yīng)的.xml文件中打開注解掃描器.新手坑

注解驅(qū)動聲名:<context:component-scan base-package="com.zyh.string.service"/>

@requestParam注解主要用于接收前端傳來的參數(shù),注解中有兩個屬性:required(必要的)默認required=true:意思為requestParam中聲名的參數(shù)必須要存在,這是一個我必須要的值,如果沒有接收到這個參數(shù)的話系統(tǒng)會報400錯誤,若是required=flase則是表明當前參數(shù)我就算沒有接收到也沒關(guān)系,會給當前參數(shù)一個null.

@requestParam中的另外一個屬性defaultValue:默認值,給當前參數(shù)一個默認值,若是前端沒傳我需要的這個參數(shù),或者是前后端參數(shù)名不一致,但是我又必須要一個值的話就可以由defaultValue給一個默認值

public String testRequestParam(@RequestParam(value="name") String username)

{

System.out.println("執(zhí)行了...");? ? ? ? System.out.println(username);? ? ? ? return "success";

}

雞肋處:直接在( )中可以直接聲名參數(shù)名字? eg:(string userId),參數(shù)類型? : 前端對應(yīng)的參數(shù)名字


@Controller

使用在控制層,把當前類對象交給容器去實現(xiàn)


@requestMapping

使用在類前或者方法前面,注意一個controller并非就是一個servlet,實際上一個被加上@controller類的方法就是一個service(),用來處理請求.

@requestMapping("/user")用在class上則需要先進這個user在進入標注在方法上面的@requestMapping("/method1").


重點來了:自動裝配,在使用參數(shù)傳遞中我們不可能只獲取到簡單類型的參數(shù)那么若是得到復(fù)雜類型的參數(shù)那么我們該怎么做呢?

@requestBody

當前端傳了json數(shù)據(jù)的時候,一般是通過post請求攜帶在body中的,那么可以使用requestBody來接收數(shù)據(jù)


@responseBody

把數(shù)據(jù)發(fā)送到前端(會自動把return后面的對象轉(zhuǎn)換為json數(shù)據(jù)發(fā)送到前端)

常和@RequestMapping()放在一起使用,將當前請求中的數(shù)據(jù)發(fā)送給前端,不要用在類前面.



@RestController = @Controller + @responseBody 的效果(我不建議這個么去做,不嚴謹)

@RestController

@RequestMapping("/carts")

public class CartsController {

@Resource

? ? CartsService cartsService;


@Autowide按照類型注入,? 若是接口多實現(xiàn)想要按照名字注入則配合 @Qualifiter(name="serviceImpl01")

常常在一起使用,來自于框架

@Resource 來自jdk

默認按照名字注入,若是不存在則使用按照Type去注入,所以別亂用其中的name屬性,

若是使用了@resource(name= "servicrImpl02")則只會按照名字去找了,不會去找Type

解決接口多實現(xiàn)問題的依賴注入

方法1:@Autowide? @Qualifiter(name="serviceImpl01")? 按照名字去找對應(yīng)實現(xiàn),

方法2:@resource(name= "servicrImpl02")去找


@PathVariable

將傳入后端中的模板參數(shù)取其中的某個作為當前對象的參數(shù)

@RequestMapping(value = "treeList/{typeAlias}.xml")

@ResponseBody

public TreeList treeList(@PathVariable("typeAlias") String typeAlias) {

}



@Configuration:

用在類上@Configuration標注在類上,相當于把該類作為spring的xml配置文件中的<beans>
其實就是相當于一個xml的文件,@bean就是容器中聲名的對象.其中可以有屬性,屬性可以是return product;
就是返回當前的@configguration中注入容器中的@bean對象.

@bean:用在方法上? 等價于spring的xml配置文件中的<bean>,作用為:注冊bean對象

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容