1.Spring
@Component : 相当于在spring的xml配置文件中写了一个bean标签
属性 : value用于指定bean的id,若是不写,默认为当前类名
此注解衍生出三个注解
- @Controller : 用于表现层
- @Service : 用于业务层
- @Repository : 用于持久层,将接口的一个实现类交给spring管理,同时它还能将所标注的类中抛出的数据访问异常封装为 Spring 的数据访问异常类型。
为什么有时候我们不用@Repository来注解接口,我们照样可以注入到这个接口的实现类呢?
1、spring配置文件中配置了MapperScannerConfigurer这个bean,它会扫描持久层接口创建实现类并交给spring管理。
2、接口上使用了@Mapper注解或者springboot中主类上使用了@MapperScan注解,和MapperScannerConfigurer作用一样。
@Autowired : 自动注入
@Value : Spring 通过注解获取*.porperties文件的内容,除了xml配置外,还可以通过@value方式来获取。使用方式必须在当前类使用@Component,xml文件内配置的是通过pakage扫描方式,
@Configuration : 标注在类上,相当于把该类作为spring的xml配置文件中的< beans >命名空间,作用为:配置spring容器(应用上下文)
// @Configuration注解的spring容器加载方式,用AnnotationConfigApplicationContext替换ClassPathXmlApplicationContext
ApplicationContext context = new AnnotationConfigApplicationContext(这里写被@Configuration注解的类名.class);
@Bean : 把当前方法的返回值作为bean对象存入spring容器中
属性 : name : 用于指定bean的id。默认是当前的方法名
@ComponentScan : 指定创建容器时要扫描的包,用于替换xml文件中的
<context : compoet-scan base-package=" 要扫描的包所在位置 ">
@Transactional : 是声明式事务(声明下需要进行事务控制的实现类或者方法,让spring容器自行开启事务的开启,提交,回滚等操作)管理编程中使用的注解,对事务进行控制。
2.MVC
@RequestMapping : 建立请求url和控制器方法的对应关系
@RestController : Spring4之后新加入的注解,是@ResponseBody和@Controller的组合注解。
@RequestBody : 将请求体中的参数转化为json字符串的形式接受
@RequestParam : 当请求的参数名称与controller的业务方法参数名称不一致时通过此注解绑定。
@PathVariable : 用于接受url地址栏参数占位符中的内容