Spring常用注解
一. Spring常用注解
1.1 声明bean的注解
@Component
:定义bean;
@Controller
:控制层;
@Service
:业务层;
@Repository
:数据访问层;
@Bean
:定义第三方的bean,即当前方法的返回值是一个bean;
1.2 注入bean的注解
@Autowired
:由Spring提供;
@Value
:注入简单数据类型,如配置文件等;
@Resource
:由JSR-250提供;
@Inject
:由JSR-330提供;
1.3 配置类相关注解
@Configuration
:声明当前类为配置类;
@ComponentScan
:对选定范围内的Bean进行扫描;
@Import
:导入其他配置类 ;
@Bean
:注解在方法上,声明当前方法的返回值为一个bean,替代xml中的方式
1.4 切面(AOP)相关注解
Spring支持AspectJ的注解式切面编程;
@PointCut
:声明切入点;
@Before
:在原始方法执行之前执行;
@After
:在原始方法执行之后执行;
@Around
:在原始方法执行前后都执行;
@Aspect
:声明一个切面;
@EnableAspectJAutoProxy
:开启Spring对AspectJ代理的支持;
1.5 事务
@Transactional
:可以写在方法上,也可以写在类/接口上!(整个类/接口中的方法都开启事务!)
二. SpringMVC常用注解
2.1 开启MVC
@EnableWebMvc
:在MVC配置类中开启Web MVC的配置支持,其能自动对Json序列化反序列化,
@Controller
:控制层;
@RestController
:合并@ResponseBody+@Controller;
2.2 接收参数
@RequestMapping
:用于映射web请求,包括访问路径和参数;
@RequestParam
:接受非json格式的数据,将请求头中的参数并赋给形参;
@RequestBody
:一般是POST请求的Json数据,接收请求体中数据并赋给形参;
@PathVariable
:从路径中提取参数;
合并:
@RequestMapping+POST=@PostMapping
;
同理@PutMapping
、@DeleteMapping
、@GetMapping
;
2.3 响应参数
@ResponseBody
:将当前方法return的返回值放入HTTP响应报文的响应体,返回给前端;如果是对象就自动序列化为Json;
2.4 异常处理器
@RestControllerAdive
:代表当前类是异常处理器;
@ExeceptionHandler
:在异常类中写一个方法处理异常;