相关注解(spring+springmvc)

来源:互联网 发布:java web部署到tomcat 编辑:程序博客网 时间:2024/06/08 04:59

使用注解之前需开启自动扫描功能:

<context:component-scanbase-package="cn.test"/>

spring的注解体现了spring的特性:IOC(控制反转)和AOP(面向切面编程),例如AOP:@Aspect @Before @After

注解

作用域

说明

声明bean

@Component

注解在类上,可以作用在任何层次

泛指组件,当组件不好归类时使用

@Service

注解在类上

业务层组件

@Controller

注解在类上

控制层组件,与@Component作用相同,注意与springmvc中@Controller的区别

@Repository

注解在类上

数据访问组件,dao组件

注入bean

@Autowired

注解在成员变量、方法、构造函数、类,默认按类型匹配

如果想通过名称匹配使用@Qualifier,例如:

@Autowired

@Qualifier(“testBean”)

存在多个实例也可使用该注解

@Resource

注解在成员变量

匹配优先级:名称-》类型

@Inject

JSR-330提供的注解

 

sprngmvc声明

@Controller

注解在类上,与前面spring中的@Controller有区别

在springmvc中声明的@Controller,Dispatcher Servlet扫描该注解并将web请求映射到@RequestMapping方法上

@RequestMapping

注解在类或方法上

web映射逐级匹配

1、可以指定http请求的方法get或post:

@RequestMapping(value=”/test” method=RequestMethod.POST)

2、可以在路径中设置变量:

@RequestMapping(value=”/test/{id}”)

void test(@PathVariable(“id”) long id){…}

3、value可以是多个

@ResponseBody

注解在方法上

1、将返回数据写入到response body区,通常用来返回json或xml数据

2、等同于response.getwriter.write(…)

@RequestBody

注解在方法参数上

例如:

void test(@RequestBody String body){…}

@PathVariable

注解在方法参数上

 

@RestController

等同于@Controller+@ResponseBody

使用于实现Rest Api的控制器

@RequestParam

注解在参数上

 

@HttpEntity

 

 

@ModelAttribute

 

 

@InitBinder

 

 

@ExceptionHandler

 

 

@ControllerAdvice

 

 

@EnableWebMvc