1. 程式人生 > 其它 >對Spring中一些註解的總結

對Spring中一些註解的總結

技術標籤:Spring

Spring小節

基本註解

1、@Controller 控制器(注入服務)
用於標註控制層,相當於struts中的action層
2、@Service 服務(注入dao)
用於標註服務層,主要用來進行業務的邏輯處理
3、@Repository(實現dao訪問)
用於標註資料訪問層,也可以說用於標註資料訪問元件,即DAO元件.
4、@Component (把普通pojo例項化到spring容器中,相當於配置檔案中的<bean id="" class=""/>

區別

web : 資料庫設計 => 資料庫的操作dao => Servlet層url以及操作

Spring: 資料庫設計 => 資料庫操作dao => Service層對應操作 => controller 接受前端資料進行反序列化 然後呼叫service層程式碼對資料處理,然後序列化要返回的資料。

小節註釋
  1. @SpringBootApplication 啟動類的註解

  2. @Service 註解 一般是用來操控資料庫的

  3. @Repository 註解 在bean容器中會自動new一個這樣的類

  4. @Autowired 註解 表明我要使用這個類,在bean容器中查詢這個類

  5. @RestController 註解 用於標記這個類是一個控制器,返回JSON資料的時候使⽤,如果使用這個註解,則接⼝口返回資料會被序列列化為JSON 。

  6. @Controller 註解:用於標記這個類是⼀一個控制器,返回頁⾯面的時候使用;如果要返回JSON,則需要在介面上使用@ResponseBody才可以。

    Controller和 ResController的區別
    • 相同 :Spring中的某個類來接受http請求
    • 不同: @RestController是@Controller和@ResponseBody的結合體 ;使用@Controller 註解,檢視解析器可以解析到return中的jsp頁面或者html頁面,並且跳轉到相應頁面,返回json等內容到頁面,則需要加@ResponseBody; 使用@RestController返回的內容就是return中的內容,會自動解析成字串,是無法返回jsp頁面或者html頁面。
  7. @RequestMapping 註解:訪問路徑

  8. @GetMapping 註解:路徑和方法GET

  9. @Configuration 註解 :表明是配置類

  10. @PropertySource(value = “classpath:pay.properties”) 獲取配置檔案

  11. @JsonIgnore 註解 指定欄位不返回,也無法接受前端的相應的傳回來的引數

單元測試中的註解
  1. @RunWith(SpringRunner.class) 註解 表明做Spring專案的單元測試 //底層用junit SpringJUnit4ClassRunner

  2. @SpringBootTest(classes={DemoProjectSpringApplication.class}) 註解 classes後跟的是啟動類

  3. @before 一般做測試資料的初始化

  4. @Test 做測試 斷言測試 我們單元測試一般只用這個

  5. @After 一般做資源的回收

  6. @AutoConfigureMockMvc 類註解 注⼊入⼀一個MockMvc類 相當於一個客戶端 可以發起請求和接受響應,perform andExpect andReturn三種方法結合使用

    /**
     * perform執⾏行行⼀一個RequestBuilder請求
     * andExpect:新增ResultMatcher->MockMvcResultMatchers驗證規則
     * andReturn:最後返回相應的MvcResult->Response
     * */
    
            /**
             *  perform 獲取http請求
             *  MockMvcRequestBuilders是一個構建器 構建多種http請求
             *  支援鏈式呼叫
             * .andExpect 看預期結果
             *  MockMvcResultMatchers.status 結果的狀態碼
             *  isOK 狀態碼 200
             *  andReturn 返回結果
             * */
            MvcResult mvcResult = mockMvc.perform(MockMvcRequestBuilders.get("/api/v1/pub/video/list/")            .andExpect(MockMvcResultMatchers.status().isOk()).andReturn();
    
異常處理的註解
  1. 類添加註解
    @ControllerAdvice,可以用來返回一個頁面,但需要配合ModeAndView類來使用。
    @RestControllerAdvice, 預設返回json資料,方法不需要加@ResponseBody。
  2. 方法添加註解
    捕獲全域性異常,處理所有不可知的異常 value 後面跟得是異常類得資訊
    @ExceptionHandler(value=Exception.class)