一:@Mapper和@MapperScan

1、@Mapper

@Mapper 将接口交给Spring进行管理,为这个接口生成一个实现类,让别的类进行引用、不再写mapper映射文件。

@Mapper //该注解将接口变成Spring容器中的一个bean
public interface UserMapper {

    public List<User> findAll();
}
2、@MapperScan

指定要扫描的Mapper类的包的路径,扫描mybatis Mapper接口类,将接口变成Spring容器的一个bean,让别的类可以进行引用,其实和@Mapper是一样的,只是@MapperScan使用更好,更全面。

@SpringBootApplication
@MapperScan(basePackages = "com.itydf.springboot.mapper")
public class SpringbootApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootApplication.class, args);
    }

}
总结

@Mapper:是对单个类的注解、是单个操作、这种方式要求每一个mapper类都需要添加此注解,麻烦
@MapperScan 是对整个包下的所有的接口类的注解,是批量的操作。

二:@Autowired和@Resource

@Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上
@Resource默认是按照名称装配注入的,只有当找不到与名称匹配的bean才会按照类型来装配注入;
@Autowired默认是按照类型装配注入的,如果想按照名称来转配注入,则需要结合@Qualifier一起使用;
@Resource注解是由JDK提供,而@Autowired是由Spring提供

三:@RequestBody和@ResponseBody

1、@ResponseBody和@RequestBody的内部实现是同样的原理(封装请求和封装响应)
2、@ResponseBody注解,不会走视图解析器,不会返回页面,直接返回的json数据
3、@RequestBody 使用json传递数据、把json数据封装到对应对象里面、前端如果发送GET请求、后台使用GET无法请求到、必须改成POST请求、后台POST接收

四:@PathVariable和@RequestParam

1、@PathVariable :从路径里面去获取变量:如 localhost:8080/user/id/1

2、@RequestParam :是从请求里面获取参数 localhost:8080/user?id=1

总结: PathVariable一般用于get和delete请求,RequestParam一般用于post请求

五:@Controller和@RestController

1、@RestController注解相当于@ResponseBody + @Controller合在一起的作用。返回json数据不需要在方法前面加@ResponseBody注解了,但使用@RestController这个注解,就不能返回jsp,html页面,视图解析器无法解析jsp,html页面

2、使用@Controller 注解,在对应的方法上,视图解析器可以解析return 的jsp,html页面,并且跳转到相应页面、若返回json等内容到页面,则需要加@ResponseBody注解

六:@SpringBootApplication

它是Spring Boot 的核心注解、主要组合包含了以下 3 个注解:

1、@SpringBootConfiguration:组合了 @Configuration 注解,实现配置文件的功能。

2、@EnableAutoConfiguration:打开自动配置的功能,也可以关闭某个自动配置的选项,如关闭数据源自动配置功能: @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })。

3、@ComponentScan:Spring组件扫描。

七:@Component

泛指组件,当组件不好归类的时候(不属于@Controller、@Services等的时候),我们可以使用这个注解进行标注。

八:@ControllerAdvice

特别实用、使用 @ControllerAdvice 能够实现全局异常处理,全局数据绑定、全局数据预处理。

九:@Repository

它用于将数据访问层 (DAO 层 ) 的类标识为 Spring容器管理的一个bean,@Repository注解是spring的注解,主动标识当前类要交给spring容器管理(相当于@Component注解)

十:@Transactional

在Spring中,事务有两种实现方式,分别是编程式事务管理和声明式事务管理两种方式

1、编程式事务管理: 编程式事务管理使用TransactionTemplate或者直接使用底层的PlatformTransactionManager。对于编程式事务管理,spring推荐使用TransactionTemplate。

2、声明式事务管理: 建立在AOP之上的。其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个事务,在执行完目标方法之后根据执行情况提交或者回滚事务,通过@Transactional就可以进行事务操作,更快捷而且简单。推荐使用

十一:@Configuration

指出该类是 Bean 配置的信息源,相当于XML中的,一般加在主类上,标注此类为一个配置类。