常用的注解
容器注解
-
@SpringBootApplication:这个注解是启动类的注解,包含了@ComponentScan、@Configuration和@EnableAutoConfiguration注解
-
@ComponentScan:主要就是定义扫描的路径从中找出标识了需要装配的类自动装配到spring的bean容器中,
@ComponentScan(value="com.ay")
-
@Configuration:用于定义配置类,等价于xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法,相当于下面这种文件
<beans .....>
<bean id="xxx" class="xxx"></bean>
</beans>
- @EnableAutoConfiguration:启用Spring应用程序上下文的自动配置
- @Component:将实例注入到spring容器中,类似于
<bean id="" class=""/>
具体分层有@Controller,@Service,@Repository - @Bean:用@Bean标注方法等价于XML中配置的bean
- @Value:给变量注入Spring boot application.properties配置的属性的值,
@Value("${name}")
MVC注解
- @RestController:注解是@Controller和@ResponseBody的合集
- @ResponseBody:以json格式直接返回数据
- @RequestMapping:匹配请求的url,可根据url和请求的方法进行匹配,
@RequestMapping(value = "/modifyGet.do", method=RequestMethod.POST)
- @PathVariable:取url的值,
@RequestMapping(value = "/del/{id}"),
参数使用@PathVariable("id") Long id
可以将url的值映射到变量中 - @RequestParam:取得请求参数,
@RequestParam("userId") Long userId
- @RequestBody:这个注解是将http请求头上的值绑定到参数上,所以只能是POST请求并且多用于JSON格式请求数据,
@RequestBody Girl girl
JSON的字段与实体类字段相同时将自动映射。这个注解不像@RequestParam可以一个参数绑定一个值,即@RequestBody String name,@RequestBody Integer age
是不可行的,会报404,即一个方法只能有一个@RequestBody。如果是@RequestBody String name,Integer age
这样子虽然不会报错,但是JSON数据将都会映射进name属性,做不到对应映射。
装配注解
- @Autowired:自动注入,将spring容器中的bean注入到变量中,按类型进行注入,实现类多时可以结合这个注释
@Qualifier("personDaoBean")
- @Resource:与Autowired类似,按name进行注入
AOP注解
- @Aspect:用于表示切面类,与@Component一起使用
- @Pointcut:定义切入点,
@Pointcut("execution(public * com.ay.demoboot.controller.GirlController.*(..))")
- @Around:对切入点前后进行增强
- @Before:对切入点之前进行增强
- @After:对切入点之后进行增强
事务注解
异常注解
- @ControllerAdvice:包含@Component。可以被扫描到。统一处理异常类的标识。
- @ExceptionHandler:用在方法上面匹配异常
JPA注解
- @Entity:经常与@Table(name=“xxx”)合用指定表名,类名和表名相同时,可省略。
- @Id:主键
- @GeneratedValue:主键的生成策略,默认为
@GeneratedValue(strategy = GenerationType.AUTO)
- @Column:表字段与列名的对应关系,同名时可省略。
- @Transient:表示该字段不是数据库的字段,ORM框架做映射时会将它忽略。