@Controller:用于标记在一个类上,使用它标记的类就是一个SpringMvc Controller对象,分发处理器会扫描使用该注解的类的方法,并检测该方法是否使用了@RequestMapping注解。
@RestController:相当于@ResponseBody + @Controller合在一起的作用,则Controller中的方法无法返回jsp页面,或者html,配置的视图解析器,此外,InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。
@ResponseBody 将方法返回值添加到响应正文中
@RequestMapping:用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径
@GetMapping:相当于@RequestMapping(method = RequestMethod.GET)的缩写
@PostMapping
注:Http 请求方式:
@Service:将自动注册到Spring容器,不需要再在applicationContext.xml文件定义bean了, spring容器中的bean进行实例化,也就是等同于new操作。
@Transactional:由spring处理,来保证事务的原子性,即是方法里面对数据库操作,如果失败则spring负责回滚操作,成功则提交操作。其中事物的四个特性如下:
@Async:异步方法;这些方法将在执行的时候,将会在独立的线程中被执行,调用者无需等待它的完成,即可继续其他的操作。
@Validated:校验数据,如果数据异常则会统一抛出异常,方便异常中心统一处理
@RequestBody 用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的) ,通过复杂对象的Get/Set方法设置对应的属性。前端不能使用GET方式提交数据,而是用POST方式进行提交,最多只能有一个。
@RequestParam(XXX):接收请求头中对应的参数,通常用于GET请求。
@PathVariable:接收请求路径中占位符的值
@Aspect:注解在类上,定义切面,不会被 Spring 当做组件 bean,被增强处理。
@Pointcut 定义切入点,从而在增强处理中重用切点表达式。
@Before:在目标方法执行前进行增强处理
@AfterReturning:在目标方法完成后植入,可访问到目标方法的返回值,但不可更改。
@AfterThrowing:处理程序中未处理的异常。
@After:不管目标方法如何结束(正常返回,遇到异常),都会被植入,
@Around:可在目标代码之前或后面植入增强动作,可决定目标方法在什么时候,如何执行,也可阻止目标方法执行。可改变目标方法参数,返回值。需要在线程安全的情况下。