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(上)

posted @ 2018-05-30 16:18  信念是基石  阅读(224)  评论(0编辑  收藏  举报
跟随粒子特效