日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

@async注解_史上最全的java spring注解

發布時間:2024/8/5 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 @async注解_史上最全的java spring注解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

史上最全的java spring注解,沒有之一

注解是個好東西,但好東西我們也是看見過,整理過,理解過,用過才知道好。不求我們每個都記住,但求保有印象,在需要的時候能提取出來再查找相關資料,平時工作就不會顯得那么被動了。

1.@Configuration注解

該類等價 與XML中配置beans,相當于Ioc容器,它的某個方法頭上如果注冊了@Bean,就會作為這個Spring容器中的Bean,與xml中配置的bean意思一樣。

@Configuration注解的類必需使用掃描.如下:

@Configuration public class MainConfig {//在properties文件里配置@Value("${wx_appid}") public String appid;protected MainConfig(){}@Bean public WxMpService wxMpService() {WxMpService wxMpService = new WxMpServiceImpl();wxMpService.setWxMpConfigStorage(wxMpConfigStorage());return wxMpService;} }

定義一個MainConfig,用@Configuration注解,那MainConfig相當于xml里的beans,里面用@Bean注解的和xml里定義的bean等價,用掃描該類,最終我們可以在程序里用@AutoWired或@Resource注解取得用@Bean注解的bean,和用xml先配置bean然后在程序里自動注入一樣。目的是減少xml里配置。

2.@Vaue注解

為了簡化從properties里取配置,可以使用@Value, 可以在properties文件中的配置值。

在dispatcher-servlet.xml里引入properties文件。

<context:property-placeholder location="classpath:test.properties" />

在程序里使用@Value:

@Value("${wx_appid}")

public String appid;

即使給變量賦了初值也會以配置文件的值為準。

3.@Controller,@Service,@Repository,@Component

目前4種注解意思是一樣,并沒有什么區別,區別只是名字不同。使用方法:

1.使用掃描被注解的類

2.在類上寫注解:

@Controllerpublic class TestController {}

4. @PostConstruct 和 @PreDestory

實現初始化和銷毀bean之前進行的操作,只能有一個方法可以用此注釋進行注釋,方法不能有參數,返回值必需是void,方法需要是非靜態的。

例如:

public class TestService { @PostConstruct public void init(){ System.out.println("初始化"); }@PreDestroy public void dostory(){ System.out.println("銷毀"); } }

@PostConstruct:在構造方法和init方法(如果有的話)之間得到調用,且只會執行一次。

@PreDestory:注解的方法在destory()方法調用后得到執行。

流程圖:

引深一點,Spring 容器中的 Bean 是有生命周期的,Spring 允許在 Bean 在初始化完成后以及 Bean 銷毀前執行特定的操作,常用的設定方式有以下三種:

1.通過實現 InitializingBean/DisposableBean 接口來定制初始化之后/銷毀之前的操作方法;

2.通過 元素的 init-method/destroy-method屬性指定初始化之后 /銷毀之前調用的操作方法;

3.在指定方法上加上@PostConstruct 或@PreDestroy注解來制定該方法是在初始化之后還是銷毀之前調用

但他們之前并不等價。即使3個方法都用上了,也有先后順序.

Constructor > @PostConstruct >InitializingBean > init-method

5. @Primary

自動裝配時當出現多個Bean候選者時,被注解為@Primary的Bean將作為首選者,否則將拋出異常。

例如:

@Component public class Apple implements Fruit{ @Override public String hello() { return "我是蘋果"; } } @Component @Primary public class Pear implements Fruit{ @Override public String hello(String lyrics) { return "梨子"; } } public class FruitService {//Fruit有2個實例子類,因為梨子用@Primary,那么會使用Pear注入@Autowired private Fruit fruit; public String hello(){ return fruit.hello(); } }

6. @Lazy(true)

用于指定該Bean是否取消預初始化,用于注解類,延遲初始化。

7. @Autowired

Autowired默認先按byType,如果發現找到多個bean,則,又按照byName方式比對,如果還有多個,則報出異常。

1.可以手動指定按byName方式注入,使用@Qualifier。

//通過此注解完成從spring配置文件中 查找滿足Fruit的bean,然后按//@Qualifier指定pean

@Autowired

@Qualifier("pean")

public Fruit fruit;

2.如果要允許null 值,可以設置它的required屬性為false,如:

@Autowired(required=false)

public Fruit fruit;

8. @Resource

默認按 byName自動注入,如果找不到再按byType找bean,如果還是找不到則拋異常,無論按byName還是byType如果找到多個,則拋異常。

可以手動指定bean,它有2個屬性分別是name和type,使用name屬性,則使用byName的自動注入,而使用type屬性時則使用byType自動注入。

@Resource(name=”bean名字”)

@Resource(type=”bean的class”)

這個注解是屬于J2EE的,減少了與spring的耦合。

9. @Async

java里使用線程用3種方法:

  • 繼承Thread,重寫run方法
  • 實現Runnable,重寫run方法
  • 使用Callable和Future接口創建線程,并能得到返回值。
  • 前2種簡單,第3種方式特別提示一下,例子如下:

    class MyCallable implements Callable<Integer> {private int i = 0;// 與run()方法不同的是,call()方法具有返回值@Overridepublic Integer call() {int sum = 0;for (; i < 100; i++) {System.out.println(Thread.currentThread().getName() + " " + i);sum += i;}return sum;} }

    main方法:

    public static void main(String[] args) {Callable<Integer> myCallable = new MyCallable(); // 創建MyCallable對象FutureTask<Integer> ft = new FutureTask<Integer>(myCallable); //使用FutureTask來包裝MyCallable對象for (int i = 0; i < 100; i++) {System.out.println(Thread.currentThread().getName() + " " + i);if (i == 30) {Thread thread = new Thread(ft); //FutureTask對象作為Thread對象的target創建新的線程thread.start(); //線程進入到就緒狀態}}System.out.println("主線程for循環執行完畢..");try {int sum = ft.get(); //取得新創建的新線程中的call()方法返回的結果System.out.println("sum = " + sum);} catch (InterruptedException e) {e.printStackTrace();} catch (ExecutionException e) {e.printStackTrace();} }

    而使用@Async可視為第4種方法。基于@Async標注的方法,稱之為異步方法,這個注解用于標注某個方法或某個類里面的所有方法都是需要異步處理的。被注解的方法被調用的時候,會在新線程中執行,而調用它的方法會在原來的線程中執行。

    application.xml形勢的配置:

    第一步配置XML。

    <!--掃描注解,其中包括@Async --> <context:component-scan base-package="com.test"/> <!-- 支持異步方法執行, 指定一個缺省的executor給@Async使用--> <task:annotation-driven executor="defaultAsyncExecutor" /> <!—配置一個線程執行器--> <task:executor id=" defaultAsyncExecutor "pool-size="100-10000" queue-capacity="10" keep-alive =”5”/>

    參數解讀:

    配置參數:

    id:當配置多個executor時,被@Async("id")指定使用;也被作為線程名的前綴。

    pool-size:

    core size:最小的線程數,缺省:1

    max size:最大的線程數,缺省:Integer.MAX_VALUE

    queue-capacity:當最小的線程數已經被占用滿后,新的任務會被放進queue里面,當這個queue的capacity也被占滿之后,pool里面會創建新線程處理這個任務,直到總線程數達到了max size,這時系統會拒絕這個任務并拋出TaskRejectedException異常(缺省配置的情況下,可以通過rejection-policy來決定如何處理這種情況)。缺省值為:Integer.MAX_VALUE

    keep-alive:超過core size的那些線程,任務完成后,再經過這個時長(秒)會被結束掉

    rejection-policy:當pool已經達到max size的時候,如何處理新任務

    ABORT(缺省):拋出TaskRejectedException異常,然后不執行DISCARD:不執行,也不拋出異常

    DISCARD_OLDEST:丟棄queue中最舊的那個任務

    CALLER_RUNS:不在新線程中執行任務,而是有調用者所在的線程來執行

    第二步在類或方法上添加@Async,當調用該方法時,則該方法即是用異常執行的方法單獨開個新線程執行。

    @Async(“可以指定執行器id,也可以不指定”)public static void testAsyncVoid (){try {//讓程序暫停100秒,相當于執行一個很耗時的任務System.out.println(“異常執行打印字符串”);Thread.sleep(100000);} catch (InterruptedException e) {e.printStackTrace();}}

    當在外部調用testAsync方法時即在新線程中執行,由上面執行器去維護線程。

    總結:先用context:component-scan去掃描注解,讓spring能識別到@Async注解,然后task:annotation-driven去驅動@Async注解,并可以指定默認的線程執行器executor。那么當用@Async注解的方法或類得到調用時,線程執行器會創建新的線程去執行。

    上面方法是無返回值的情況,還有異常方法有返回值的例子。

    @Async public Future<String> testAsyncReturn () { System.out.println("Execute method asynchronously - " + Thread.currentThread().getName()); try { Thread.sleep(5000); return new AsyncResult<String>("hello world !!!!"); } catch (InterruptedException e) { // } return null; }

    返回的數據類型為Future類型,接口實現類是AsyncResult.

    調用方法如下:

    public void test(){Future<String> future = cc.testAsyncReturn(); while (true) { ///這里使用了循環判斷,等待獲取結果信息 if (future.isDone()) { //判斷是否執行完畢 System.out.println("Result from asynchronous process - " + future.get()); break; } System.out.println("Continue doing something else. "); Thread.sleep(1000); } }

    通過不停的檢查Future的狀態來獲取當前的異步方法是否執行完畢

    參考文章

    編程的方式使用@Async:

    @Configuration @EnableAsync public class SpringConfig {private int corePoolSize = 10; private int maxPoolSize = 200; private int queueCapacity = 10; private String ThreadNamePrefix = "MyLogExecutor-"; @Bean public Executor logExecutor() { ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); executor.setCorePoolSize(corePoolSize); executor.setMaxPoolSize(maxPoolSize); executor.setQueueCapacity(queueCapacity); executor.setThreadNamePrefix(ThreadNamePrefix); // rejection-policy:當pool已經達到max size的時候,如何處理新任務 // CALLER_RUNS:不在新線程中執行任務,而是有調用者所在的線程來執行 executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); executor.initialize(); return executor; } }

    10.@Named

    @Named和Spring的@Component功能相同。@Named可以有值,如果沒有值生成的Bean名稱默認和類名相同。比如

    @Named

    public class Person

    @Named("cc")

    public class Person

    11. @Inject

    使用@Inject需要引用javax.inject.jar,它與Spring沒有關系,是jsr330規范。

    與@Autowired有互換性。

    12. @Singleton

    只要在類上加上這個注解,就可以實現一個單例類,不需要自己手動編寫單例實現類。

    13.@Valid,@Valided

    @Valid

    網上一大片使用@Valid失效不能用的情況。為什么呢?

    1.@Valid必需使用在以@RequestBody接收參數的情況下。

    2.使用ajax以POST方式提示數據,禁止用Fiddler以及瀏覽器直接訪問的方式測試接口

    3.用添加注解驅動。

    4.@Valid是應用在javabean上的校驗。

    5.

    <dependency><groupId>org.hibernate</groupId><artifactId>hibernate-validator</artifactId><version>4.2.0.Final</version></dependency> <dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-annotations</artifactId><version>2.5.3</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>2.5.3</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.5.3</version></dependency><dependency><groupId>org.codehaus.jackson</groupId><artifactId>jackson-mapper-asl</artifactId><version>1.9.8</version></dependency><dependency><groupId>com.fasterxml.jackson.module</groupId><artifactId>jackson-module-jaxb-annotations</artifactId><version>2.5.3</version>

    這些jar包是需要的。@Valid是使用hibernate validation的時候使用,可參數下面介紹的@RequestBody

    6.@Valid下后面緊跟BindingResult result,驗證結果保存在result

    例如:

    @RequestMapping("/test")public String testValid(@Valid User user, BindingResult result){if (result.hasErrors()){List<ObjectError> errorList = result.getAllErrors();for(ObjectError error : errorList){System.out.println(error.getDefaultMessage());}} return "test"; }

    在入參User上添加了@Valid做校驗,在User類里屬性上實行實際的特定校驗。

    例如在User的name屬性上加

    @NotBlank

    private String name;

    全部參數校驗如下:

    空檢查

    @Null 驗證對象是否為null

    @NotNull 驗證對象是否不為null, 無法查檢長度為0的字符串

    @NotBlank 檢查約束字符串是不是Null還有被Trim的長度是否大于0,只對字符串,且會去掉前后空格.

    @NotEmpty 檢查約束元素是否為NULL或者是EMPTY.

    Booelan檢查

    @AssertTrue 驗證 Boolean 對象是否為 true

    @AssertFalse 驗證 Boolean 對象是否為 false

    長度檢查

    @Size(min=, max=) 驗證對象(Array,Collection,Map,String)長度是否在給定的范圍之內

    @Length(min=, max=)驗證注解的元素值長度在min和max區間內

    日期檢查

    @Past 驗證 Date 和 Calendar 對象是否在當前時間之前

    @Future 驗證 Date 和 Calendar 對象是否在當前時間之后

    @Pattern 驗證 String 對象是否符合正則表達式的規則

    數值檢查,建議使用在Stirng,Integer類型,不建議使用在int類型上,因為表單值為“”時無法轉換為int,但可以轉換為Stirng為"",Integer為null

    @Min(value=””) 驗證 Number 和 String 對象是否大等于指定的值

    @Max(value=””) 驗證 Number 和 String 對象是否小等于指定的值

    @DecimalMax(value=值) 被標注的值必須不大于約束中指定的最大值. 這個約束的參數是一個通過BigDecimal定義的最大值的字符串表示.小數存在精度

    @DecimalMin(value=值) 被標注的值必須不小于約束中指定的最小值. 這個約束的參數是一個通過BigDecimal定義的最小值的字符串表示.小數存在精度

    @Digits 驗證 Number 和 String 的構成是否合法

    @Digits(integer=,fraction=)驗證字符串是否是符合指定格式的數字,interger指定整數精度,fraction指定小數精度。

    @Range(min=, max=) 檢查數字是否介于min和max之間.

    @Range(min=10000,max=50000,message="range.bean.wage")

    private BigDecimal wage;

    @Valid 遞歸的對關聯對象進行校驗, 如果關聯對象是個集合或者數組,那么對其中的元素進行遞歸校驗,如果是一個map,則對其中的值部分進行校驗.(是否進行遞歸驗證)

    @CreditCardNumber信用卡驗證

    @Email 驗證是否是郵件地址,如果為null,不進行驗證,算通過驗證。

    @ScriptAssert(lang=,script=, alias=)

    @URL(protocol=,host=,port=,regexp=, flags=)

    @Validated

    @Valid是對javabean的校驗,如果想對使用@RequestParam方式接收參數方式校驗使用@Validated

    使用@Validated的步驟:

    第一步:定義全局異常,讓該全局異常處理器能處理所以驗證失敗的情況,并返回給前臺失敗提示數據。如下,該類不用在任何xml里配置。

    import javax.validation.ValidationException;import org.springframework.context.annotation.Bean; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Component; import org.springframework.validation.beanvalidation.MethodValidationPostProcessor; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseStatus;@ControllerAdvice @Component public class GlobalExceptionHandler {@Beanpublic MethodValidationPostProcessor methodValidationPostProcessor() {return new MethodValidationPostProcessor();} @ExceptionHandler @ResponseBody @ResponseStatus(HttpStatus.BAD_REQUEST) public String handle(ValidationException exception) {System.out.println("bad request, " + exception.getMessage());return "bad request, " + exception.getMessage();} }

    第二步。在XXController.java頭上添加@Validated,然后在@RequestParam后臺使用上面介紹的驗證注解,比如@NotBlank,@Rank.

    如下:

    @Controller @RequestMapping("/test") @Validated public class TestController extends BaseController {@RequestMapping(value = "testValidated", method = RequestMethod.GET) @ResponseBody @ResponseStatus(HttpStatus.BAD_REQUEST) public Object testValidated(@RequestParam(value = "pk", required = true) @Size(min = 1, max = 3) String pk,@RequestParam(value = "age", required = false) @Range(min = 1, max = 3) String age) {try {return "pk:" + pk + ",age=" + age;} catch (Throwable t) {return buildFailure("消息列表查詢失敗");}}}

    當入非法參數是,會被全局處理器攔截到,(Spring切面編程方式),如果參數非法即刻給前臺返回錯誤數據。

    測試:http://127.0.0.1:8080/TestValidate/test/testValidated?pk=2&age=12

    返回:

    注意

    @Valid是使用hibernateValidation.jar做校驗

    @Validated是只用springValidator校驗機制使用

    gitHub下載地址

    @Validated與@RequestBody結合使用時,在接口方法里要增加@Valid。例如:

    public Object edit(@Valid @RequestBody AddrRo addrRo) {.....}

    14.@RequestBody

    @RequestBody(required=true)

    :有個默認屬性required,默認是true,當body里沒內容時拋異常。

    application/x-www-form-urlencoded:窗體數據被編碼為名稱/值對。這是標準的編碼格式。這是默認的方式 multipart/form-data:窗體數據被編碼為一條消息,頁上的每個控件對應消息中的一個部分。二進制數據傳輸方式,主要用于上傳文件

    注意:必需使用POST方式提交參數,需要使用ajax方式請求,用Fiddler去模擬post請求不能。

    引用jar包:

    Spring相關jar包。

    以及

    <dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-annotations</artifactId><version>2.5.3</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>2.5.3</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.5.3</version></dependency>

    dispatchServlet-mvc.xml配置 第一種,直接配置MappingJackson2HttpMessageCoverter:

    <bean

    第二種: 就不用配置上面bean,默認會配好。

    Ajax請求:

    function testRequestBody() {var o = {"status":9};jQuery.ajax({type: "POST",url: "http://127.0.0.1:8080/TestValidate/test/testValid",xhrFields:{withCredentials:true},data: JSON.stringify(o),contentType: "application/json",dataType: "json",async: false,success:function (data) {console.log(data);},error: function(res) {console.log(res);}});

    }

    后臺XXXcontroller.java:

    @RequestMapping(value="/ testValid ",method=RequestMethod.POST) @ResponseBody public Object setOrderInfo(@RequestBody InfoVO infoVO,HttpServletRequest request, HttpServletResponse response){InfoVO cVo = getInfoVo(infoVO);return "success";}

    開發時,不是報415,就是400錯誤,頭都大了。還是細節沒做到位,注意下面幾個要點:

    Content-Type必需是application/json

    需要jackson-databind.jar

    要配置或直接配置bean

    XXXController.jar在post方式接收數據

    最最重要的,使用ajax以post方式請求。不能用Fiddler模擬,不然會出錯。

    15.@CrossOrigin

    是Cross-Origin ResourceSharing(跨域資源共享)的簡寫

    作用是解決跨域訪問的問題,在Spring4.2以上的版本可直接使用。在類上或方法上添加該注解

    例如:

    @CrossOrigin public class TestController extends BaseController { XXXX }

    如果失效則可能方法沒解決是GET還是POST方式,指定即可解決問題。

    16.@RequestParam

    作用是提取和解析請求中的參數。@RequestParam支持類型轉換,類型轉換目前支持所有的基本Java類型

    @RequestParam([value="number"], [required=false]) String number

    將請求中參數為number映射到方法的number上。required=false表示該參數不是必需的,請求上可帶可不帶。

    17.@PathVariable,@RequestHeader,@CookieValue,@RequestParam, @RequestBody,@SessionAttributes, @ModelAttribute

    @PathVariable:處理requet uri部分,當使用@RequestMapping URI template 樣式映射時, 即someUrl/{paramId}, 這時的paramId可通過 @Pathvariable注解綁定它傳過來的值到方法的參數上

    例如:

    @Controller @RequestMapping("/owners/{a}") public class RelativePathUriTemplateController { @RequestMapping("/pets/{b}") public void findPet(@PathVariable("a") String a,@PathVariable String b, Model model) { // implementation omitted } }@RequestHeader,@CookieValue: 處理request header部分的注解將頭部信息綁定到方法參數上:@RequestMapping("/test") public void displayHeaderInfo(@RequestHeader("Accept-Encoding") String encoding, @RequestHeader("Keep-Alive")long keepAlive) { //... }//將cookie里JSESSIONID綁定到方法參數上@RequestMapping("/test") public void displayHeaderInfo(@CookieValue("JSESSIONID") String cookie) { //... }

    18.@Scope

    配置bean的作用域。

    @Controller@RequestMapping("/test")@Scope("prototype")public class TestController {}

    默認是單例模式,即@Scope("singleton"),

    singleton:單例,即容器里只有一個實例對象。

    prototype:多對象,每一次請求都會產生一個新的bean實例,Spring不無法對一個prototype bean的整個生命周期負責,容器在初始化、配置、裝飾或者是裝配完一個prototype實例后,將它交給客戶端,由程序員負責銷毀該對象,不管何種作用域,容器都會調用所有對象的初始化生命周期回調方法,而對prototype而言,任何配置好的析構生命周期回調方法都將不會被調用

    request:對每一次HTTP請求都會產生一個新的bean,同時該bean僅在當前HTTP request內有效

    web.xml增加如下配置:

    <listener> <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class></listener>

    session:該針對每一次HTTP請求都會產生一個新的bean,同時該bean僅在當前HTTP session內有效。也要在web.xml配置如下代碼:

    <listener> <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class></listener>

    global session:作用不大,可不用管他。

    19.@ResponseStatus

    @ResponseStatus用于修飾一個類或者一個方法,修飾一個類的時候,一般修飾的是一個異常類,當處理器的方法被調用時,@ResponseStatus指定的code和reason會被返回給前端。value屬性是http狀態碼,比如404,500等。reason是錯誤信息

    當修改類或方法時,只要該類得到調用,那么value和reason都會被添加到response里

    例如:

    @ResponseStatus(value=HttpStatus.FORBIDDEN, reason="出現了錯誤") public class UserException extends RuntimeException{ XXXXX }

    當某處拋出UserException時,則會把value和reason返回給前端。

    @RequestMapping("/testResponseStatus")public String testResponseStatus(int i){if(i==0)throw new UserNotMatchException();return "hello"; }

    修改方法:

    @ControllerAdvice @Component public class GlobalExceptionHandler {@Beanpublic MethodValidationPostProcessor methodValidationPostProcessor() {return new MethodValidationPostProcessor();} @ExceptionHandler @ResponseBody @ResponseStatus(value=HttpStatus.BAD_REQUEST,reason="哈哈") public String handle(ValidationException exception) {System.out.println("bad request, " + exception.getMessage());return "bad request, " + exception.getMessage(); } }

    結果如下:

    正如上面所說,該方法得到調用,不論是否拋異常,都會把value和reason添加到response里。

    總結:@ResponseStatus是為了在方法或類得到調用時將指定的code和reason添加到response里返前端,就像服務器常給我們報的404錯誤一樣,我們可以自己指定高逼格錯誤提示。

    20.@RestController

    @RestController = @Controller + @ResponseBody。

    是2個注解的合并效果,即指定了該controller是組件,又指定方法返回的是String或json類型數據,不會解決成jsp頁面,注定不夠靈活,如果一個Controller即有SpringMVC返回視圖的方法,又有返回json數據的方法即使用@RestController太死板。

    靈活的作法是:定義controller的時候,直接使用@Controller,如果需要返回json可以直接在方法中添加@ResponseBody

    21.@ControllerAdvice

    官方解釋是:It is typically used todefine@ExceptionHandler,

    @InitBinder, and@ModelAttribute methods that apply to all@RequestMapping methods

    意思是:即把@ControllerAdvice注解內部使用@ExceptionHandler、@InitBinder、@ModelAttribute注解的方法應用到所有的 @RequestMapping注解的方法。非常簡單,不過只有當使用@ExceptionHandler最有用,另外兩個用處不大。

    @ControllerAdvice public class GlobalExceptionHandler { @ExceptionHandler(SQLException.class) @ResponseStatus(value=HttpStatus.INTERNAL_SERVER_ERROR,reason=”sql查詢錯誤”) @ResponseBody public ExceptionResponse handleSQLException(HttpServletRequest request, Exception ex) { String message = ex.getMessage(); return ExceptionResponse.create(HttpStatus.INTERNAL_SERVER_ERROR.value(), message); } }

    即表示讓Spring捕獲到所有拋出的SQLException異常,并交由這個被注解的handleSQLException方法處理,同時使用@ResponseStatus指定了code和reason寫到response上,返回給前端。

    22.元注解包括 @Retention @Target @Document @Inherited四種

    元注解是指注解的注解,比如我們看到的ControllerAdvice注解定義如下。

    @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Component public @interface ControllerAdvice {XXX }

    @Retention: 定義注解的保留策略:

    @Retention(RetentionPolicy.SOURCE) //注解僅存在于源碼中,在class字節碼文件中不包含

    @Retention(RetentionPolicy.CLASS) //默認的保留策略,注解會在class字節碼文件中存在,但運行時無法獲得,

    @Retention(RetentionPolicy.RUNTIME) //注解會在class字節碼文件中存在,在運行時可以通過反射獲取到

    @Target:定義注解的作用目標:

    @Target(ElementType.TYPE) //接口、類、枚舉、注解

    @Target(ElementType.FIELD) //字段、枚舉的常量

    @Target(ElementType.METHOD) //方法

    @Target(ElementType.PARAMETER) //方法參數

    @Target(ElementType.CONSTRUCTOR) //構造函數

    @Target(ElementType.LOCAL_VARIABLE)//局部變量

    @Target(ElementType.ANNOTATION_TYPE)//注解

    @Target(ElementType.PACKAGE) ///包

    由以上的源碼可以知道,他的elementType 可以有多個,一個注解可以為類的,方法的,字段的等等

    @Document:說明該注解將被包含在javadoc中

    @Inherited:說明子類可以繼承父類中的該注解

    比如@Valid注解定義是

    表示該注解只能用在方法,屬性,構造函數及方法參數上。該注意會被編譯到class里可通過反射得到。

    23.@RequestMapping

    處理映射請求的注解。用于類上,表示類中的所有響應請求的方法都是以該地址作為父路徑。有6個屬性。

    1、 value, method: value:指定請求的實際地址,指定的地址可以是URI Template 模式; method:指定請求的method類型, GET、POST、PUT、DELETE等; 比如:

    @RequestMapping(value = "/testValid", method = RequestMethod.POST) @ResponseBody public Object testValid(@RequestBody @Valid Test test,BindingResult result, HttpServletRequest request, HttpServletResponse response) {XXX }

    value的uri值為以下三類: A) 可以指定為普通的具體值;如@RequestMapping(value ="/testValid") B) 可以指定為含有某變量的一類值;如@RequestMapping(value="/{day}") C) 可以指定為含正則表達式的一類值;如@RequestMapping(value="/{textualPart:[a-z-]+}.{numericPart:[d]+}") 可以匹配../chenyuan122912請求。

    2、 consumes,produces: consumes: 指定處理請求的提交內容類型(Content-Type),例如@RequestMapping(value = "/test", consumes="application/json")處理application/json內容類型

    produces: 指定返回的內容類型,僅當request請求頭中的(Accept)類型中包含該指定類型才返回;

    3 params、headers: params: 指定request中必須包含某些參數值是,才讓該方法處理。

    例如:

    @RequestMapping(value = "/test", method = RequestMethod.GET, params="name=chenyuan") public void findOrd(String name) { // implementation omitted }

    僅處理請求中包含了名為“name”,值為“chenyuan”的請求.

    @RequestMapping(value = "/test", method = RequestMethod.GET, headers="Referer=www.baidu.com") public void findOrd(String name) { // implementation omitted }

    headers: 指定request中必須包含某些指定的header值,才能讓該方法處理請求。

    僅處理request的header中包含了指定“Refer”請求頭和對應值為“www.baidu.com”的請求

    24. @GetMapping和@PostMapping

    @GetMapping(value = "page")等價于@RequestMapping(value = "page", method = RequestMethod.GET)

    @PostMapping(value = "page")等價于@RequestMapping(value = "page", method = RequestMethod.POST)

    總結

    以上是生活随笔為你收集整理的@async注解_史上最全的java spring注解的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    午夜影视一区 | 国色天香永久免费 | 精品黄色在线观看 | 黄色不卡av | 伊人资源站 | av高清不卡 | 欧美午夜性 | 日韩中字在线 | 久久久久国产精品免费网站 | 最近中文字幕视频完整版 | 99久久免费看 | 在线国产专区 | 亚洲涩涩涩涩涩涩 | 久久久久伦理电影 | 久久成人国产精品一区二区 | 色射色 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 中文字幕乱码亚洲精品一区 | 久久久午夜精品福利内容 | 激情伊人五月天久久综合 | 国产小视频在线免费观看 | 99精品国产视频 | 在线观看播放av | 精品1区2区3区 | 又爽又黄在线观看 | 天天爱天天| 亚洲v欧美v国产v在线观看 | 日韩免费在线观看视频 | 免费看的黄色网 | 国产亚洲91| 日本中文一区二区 | 国产黄色片免费在线观看 | 免费特级黄毛片 | 国产99免费视频 | 夜色资源站wwwcom | 自拍超碰在线 | 久久成人资源 | 欧美狠狠色| 深爱激情综合网 | 99热精品在线观看 | 国产a级免费| 国产高清中文字幕 | 亚洲精品综合在线观看 | 在线观看精品一区 | 日韩免费久久 | 精品国产乱码久久久久久1区二区 | 亚洲欧洲xxxx | 久久久久国产成人精品亚洲午夜 | 国产天天综合 | 久久久久综合精品福利啪啪 | 久久精品影片 | 精品国偷自产国产一区 | 欧美大片在线看免费观看 | 亚洲精品美女免费 | 成人午夜片av在线看 | 国产精品一区二区久久国产 | 黄色大片入口 | 99tvdz@gmail.com | 国产在线精品一区二区 | 91av视频在线免费观看 | 国产精品免费在线播放 | 夜夜操综合网 | 99精品在线免费视频 | 天天干,天天射,天天操,天天摸 | 国产精品久久久久久久久大全 | 国产丝袜美腿在线 | 久久xxxx| 久久avav| 精品一二三四在线 | 日韩高清一区二区 | 久久综合狠狠综合久久狠狠色综合 | 97电影在线 | 久久男人免费视频 | 久久伦理电影 | 97**国产露脸精品国产 | 亚洲精品国精品久久99热一 | 免费在线色 | 亚洲午夜小视频 | 免费毛片aaaaaa | 国产香蕉久久精品综合网 | 在线v片 | 中文字幕成人在线观看 | 五月天婷婷丁香花 | 亚洲午夜av久久乱码 | 亚洲国产高清在线 | 午夜视频久久久 | 亚洲永久精品在线 | 在线黄色国产 | 91av免费看 | 久久久久日本精品一区二区三区 | 福利视频一区二区 | 久久99国产精品久久99 | 国产不卡精品 | 在线观看av网站 | 69av久久| 天天草天天插 | 国产一区视频在线 | 天天操夜夜看 | 中文字幕中文字幕在线一区 | 人人插人人看 | 国产精选在线 | 国产精品久久久久一区二区三区 | 黄色片网站 | 国产精品久久中文字幕 | 国产黄色免费电影 | 亚洲国产中文字幕在线观看 | 色插综合 | 国产一区自拍视频 | 久久精品爱爱视频 | 日韩免费中文 | 色视频网址 | 91精品国产91久久久久福利 | 成片免费观看视频999 | 成人在线免费视频观看 | 在线观看精品国产 | 国产手机在线视频 | 五月婷丁香 | 一区二区三区观看 | www色,com | 久久免费久久 | 国产传媒中文字幕 | 视频二区在线视频 | 狠狠色噜噜狠狠狠狠2021天天 | 九九热只有精品 | 国产视频色 | 伊人成人激情 | 午夜视频色 | 99久久国产免费免费 | 久久乱码卡一卡2卡三卡四 五月婷婷久 | 欧美亚洲成人免费 | 在线视频你懂得 | 中文字幕在线观看你懂的 | 人人狠狠综合久久亚洲婷 | 九九九九九九精品任你躁 | 成年人黄色av | 色一级片| 中文字幕第 | 色天天 | 婷婷丁香色 | 99久高清在线观看视频99精品热在线观看视频 | 中文字幕欧美激情 | 五月天视频网 | 国产真实精品久久二三区 | 激情九九 | 夜夜操天天 | 国内99视频 | 日韩肉感妇bbwbbwbbw | 丝袜美腿亚洲综合 | 国产精品v欧美精品v日韩 | 国产一区视频在线播放 | 天天色天天射天天干 | 久草在线资源观看 | 婷婷激情网站 | 中文字幕在线播放av | 综合网天天 | 日韩免费在线观看视频 | 亚洲精品视频在线看 | 青青草国产免费 | 免费视频久久 | 日韩欧美精品在线观看视频 | 黄色av电影在线 | 91私密视频 | 久久99国产精品二区护士 | 911免费视频 | 国产午夜影院 | 日韩成人免费电影 | 日韩激情av在线 | 国产一级高清视频 | 欧美国产精品久久久久久免费 | 中文字幕一区二区三区久久蜜桃 | 婷婷色综合网 | 成人h电影在线观看 | av免费看在线 | 国产精品久久99综合免费观看尤物 | 少妇搡bbb| 国产成视频在线观看 | 精品免费观看 | 亚洲精选视频免费看 | 成人免费视频在线观看 | 99视| 免费成人黄色av | 久久伦理视频 | 成人免费观看视频大全 | 高清视频一区二区三区 | 亚洲精品在线观看视频 | a级成人毛片 | 国产免费国产 | 日本黄色a级大片 | 99热99热| 亚洲欧美在线观看视频 | 国产色综合 | 国产又粗又猛又黄视频 | 中文字幕电影网 | www.日韩免费 | 国产一在线精品一区在线观看 | 成人毛片100免费观看 | www.com.黄| 精品一区二区综合 | 久久在线观看视频 | 久久久久久蜜av免费网站 | 久免费 | 99在线观看视频 | 久草在线视频精品 | 手机看片国产 | 在线观看视频一区二区三区 | 91九色视频在线观看 | 激情图片区 | 久久综合视频网 | 最新午夜 | 美女国产| 999成人 | 丁香婷婷射 | 久久久久亚洲精品成人网小说 | 日韩欧美精品一区二区三区经典 | 色噜噜日韩精品一区二区三区视频 | 日韩精品中字 | 亚洲欧美国产精品 | 美女网站视频色 | 午夜久久久精品 | 久久久久成人精品 | 国产天天爽 | adn—256中文在线观看 | 99re久久精品国产 | 麻花豆传媒mv在线观看 | 激情在线五月天 | 18国产精品白浆在线观看免费 | 97精品国产aⅴ | 伊人电影天堂 | 96香蕉视频 | 97超碰人人澡人人 | 91av视频观看 | 在线 国产 日韩 | 黄色电影在线免费观看 | 99久久99久久| 国产精品福利在线播放 | 国产福利免费看 | 国产精品久久久久久久久久久杏吧 | 四虎国产精品成人免费影视 | 欧美调教网站 | 在线一二三四区 | 日本不卡一区二区三区在线观看 | 999电影免费在线观看 | 91色视频| 黄色小说18 | 日韩最新中文字幕 | 999国产| 黄色的网站免费看 | 国产精品3| 日韩成人免费在线电影 | 在线观看91精品视频 | 欧美色婷 | 欧美精品乱码久久久久久按摩 | 国产精品精品久久久久久 | 丁香九月婷婷 | 亚洲欧洲精品一区二区精品久久久 | 久久免费视频在线观看 | 丁香婷婷激情 | 成年美女黄网站色大片免费看 | 婷婷激情综合 | 免费日韩 精品中文字幕视频在线 | 99色视频在线 | 日韩精品极品视频 | 在线天堂中文在线资源网 | 9999在线视频| 人人射人人爽 | 成人avav| 成人性生交大片免费观看网站 | 在线观看视频免费大全 | 在线精品视频在线观看高清 | 国产馆在线播放 | 国产色区 | 国产精品刺激对白麻豆99 | 国产破处在线视频 | 日韩欧美高清在线 | 免费在线观看av | 欧美激情精品久久久久久免费 | 国产精品久久在线观看 | 麻豆免费精品视频 | 亚洲精品乱码白浆高清久久久久久 | 一级黄色在线视频 | 日韩欧美视频 | 久久在线一区 | 黄色影院在线免费观看 | 久久精品久久精品久久精品 | 人人玩人人添人人澡97 | 国产亚洲精品久久久久秋 | 日本公妇色中文字幕 | 午夜久久久久久久久久影院 | 亚洲欧洲日韩在线观看 | 国产精品99久久久久久宅男 | 久久久久国产免费免费 | 五月婷婷丁香色 | 国产一性一爱一乱一交 | 一区二区三区免费看 | 欧美日韩视频观看 | 在线观看国产高清视频 | 国产女人免费看a级丨片 | 国偷自产视频一区二区久 | 黄色精品在线看 | www.av在线.com| 91大神精品视频在线观看 | 曰本免费av | 国产亚洲精品日韩在线tv黄 | 在线视频欧美日韩 | 黄色软件在线观看 | 国内久久久久久 | 日韩欧美综合精品 | av在线电影播放 | 狠狠色伊人亚洲综合网站野外 | 91成人精品国产刺激国语对白 | 国产性天天综合网 | www.香蕉| 国产伦精品一区二区三区… | 97日日 | 亚洲欧美视频在线播放 | 欧美日韩裸体免费视频 | 婷婷丁香六月 | 国产一区二区三区在线 | 激情五月色播五月 | 亚洲国产日韩一区 | 成年人在线免费看片 | 黄色av网站在线免费观看 | 综合色天天| 国产不卡在线播放 | www.com操| 久章草在线| 91传媒视频在线观看 | 亚洲精品毛片一级91精品 | 精品99在线 | 五月开心婷婷网 | 青青草国产免费 | 五月天中文字幕 | 在线观看视频黄 | 国产又粗又猛又黄又爽视频 | 香蕉在线影院 | 久久综合色播五月 | 99在线播放 | 久久99精品国产99久久 | 91.dizhi永久地址最新 | 欧美日韩在线观看一区 | 韩国av免费看 | 色搞搞 | 九九免费在线观看视频 | 久久久片 | 精品国产一区二区三区男人吃奶 | 日韩中文字幕一区 | 98精品国产自产在线观看 | 国产亚洲在线视频 | 黄色片视频在线观看 | 91看片淫黄大片91 | 狠狠伊人 | 91在线免费播放视频 | 精品一区中文字幕 | 日韩黄色免费在线观看 | 99精品国产福利在线观看免费 | 国产精品久久久久久电影 | 日日狠狠 | 亚洲精品午夜久久久久久久久久久 | 97在线看| 精品在线观看一区二区 | 色婷婷亚洲精品 | 欧美一区二区在线刺激视频 | 色婷婷色 | 伊人一级| 午夜视频在线观看一区二区三区 | 久久er99热精品一区二区 | 黄色特级毛片 | 成人黄色大片在线免费观看 | 国产精品久久久久久久99 | 国产99一区二区 | 久久久久麻豆 | 久久66热这里只有精品 | 久久99久久99| 91cn国产在线 | 国产专区视频在线观看 | 国产精品永久在线观看 | 亚洲免费精品一区二区 | 成人免费视频在线观看 | 久久久久福利视频 | 久久婷婷网 | 欧美精品在线免费 | 中文av不卡 | 99久久激情视频 | 亚洲国产精品一区二区久久hs | 99精品国产视频 | 91精品久久久久久久91蜜桃 | 久久久久久久久久久久久久电影 | 亚洲女欲精品久久久久久久18 | 狠狠色狠狠色合久久伊人 | 特黄色大片 | 欧美射射射 | 综合在线观看色 | 久久成人视屏 | 婷婷色在线观看 | 开心丁香婷婷深爱五月 | 国产精成人品免费观看 | 国产在线专区 | 婷婷激情影院 | 久久乱码卡一卡2卡三卡四 五月婷婷久 | 在线观看免费日韩 | 亚洲天堂色婷婷 | 国产涩涩在线观看 | 久99久精品 | 国产原创中文在线 | 正在播放国产一区 | 久久国产网站 | 一本色道久久综合亚洲二区三区 | 国产不卡网站 | 色人久久| 在线你懂| 久久无码av一区二区三区电影网 | 精品理论片 | 韩日电影在线观看 | 最新极品jizzhd欧美 | 免费视频久久久久 | a在线v| 又湿又紧又大又爽a视频国产 | 国产精品久久av | 五月天电影免费在线观看一区 | 91精品在线免费观看视频 | 成人国产精品av | 日韩免费b | 久久综合久久久 | 色在线免费 | 91成人精品国产刺激国语对白 | 综合色亚洲 | www.五月天激情 | 国产精品成久久久久三级 | 在线中文字幕电影 | 久热免费在线观看 | 欧美日韩在线看 | 一区二区三高清 | 久久狠狠干 | 天天操天天操天天操天天操天天操天天操 | 成人久久视频 | 日韩色高清 | 国内精品久久久久国产 | 色在线最新| 99久久er热在这里只有精品15 | 操久久免费视频 | 国产成人久久av | 一本大道久久精品懂色aⅴ 五月婷社区 | 精品国产一区二区三区在线观看 | 国产精品一区二区av麻豆 | 色视频一区 | 天天鲁一鲁摸一摸爽一爽 | www色网站 | 人人讲下载 | 黄色三级网站在线观看 | 99r在线视频 | 国产专区精品视频 | 免费观看性生交大片3 | 九精品 | 国产在线高清视频 | 正在播放国产一区 | 一本色道久久综合亚洲二区三区 | 人人舔人人插 | 成人欧美一区二区三区黑人麻豆 | av国产在线观看 | 99热这里只有精品8 久久综合毛片 | 91大神在线观看视频 | 国产精品欧美久久久久无广告 | 在线播放日韩 | 婷婷夜夜 | 操操操日日 | 人人狠狠综合久久亚洲婷 | 亚洲精品免费在线播放 | 国产在线播放不卡 | 国产18精品乱码免费看 | 在线免费观看涩涩 | 免费观看全黄做爰大片国产 | 国产在线视频资源 | 香蕉久久久久久久 | 成年人黄色免费视频 | 国产在线黄 | 久久午夜色播影院免费高清 | 国产亚洲字幕 | 成人av日韩 | 黄色在线网站噜噜噜 | 久久电影国产免费久久电影 | 色婷婷www | 黄色福利网站 | 久精品视频在线 | 在线视频 91 | 二区三区在线 | 欧美精品九九99久久 | 亚洲三级性片 | 婷婷丁香色综合狠狠色 | 天天躁天天躁天天躁婷 | 国产女教师精品久久av | 日韩精品一区二区在线观看视频 | 96亚洲精品久久久蜜桃 | 黄色大全免费观看 | 黄色大全免费网站 | 成人午夜剧场在线观看 | 国产精品第三页 | 91新人在线观看 | 免费激情在线电影 | 中文字幕人成乱码在线观看 | 粉嫩av一区二区三区四区在线观看 | 亚洲黄色免费在线 | 天天操导航| 免费国产在线视频 | 国产精品久久久久久久久久直播 | 国产精品久久久久久久久久免费 | 美国av大片 | 日韩在线观看av | 精品视频在线看 | 日韩欧美在线高清 | 天天色棕合合合合合合 | 国产一级免费片 | 狠狠插狠狠操 | 黄色网在线免费观看 | 久久免费视频在线观看 | 97在线免费观看视频 | a在线免费观看视频 | 久久久精品欧美一区二区免费 | 国产精品福利一区 | 国产色在线视频 | 国产高清成人在线 | 日韩av一区二区三区四区 | 亚洲欧美日韩国产一区二区三区 | 亚洲天堂网在线播放 | 欧美激精品| 在线日本看片免费人成视久网 | 免费观看xxxx9999片 | 欧美性精品 | 久久久久久久久亚洲精品 | 亚洲综合在线五月 | 国产资源在线播放 | 91看片成人 | 久久99国产精品自在自在app | www婷婷 | 成人a在线观看 | 婷婷在线播放 | 91麻豆精品国产自产 | 亚洲成年人免费网站 | 麻豆精品传媒视频 | 99在线免费观看 | 91完整视频| 在线视频观看亚洲 | 亚洲精品观看 | 国产丝袜美腿在线 | 99免费在线观看 | 婷婷5月色| 国产亚洲精品无 | 国产96av | 精品国产1区 | 98精品国产自产在线观看 | 日韩视频中文字幕在线观看 | 亚州精品视频 | 日韩在线观看网站 | 黄色小说免费在线观看 | 亚洲人成综合 | 99精品久久精品一区二区 | 国产高清在线免费观看 | 丁香婷婷色综合亚洲电影 | 久久日本视频 | 超碰国产在线播放 | 亚州精品天堂中文字幕 | 日韩精品一区二区三区免费观看 | 亚洲成人精品av | 国产99自拍| 高潮毛片无遮挡高清免费 | 亚洲黄色在线播放 | 亚洲国产成人在线播放 | 久久美女视频 | 久久天天操 | 在线免费性生活片 | 日女人电影 | 国产成人三级在线播放 | 五月婷婷激情五月 | 久久精品视频免费播放 | 91av蜜桃| 99热这里只有精品久久 | 久久免费视频在线观看30 | 亚洲 欧美 变态 国产 另类 | 亚洲欧美偷拍另类 | 91精品国产自产91精品 | 久久av影院 | 免费中午字幕无吗 | 国产亚洲成人网 | 午夜资源站 | 久热免费 | 日韩在线播放视频 | 久久久久女教师免费一区 | 国产日本亚洲高清 | 国产一区二区三区在线 | 超碰97人人爱 | 毛片视频网址 | 精品av在线播放 | 国产精品视频地址 | 视频在线观看入口黄最新永久免费国产 | 亚洲无毛专区 | 亚洲精品在线观看视频 | 亚洲年轻女教师毛茸茸 | 国产高清亚洲 | 国产精品每日更新 | 亚洲dvd | 中文字幕二区在线观看 | 国产二区av | 国产第一页福利影院 | 亚洲日本激情 | 四虎影视成人 | 91精品视频免费 | www.777奇米 | 欧美午夜精品久久久久久孕妇 | 97色在线观看免费视频 | 99在线热播精品免费 | 97视频中文字幕 | 国产999免费视频 | 天天操天天干天天爱 | 中文字幕视频观看 | aⅴ视频在线 | 伊人色综合久久天天网 | 国产成人av网| 国产手机在线观看视频 | 欧美另类xxx| 天天艹天天爽 | 久久久99精品免费观看乱色 | 中文字幕av免费观看 | 久草视频手机在线 | 视频二区在线视频 | 在线观看视频国产一区 | av在线免费在线观看 | 99麻豆视频 | 四虎在线视频 | 国产男男gay做爰 | 992tv人人网tv亚洲精品 | 日韩av免费一区二区 | 涩涩在线 | 欧美日韩高清一区二区 国产亚洲免费看 | 国产xxxxx在线观看 | 欧美色道| 成人免费在线电影 | 天天操天天干天天爱 | 国产精品免费人成网站 | 日韩精品在线免费观看 | 中文字幕在线观看不卡 | 免费久久久 | 亚洲综合网 | 国产综合91| 日本天天色| 999精品在线| 国色综合 | 久草剧场 | 99在线国产 | 又紧又大又爽精品一区二区 | 天天综合五月天 | 精品av在线播放 | 日韩一区二区免费视频 | 日本在线观看黄色 | 少妇bbw撒尿 | 天天综合亚洲 | 婷婷在线看 | av网站手机在线观看 | 国产综合久久 | 久久精品福利 | 99在线视频观看 | 免费日韩一区二区三区 | 欧美日本在线视频 | 亚州av免费 | 亚洲视频免费视频 | 日本69hd| 欧美日韩性| 欧美极品少妇xbxb性爽爽视频 | 国产精品激情偷乱一区二区∴ | 九九热在线观看 | 色综合色综合色综合 | 日本久久视频 | 日韩高清在线一区 | 欧美一区二区三区特黄 | 亚洲电影图片小说 | 人人澡人摸人人添学生av | 中文字幕有码在线播放 | 欧美性受极品xxxx喷水 | 男女视频国产 | 精品96久久久久久中文字幕无 | 日韩电影中文,亚洲精品乱码 | 狠狠干免费 | 一区中文字幕在线观看 | 亚洲精品在线观看不卡 | 欧美成人免费在线 | 超碰在线网| 亚洲九九九在线观看 | 国产精品精品国产 | 国产午夜精品理论片在线 | 亚洲成人免费 | 精品欧美乱码久久久久久 | 欧美日韩天堂 | 97在线观看免费 | 中文字幕亚洲情99在线 | 2019天天干天天色 | 欧美做受高潮 | 天堂在线一区 | 91视视频在线直接观看在线看网页在线看 | 天天透天天插 | 欧美色综合天天久久综合精品 | 中文字幕在线观看不卡 | 成人黄色在线 | 久久久精品国产一区二区三区 | 91女人18片女毛片60分钟 | 五月综合久久 | 久久这里 | 欧美黄色成人 | 欧美另类一二三四区 | 一区二区三区手机在线观看 | 中文字幕999 | 韩国av三级| 91高清免费 | 欧美精品久久久久久久久久久 | 中文字幕一区二区三区四区视频 | www日韩精品 | 中文字幕在线播放一区 | 婷婷四房综合激情五月 | 久久黄色免费视频 | 成人精品国产 | 91黄视频在线 | 黄色成人av网址 | 日韩系列在线观看 | 亚洲高清视频在线观看 | 久久婷婷国产 | 亚洲三级精品 | 欧美激情综合色 | 中文字幕在线日亚洲9 | 在线视频日韩欧美 | 日韩av资源站 | 四虎在线免费观看 | 成人va在线观看 | 久久综合影院 | 久久精品欧美视频 | 久久久久久久99精品免费观看 | 99热最新网址 | 午夜精品久久久久久久99 | 黄色在线网站噜噜噜 | 精品九九九 | 九九九免费视频 | 久久视频免费观看 | 毛片网站在线观看 | 欧美极品xxx | 五月天伊人 | 国产一区二区免费看 | 探花视频在线版播放免费观看 | 日韩在线观看 | 日韩免费在线观看 | 成人在线一区二区 | 狠狠干 狠狠操 | 成人免费视频a | 国产va在线| 久久久国产精品一区二区三区 | 国产成人无码AⅤ片在线观 日韩av不卡在线 | 亚洲欧美乱综合图片区小说区 | 免费看精品久久片 | 深夜免费福利在线 | a色视频 | 精品亚洲成a人在线观看 | 国产亚洲欧美精品久久久久久 | 4438全国亚洲精品在线观看视频 | 欧美91av| 国产99亚洲 | 国产黄色特级片 | 天天添夜夜操 | 国产高清网站 | 96av在线视频 | 成 人 黄 色视频免费播放 | 日韩欧美一区二区三区黑寡妇 | 美女国产精品 | 麻豆网站免费观看 | 日韩精品一区在线播放 | 免费色视频网站 | 亚洲激情免费 | 探花视频免费观看 | 不卡在线一区 | 国产中文字幕在线视频 | 亚洲一区二区天堂 | 在线日本看片免费人成视久网 | 97国产在线观看 | 亚洲综合狠狠干 | 日韩精品一区二区三区中文字幕 | 我要色综合天天 | 欧美日韩国产一二三区 | 日本性生活免费看 | 国产一线二线三线性视频 | 国产一区国产二区在线观看 | 91在线观看视频网站 | av电影在线免费观看 | 欧美一级片播放 | www.干| 四虎永久精品在线 | 久久久久成人精品 | 极品美女被弄高潮视频网站 | 五月天婷婷视频 | 一级a性色生活片久久毛片波多野 | 在线免费黄色片 | 久久精品视频2 | 亚洲天天干 | 在线 视频 一区二区 | 欧美精品久久久久久久亚洲调教 | 午夜18视频在线观看 | 欧美 激情在线 | 国产最新精品视频 | 色综合久久久久综合99 | 人人添人人澡人人澡人人人爽 | av在线播放国产 | 日韩精品免费专区 | 国产亚洲精品成人av久久ww | 久久亚洲视频 | 日韩在线中文字幕 | 国产成人av在线影院 | 国产高清视频在线播放一区 | 就色干综合| 97精品国产一二三产区 | 国内精品久久久久 | 99久久99 | 激情视频亚洲 | 五月色婷 | 国产91影视| 免费看一级黄色 | 国产中文字幕久久 | 天天射天天舔天天干 | 久久99久久久久久 | 国精产品999国精产品岳 | 亚洲另类在线视频 | 亚洲成人频道 | 又黄又爽又无遮挡免费的网站 | 亚洲码国产日韩欧美高潮在线播放 | 性色视频在线 | 九七视频在线观看 | 国产精品永久免费在线 | 亚洲人成在线观看 | 九精品 | 天天做天天爱夜夜爽 | 一 级 黄 色 片免费看的 | 最新av免费 | 日韩成人在线一区二区 | 91日韩在线播放 | 国产在线看 | 亚洲一区二区精品在线 | 亚洲国产精品500在线观看 | 香蕉看片| 一区二区三区在线观看免费视频 | 日韩在线色视频 | 亚洲视频网站在线观看 | 狠狠色狠狠色 | 韩国av三级| 亚洲在线视频免费观看 | 国产精品黄色影片导航在线观看 | 色综合久久88色综合天天人守婷 | 国产明星视频三级a三级点| 日韩有码欧美 | 99久久久国产精品美女 | 国产午夜精品久久久久久久久久 | 日韩视频免费看 | 久久精彩 | 成人亚洲综合 | 欧美日韩国产一区二区三区 | 在线观看视频色 | 欧洲不卡av| 五月花婷婷 | 亚洲第五色综合网 | 欧美日韩精品在线 | 国产看片 色 | 丁香激情综合久久伊人久久 | 婷婷色网址 | 久草在线免 | 国产精品午夜在线 | 久草视频精品 | 奇米网在线观看 | 日本精品午夜 | 91chinesexxx| 久久免费视频精品 | 久久天天操 | 黄色资源在线观看 | 久草精品视频在线播放 | 91av手机在线观看 | 成人啊 v | 五月花婷婷 | 五月婷av | 91精品国产综合久久婷婷香蕉 | 精品国产资源 | 国产老熟 | 国产又粗又硬又爽视频 | 欧美精品亚州精品 | 国产九九九精品视频 | 色国产在线| 日韩免费成人av | av视屏在线 | 亚洲国产美女精品久久久久∴ | 九九亚洲精品 | 亚洲一区久久 | 黄色大片入口 | 久久久精品网站 | 99精品视频中文字幕 | 国产区网址 | 91精品久久久久久久久久久久久 | 亚洲精品视频免费在线观看 | 丁香婷五月| 国产高清视频在线 | 91最新在线观看 | 亚洲精品一区二区精华 | 韩国一区二区av | 美女网站在线看 | 最近中文字幕完整高清 | 日韩免费在线视频观看 | 天天干夜夜爱 | 新版资源中文在线观看 | 在线观看韩国av | 久久国产免费视频 | 久久在视频 | 色婷婷综合视频在线观看 | 91精品一区二区三区蜜臀 | 国产成人久久av977小说 | 麻豆视频大全 | 五月婷婷综合激情网 | 天天综合网~永久入口 | 色欧美成人精品a∨在线观看 | 亚洲一区免费在线 | 五月天国产 | 国产美女被啪进深处喷白浆视频 | 久久这里只有精品9 | 国产剧在线观看片 | 亚洲视频一| 日本黄色大片免费看 | 亚洲精品一区二区三区在线观看 | 亚洲久草视频 | 日韩精品三区四区 | 久久久免费在线观看 | 日韩大片在线观看 | 播五月综合 | 久久国产精品免费 | 久久免费视频这里只有精品 | 精品久久一级片 | 欧美性色xo影院 | 九九视频免费在线观看 | 美女视频又黄又免费 | 9i看片成人免费看片 | 蜜桃麻豆www久久囤产精品 | 黄色网中文字幕 | 五月婷丁香网 | 在线观看黄网站 | 国产自产在线视频 | 日韩视频免费观看高清完整版在线 | 手机在线永久免费观看av片 | 狠狠色丁香婷婷综合 | 亚洲精品乱码久久久久久写真 | 一区二区三区在线播放 | 午夜免费福利视频 | 精品国产一区二区三区久久久蜜月 | 九九久| 又色又爽的网站 | 日韩欧美在线免费观看 | 午夜免费在线观看 | 欧美视频日韩 | 亚洲视频axxx | av电影在线观看完整版一区二区 | 毛片网在线播放 | 在线观看蜜桃视频 | 人人爽人人澡 | 天天色成人 | 欧美色图另类 | 免费在线色电影 | 四虎永久视频 | 悠悠av资源片 | 欧美日韩视频在线 | 超碰97公开 | 精品福利在线 | 久久久久久久久久影院 | 91成人精品一区在线播放69 | 日韩久久精品一区二区 | 97精品国产97久久久久久久久久久久 | 久久手机在线视频 | 国产精品久久久久久久久久久久 | 国产精品久久久久久久久免费看 | 欧美一区二区三区在线 | 日本大片免费观看在线 | 国内精品在线观看视频 | 国产麻豆果冻传媒在线观看 | 超级碰碰碰免费视频 | 国内精品久久久久影院男同志 | av综合 日韩| 91九色精品女同系列 | 国产九色在线播放九色 | 999国内精品永久免费视频 | 日日射天天射 | 国产精品18久久久久久首页狼 | 精品国产一区二区三区日日嗨 | 欧美韩国日本在线观看 | 精品99免费视频 | 91超在线| 国产精品视频全国免费观看 | 亚洲免费一级 | 在线观看成人毛片 | 亚洲 欧美 变态 国产 另类 | 国产欧美精品一区二区三区 | 一区二区三区四区免费视频 | 国产一二三在线视频 | 久久久久久草 | 日本公妇色中文字幕 |