對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層程式碼對資料處理,然後序列化要返回的資料。
小節註釋
-
@SpringBootApplication 啟動類的註解
-
@Service 註解 一般是用來操控資料庫的
-
@Repository 註解 在bean容器中會自動new一個這樣的類
-
@Autowired 註解 表明我要使用這個類,在bean容器中查詢這個類
-
@RestController 註解 用於標記這個類是一個控制器,返回JSON資料的時候使⽤,如果使用這個註解,則接⼝口返回資料會被序列列化為JSON 。
-
@Controller 註解:用於標記這個類是⼀一個控制器,返回頁⾯面的時候使用;如果要返回JSON,則需要在介面上使用@ResponseBody才可以。
Controller和 ResController的區別
- 相同 :Spring中的某個類來接受http請求
- 不同: @RestController是@Controller和@ResponseBody的結合體 ;使用@Controller 註解,檢視解析器可以解析到return中的jsp頁面或者html頁面,並且跳轉到相應頁面,返回json等內容到頁面,則需要加@ResponseBody; 使用@RestController返回的內容就是return中的內容,會自動解析成字串,是無法返回jsp頁面或者html頁面。
-
@RequestMapping 註解:訪問路徑
-
@GetMapping 註解:路徑和方法GET
-
@Configuration 註解 :表明是配置類
-
@PropertySource(value = “classpath:pay.properties”) 獲取配置檔案
-
@JsonIgnore 註解 指定欄位不返回,也無法接受前端的相應的傳回來的引數
單元測試中的註解
-
@RunWith(SpringRunner.class) 註解 表明做Spring專案的單元測試 //底層用junit SpringJUnit4ClassRunner
-
@SpringBootTest(classes={DemoProjectSpringApplication.class}) 註解 classes後跟的是啟動類
-
@before 一般做測試資料的初始化
-
@Test 做測試 斷言測試 我們單元測試一般只用這個
-
@After 一般做資源的回收
-
@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();
異常處理的註解
- 類添加註解
@ControllerAdvice,可以用來返回一個頁面,但需要配合ModeAndView類來使用。
@RestControllerAdvice, 預設返回json資料,方法不需要加@ResponseBody。 - 方法添加註解
捕獲全域性異常,處理所有不可知的異常 value 後面跟得是異常類得資訊
@ExceptionHandler(value=Exception.class)