Spring Boot學習總結一
阿新 • • 發佈:2018-10-29
請求 clas res control bject figure test 邏輯 context
Spring Boot大大簡化了之前java項目的繁瑣xml配置,本文簡單的總結下spring boot的相關知識。
1,@RestController 配置在controller中就是controller裏面的方法都以json格式輸出,不用再寫什麽的配置了!
2,單元測試的情況,打開的src/test/下的測試入口,編寫簡單的http請求來測試;使用mockmvc進行,利用MockMvcResultHandlers.print()打印出執行結果。
@RunWith(SpringJUnit4ClassRunner.class) @SpringApplicationConfiguration(classes = MockServletContext.class) @WebAppConfiguration public class HelloWorldControlerTests { private MockMvc mvc; @Before public void setUp() throws Exception { mvc = MockMvcBuilders.standaloneSetup(new HelloWorldController()).build(); } @Test public void getHello() throws Exception { mvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON)) .andExpect(MockMvcResultMatchers.status().isOk()) .andDo(MockMvcResultHandlers.print()) .andReturn(); } }
3,我們常常在項目中會使用filters用於錄調用日誌、排除有XSS威脅的字符、執行權限驗證等等。Spring Boot自動添加了OrderedCharacterEncodingFilter和HiddenHttpMethodFilter,並且我們可以自定義Filter。
@Configuration public class ApiFilter extends WebMvcConfigurerAdapter { public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new HandlerInterceptorAdapter() { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) { //處理token等邏輯 } }).addPathPatterns("/api/**"); } }
4,thymeleaf模板
與其它模板引擎相比,Thymeleaf最大的特點是能夠直接在瀏覽器中打開並正確顯示模板頁面,而不需要啟動整個Web應用。
註意,由於Thymeleaf使用了XML DOM解析器,因此它並不適合於處理大規模的XML文件。
Spring Boot學習總結一