zoukankan      html  css  js  c++  java
  • Spring&Spring MVC 注解详解(集)

    1、【Spring MVC】@RequestMapper("")

    @RequestMapping 是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径;用于方法上,表示在类的父路径下追加方法上注解中的地址将会访问到该方法

    例如:

    @Controller
    @RequestMapping(value = "/login")
    public class TestController extends BaseController {
    
        private final Logger log = LoggerFactory.getLogger(TestController.class);
    
    //    @ResponseBody    //将return的返回值返回到jsp界面
    
        @RequestMapping("/test")
        public String test(ModelMap model) {
            String xx = "$$$$$$$$$$$$$";
            model.put("testURL", xx);
            log.error("test:" + xx);
            return "login/test";
        }
    }
    View Code

    其中当URL=/login/test时 系统就会访问TestController类下面test方法,

    在本地访问 http://localhost:8080/login/test就会返回(跳转)到“ login/test.jsp ”页面。

    1、 value, method;
    value:     指定请求的实际地址,指定的地址可以是URI Template 模式(后面将会说明);
    
    method:  指定请求的method类型, GET、POST、PUT、DELETE等;
    
     
    
    2、 consumes,produces;
    consumes: 指定处理请求的提交内容类型(Content-Type),例如application/json, text/html;
    
    produces:    指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回;
    
     
    
    3、 params,headers;
    params: 指定request中必须包含某些参数值是,才让该方法处理。
    
    headers: 指定request中必须包含某些指定的header值,才能让该方法处理请求。
    深入了解+1

    2、【Spring MVC】@ResponseBody

    @ResponseBody注解标识该方法返回的结果直接写入HTTP响应正文(ResponseBody)中,一般在异步获取数据时使用,比如;

    save方法保存完毕数据之后返回保存成功的信息。

    3、【Spring MVC】@RequestBody

    @RequestBody注解则是将HTTP请求正文插入到方法中,使用合适的HttpMessageConverter将请求体写入某个对象中去

    @ResponseBody
    public Person login(@RequestBody Person person) {   // 将请求中的 datas 写入 Person 对象中
        return person;    // 不会被解析为跳转路径,而是直接写入 HTTP 响应正文中
    }

    这个知识点同样的需要了解的是页面异步请求的方式

    function login() {
        var datas = json 文本数据格式 可以采用序列化的方式进行生成 也可以自己进行拼凑; 
      /*
      $("#fm").serialize(),
      通过<form id="fm" class="form-horizontal">选择器id 查找到控件,调用函数进行序列化
      这是jQuery ajax的序列化 注意:元素必须使用 name 属性,通过name属性来进行值与属性的对应
      */
        $.ajax({
            type : 'POST',
            contentType : 'application/json',
            url : "${pageContext.request.contextPath}/person/login",
            processData : false,
            dataType : 'json',
            data : datas,
            success : function(data) {
                alert("id: " + data.id + "name: " + data.name + "status: "+ data.status);
            },
            error : function() {
                alert('Sorry, it is wrong!');
            }
        });
    };

    4、【Spring MVC】@PathVariable

    @PathVariable注解,其用来获取请求路径(url )中的动态参数

    @PathVariable用于将请求URL中的模板变量映射到功能处理方法的参数上。//配置url和方法的一个关系@RequestMapping("login/{id}")

    例如:login/56845/

    @RequestMapping("/zyh/{type}")
      public String zyh(@PathVariable(value = "type") int type) throws UnsupportedEncodingException {
            。
            。
            。
    }

    5、【Spring MVC】@RequestParam

    @RequestParam注解是SpringMVC后台控制层获取参数的方式主要有两种之一【一种是request.getParameter("name"),另外一种是用注解@RequestParam直接获取】

    @RequestParam注解中三个重要参数

    value:参数名字,即入参的请求参数名字,如username表示请求的参数区中的名字为username的参数的值将传入;

    required:是否必须,默认是true,表示请求中一定要有相应的参数,否则将报404错误码;

    defaultValue:默认值,表示如果请求中没有同名参数时的默认值,

    6、【Spring】@Component(不推荐使用)

    @Component注解:标准一个普通的spring Bean类

    7、【Spring】@Controller

    @Controller注解标注一个控制器组件类

    8、【Spring】@Service

    @Service注解标注一个业务逻辑组件类

    9、【Spring】@Repository

    @Repository注解标注一个DAO组件类

    10、【Spring】@Resource

    @Resource位于java.annotation包下,来自于java EE规范的一个annotation。使用该annotation为目标bean指定协作者Bean。 
    @Resource详细用法见经典javaEE企业应用实战。 
    @Resource有一个name属性,在默认情况下,spring将这个值解释为需要被注入的Bean实例的名字。

    @Resource也可以直接修饰Filed, 
    如果@Resource修饰Field,这时候连该属性的setter方法就不需要了。

    使用@Resource可以省略name属性。 
    修饰方法时,省略name属性,则该name值是该setter方法去掉前面的set字符串,首字母小写后得到的子串。 
    修饰Field时,省略name属性,则该name与该Field同名。

    参考:spring mvc常用注解的说明【相对而言比较深入】

    参考:注解和注释以及Spring和SpringMVC常用的注解【Spring 方面】

    【杂谈】

    1、Spring MVC  在web.xml中url-pattern属性用于开发者选择哪些路径是需要让Spring MVC来处理的-|-详情请见:Spring:基于注解的Spring MVC(上)

    痛苦预示着超脱
  • 相关阅读:
    从键盘输入两个数字,根据订单或大或小的输出
    软考路(3)——数据流图的尖
    HDU 3988 Harry Potter and the Hide Story(数论-整数和素数)
    排序算法门外汉理解-Shell排序
    流量计算-Jstorm提交Topology过程(下一个)
    CentOS在安装配置 Ngnix_tomcat_PHP_Mysql
    C++基于该模型模板包括节目外实例
    同ListView该接口无法通过手势滑动左右切换界面问题解决方法
    用彩虹表破解MD5、LM Hash等复杂加密密码
    logstash
  • 原文地址:https://www.cnblogs.com/supperlhg/p/9111563.html
Copyright © 2011-2022 走看看