天天看點

【springboot】javaEE開發的颠覆者SpringBoot實戰

springMVC:      
    MVC:Model資料模型(包含資料的對象)  View視圖  Controller控制器      
    三層架構:Presentation tier展現層  Application tier應用層  Data tier資料通路層


注解:      
    聲明普通bean時,使用component、service、repository、controller等同,都組合了Compoment元注解
    controller:聲明為spring的一個bean,Dispatcher Servlet自動掃描此注解的類,并将web請求映射到注解了@RequestMapping的方法上
        在spring MVC聲明控制器bean隻能用controller


    requestMapping:映射web請求(通路路徑和參數)、處理類和方法,
    responseBody:将傳回值放在response體内,而不是傳回頁面
    requestBody:容許request參數在request體中
    pathVariable:接收路徑參數


    controllerAdvice:為controller添加全局配置,類上
        方法上添加ExceptionHandler(Exception.class)處理這個異常
        InitBinder設定WebDataBinder(綁定前台請求參數到Model)
            1、對象初始化
            2、類型轉化:前台傳到controller裡的值是String類型的,int、data、bean需要轉化
                
                
                  @InitBinder
                    protected void initBinder(WebDataBinder binder) {
                        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
                        dateFormat.setLenient(false);
                        binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, false));
                    }


        ModelAttribute:綁定鍵值對到Model中,讓全局的@RequestMapping都獲得此處設定的鍵值對
            單獨的controller中,注解在方法上通路此controller先按順序走這些方法,
            有傳回值,傳回值作為value儲存到隐含的Model中,key為 “傳回值首字母小寫”,可指定(value="")
                https://blog.csdn.net/lovesomnus/article/details/78873089
                https://blog.csdn.net/qq924862077/article/details/53924606
                https://blog.csdn.net/harry_zh_wang/article/details/57329613
                https://www.cnblogs.com/Terry-Wu/p/8134732.html


        ViewController:簡化單純界面跳轉代碼
            

        springmvc路徑中帶.的話會有些問題,springboot貌似沒有這個問題,不過還是了解下吧
            configurePathMatch:
                @Override
                    publicvoid configurePathMatch(PathMatchConfigurer configurer) {
                        configurer.setUseSuffixPatternMatch(false)
                                   .setUseTrailingSlashMatch(true);
                    }


    實體類屬性字段
        @NotEmpty 用在集合類上面;不能為null,而且長度必須大于0
        @NotBlank 用在String上面;隻能作用在String上,不能為null,而且調用trim()後,長度必須大于0
        @NotNull 用在基本類型上;不能為null,但可以為empty
          
jackson:支援對象和json、xml轉換
     @RequestMapping(value="/get",produces={"application/json;charset=UTF-8"})傳回json
     @RequestMapping(value="/get",produces={"application/xml;charset=UTF-8"})傳回xml      

謝謝大家的分享