SpringBoot中的Mapper注解和Repository注解
springboot常用注解有@SpringBootApplication;@Repository;@Service;@RestController;@ResponseBody。
该注解也是配合 @Component 这类注解使用,用于强制初始化其他bean 上面的代码指定,初始化bean “userAction之前需要先初始化“aa”和“bb”两个bean,但是使用了@Lazy(true)所以spring容器初始化时不会初始化userAction” bean。
springboot三大核心注解是@Configuration,@EnableAutoConfiguration和@ComponentScan。提到@Configuration就要提到他的搭档@Bean,使用这两个注解就可以创建一个简单的spring配置类,可以用来替代相应的xml配置文件。
这个注解就是 @Configuration 注解的变体,只是用来修饰是 Spring Boot 配置而已,或者可利于 Spring Boot 后续的扩展。
:##@SpringBootApplication 标识该类为SpringBoot项目启动类。
SpringBoot项目主启动类上常用的注解释意
1、:##@SpringBootApplication 标识该类为SpringBoot项目启动类。
2、这是 Spring Boot 最最最核心的注解,用在 Spring Boot 主类上,标识这是一个 Spring Boot 应用,用来开启 Spring Boot 的各项能力。
3、springboot常用注解有@SpringBootApplication;@Repository;@Service;@RestController;@ResponseBody。
@MapperScan注解需要在pom.xml导入什么
1、如果在接口上@Mapper,然后再在 xml中的namespace指向mapper,那么spring就能动态生成一个Mapper的bean,然后你在serviceImpl中的 Autowired private XXXMapper xxmapper;就会被这个bean注进去。
2、注意:如果不想每次都在mapper接口上添加@Mapper注解,可以在主启动类上通过添加@MapperScan注解来批量扫描指定包下的所有mapper接口。
3、包扫描路径是否正确 检查mybatis的配置是否正确,需要配mapperLocations和typeAliasesPackage属性。
4、然后再根据mapper中方法名去找mapper.xml中对应的id的方法。
5、这有一点不好的地方,当我们使用Mapper接口加注解来定义当前Mapper的操作信息时,我们还需要定义一个与它对应的Mapper.xml文件。
@MapperScan注解
1、property name=beginningDelimiter value=`/ 在SpringBoot中集成MyBatis,可以在mapper接口上添加@Mapper注解,将mapper注入到Spring,但是如果每一给mapper都添加@mapper注解会很麻烦,这时可以使用@MapperScan注解来扫描包。
2、mapperscan 一般在启动类的时候就会生效,来进行mapper包下接口的扫描,在编译后生成对象的实现类,还可以在mybatis配置文件中使用。
3、当你只有Mapper的时候,IDEA会报错,显示无法自动装配,就是Autowired无效,但是运行的时候是可以运行的。当你只有Repository的时候,在启动类中添加@MapperScan(xxxx.xxxx.dao)的自动扫描配置,也可以运行。
4、MybatisAutoConfiguration还有一个静态内部类,@Import了AutoConfiguredMapperScannerRegistrar类,但是有@ConditionalOnMissingBean,即spring容器中不存在MapperFactoryBean,MapperScannerConfigurer的实例。
5、包扫描路径是否正确 检查mybatis的配置是否正确,需要配mapperLocations和typeAliasesPackage属性。
6、然后再根据mapper中方法名去找mapper.xml中对应的id的方法。