1、父工程pom.xml文件
1:父工程的maven坐标;
2:packaging使用pom;
原因:在Spring Cloud微服务工程中,通常会采用多模块的方式进行开发,父工程的pom文件中的packaging标签设置为pom,是因为父工程本身并不会生成任何可执行的jar或war包,它只是一个管理子模块的pom文件,用于管理子模块的依赖和版本号等信息。因此,将packaging标签设置为pom,表示该pom文件只是一个pom文件,不会生成任何可执行的包。这样,子模块就可以继承父工程的依赖和版本号等信息,方便管理和维护。
3:modules标签:用于聚合所有的子模块。
作用:在父工程的pom.xml文件中,modules标签用于指定所有子工程的名称和路径,它的作用是告诉Maven哪些子工程需要被编译、测试、打包和部署。当我们在父工程中执行Maven命令时,Maven会自动遍历所有子工程,并按照指定的顺序依次执行相应的操作。
4:管理各个依赖的版本,实现一处修改,处处修改。
5:用于管理各个依赖,当子模块继承之后,这个标签的作用就是锁定版本,且子模块的groupId和version都不用写。
dependencyManagement标签,该标签的作用是管理子模块的依赖版本号,即在父工程中声明的依赖版本号会被子模块继承,子模块可以不用显式地声明版本号,直接引用依赖即可。
这样做的好处是,可以统一管理依赖版本号,避免不同模块使用不同版本的依赖导致的冲突问题。同时,也可以减少子模块的pom文件中的冗余信息,提高代码的可读性和可维护性。
子工程中则只需要写artifactId,然后依赖版本可以继承父工程的,也可以自己显式指定。
2、mybatis相关配置
2.1 配置文件:
在 Spring Boot 工程中,使用 MyBatis-Plus 时,可以在 application.yml 或 application.properties 配置文件中配置 mapper-locations 属性,用于指定 MyBatis Mapper XML 文件的位置。
例如,mapper-locations: classpath:mapper/*.xml 表示 MyBatis-Plus 会在 classpath 下的 mapper 目录中查找所有的 Mapper XML 文件,并将它们加载到 MyBatis 中。
这样做的好处是,可以将 Mapper XML 文件与 Java 代码分离,使代码更加清晰易懂,同时也方便维护和修改。
2.2 Mapper接口的注解
@Mapper注解和@Repository注解,@Mapper注解是MyBatis提供的,用于标识Mapper接口的,而@Repository注解是Spring提供的,用于标识数据访问层的组件的。在SpringBoot中,@MapperScan注解会扫描指定包下的所有Mapper接口,并将其注册为Spring的Bean,而@Mapper注解则是标识Mapper接口的,用于让MyBatis扫描并生成Mapper接口的实现类。而@Repository注解则是标识数据访问层的组件的,用于让Spring扫描并注册为Bean。
因此,如果在Mapper接口上同时使用@Mapper注解和@Repository注解,可以让MyBatis和Spring都能够扫描并注册该Mapper接口。
一般建议直接使用@Mapper即可。
2.3 @Service
在Spring Boot工程中,通常建议将@Service注解写在实现类上,而不是接口上。这是因为@Service注解是用来标识一个类为Spring的服务层组件,而不是接口。当Spring扫描到@Service注解时,它会创建一个实现类的实例,并将其注册到Spring的应用程序上下文中。因此,将@Service注解放在实现类上更符合Spring的设计思想。
另外,如果将@Service注解放在接口上,可能会导致多个实现类被注册到Spring的应用程序上下文中,从而引起歧义。因此,建议将@Service注解放在实现类上,以确保Spring能够正确地识别和注册服务层组件。