SpringMVC常见注解
@PathVariable Integer userId
将URL中占位符参数绑定到控制器处理方法的入参中
//假设访问的路径是 localhost:8080/kuro-p/blog?number=23
@RequestMapping(value="/kuro-p/blog")
public String blog(@PathVariable Integer number){
return "blog/blog_" + number;
}
@RequestParam( value="name", required=false ) String wrap
参数绑定:require=false 表示前端对 name 这个参数值可传可不传。不传就赋值null给wrap,若传,则将name对值赋值给wrap
require=true 表示前端这个 name 的参数必须传递,否则会报错(默认require=true)
此注释使用方法:
public void sayHi( @RequestParam(value="name", required=true) String wrap ){ System.out.println(wrap); }
@RequestMapping( value="/Home/index", method=RequestMethod.GET )
public void sayHi( ){
System.out.println("Hello there");
}
执行函数:访问 localhost:xxxx/Home/index时,就会调用sayHi方法
method没有默认值,即以任何形式请求(GET/POST/PUT/DELETE)都可以访问的到
@Auth //登录权限限制
a. 如果方法没有使用该注解,会认为没有作权限控制,任何人可以访问
b. 如果方法使用了该注释,用户在没登录的状态下访问,会返回一个403(权限不足)
c. 如果方法标注了具体需要某种权限,如@Auth("authority"),则要求访问的用户必须有这种权限,否则返回403(权限不足)
@RequestBody
将HTTP请求正文转换为合适的HttpMessageConverter对象
@ResponseBody
将内容或者对象作为HTTP响应正文返回,并调用适合HttpMessageConverter的Adapter转换对象写入输入流。
用了此注解的话,多数表明这是个Ajax接口。
若Ajax接口没有加 @ResponseBody ,则报404错误。
使用场景:一般在异步获取数据(Ajax)时使用,在使用@RequestMapping后,返回值通常解析为跳转路径,加上@responsebody后返回结果不会被解析为跳转路径,而是直接写入HTTP response body中。比如异步获取json数据,加上@responsebody后,会直接返回json数据。查看详细
@Component( 'abc' ) //声明组件
声明后的组件,在其他地方调用只需要@Resource( name="abc")。当然,相关头文件也是要引入的。
@Resource( name="abc" )
private ABC abc ; //ABC为abc的类名,若引进的资源名与声明的变量名相同,则可以去掉小括号及其里边的内容
引入声明后的组件,使用时 abc.方法名() 即可
@RequestMapping( value="/produces", produces="application/json")
produces表示该处理方法将产生json格式的数据,此时根据请求头的Accept进行匹配
@Produces
用于定义方法的响应实体的数据类型
@Active( value="XXX,xxx" )
数据绑定(将其他数据绑定过来,绑定所需要的前端样式)控制页面高亮
@Test
测试用例
JDK自带注解:
@Override 继承接口,将接口中的方法重写(不写也可以),写上有以下好处:
编译器验证@Override下面的方法名是否是父类中所有的,如果不是则报错。例如,如果没写@Override,而子类中的方法名写错了,这时编译器是可以编译通过的,因为编译器会认为这个方法是子类中增加的方法。
@Override
public void onCreate(Bundle savedInstanceState)
{…….}
这种写法是正确的,如果写成:
@Override
private void oncreate(Bundle savedInstanceState)
{…….}
则编译器会报错
( Override的方法类型不能是private的,是public的,private是子类自己的方法,不能算是从父类上继承来的 )
@Deprecated 已过时的,不建议使用的方法(防止方法删除后,其他类的引用报错)
@SuppressWarnings 一定要用过时的方法,忽略过时@SuppressWarnings("deprecation")