1. 程式人生 > >Spring Boot學習總結一

Spring Boot學習總結一

請求 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學習總結一