1 @Reference 和@Autowired
@Reference是dubbo的注解,也是注入,他一般注入的是分布式的远程服务的对象,需要dubbo配置使用。
第二个 SpringBoot项目中常用。简单来说就是引入由Spring容器管理的bean。
@Reference注入的是分布式中的远程服务对象,@Resource和@Autowired注入的是本地spring容器中的对象。
2 @Repository的作用:
这是因为该注解的作用不只是将类识别为Bean,同时它还能将所标注的类中抛出的数据访问异常封装为 Spring 的数据访问异常类型。 Spring本身提供了一个丰富的并且是与具体的数据访问技术无关的数据访问异常结构,用于封装不同的持久层框架抛出的异常,使得异常独立于底层的框架。
@Repository和@Controller、@Service、@Component的作用差不多,都是把对象交给spring管理。@Repository用在持久层的接口上,这个注解是将接口的一个实现类交给spring管理。
1、spring配置文件中配置了MapperScannerConfigurer这个bean,它会扫描持久层接口创建实 现类并交给spring管理。
2、接口上使用了@Mapper注解或者springboot中主类上使用了@MapperScan注解,和MapperScannerConfigurer作用一样。
注:不使用@Repository注解,idea会报警告,提示找不到这个bean,直接忽略即可。
IDEA在 userMapper 处报错,因为找不到注入的对象,因为类是动态创建的,但是程序可以正确的执行。
为了避免报错,可以在 dao 层 的接口上添加 @Repository 注
3 AUTO 自增策略
MyBatis-Plus默认的主键策略是:ASSIGN_ID (使用了雪花算法)
需要在创建数据表的时候设置主键自增
实体字段中配置 @TableId(type = IdType.AUTO)