天天看点

【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      

谢谢大家的分享