@MapperScan("mapper/baseinfo/write/**/*.xml") 解析这句中**和*的区别
时间: 2023-11-26 21:06:38 浏览: 30
@MapperScan("mapper/baseinfo/write/**/*.xml")中的*和**都是通配符,用于匹配文件路径中的任意字符。其中,*匹配单个字符,**匹配多级目录。具体来说,**表示匹配任意层数的子目录,而*只能匹配当前目录下的文件或文件夹。因此,这句话的意思是扫描mapper/baseinfo/write目录及其子目录下所有的xml文件。
相关问题
mapper/**/*.xml
`mapper/**/*.xml`是一个通配符表达式,用于匹配指定目录下的所有子目录中的xml文件。在这个表达式中,`mapper`表示目录名,`**`表示匹配任意层级的子目录,`*.xml`表示匹配任意文件名以.xml结尾的文件。
以下是两种配置文件中使用`mapper/**/*.xml`的例子:
1. 在pom.xml中的配置:
```xml
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
```
2. 在application.yml中的配置:
```yaml
mybatis:
mapper-locations: classpath:mapper/**/*.xml
```
这两个配置文件中的`mapper/**/*.xml`都表示匹配指定目录下的所有子目录中的xml文件。
classpath:com/**/mapper/**/*Mapper.xml 是否正确
classpath:com/**/mapper/**/*Mapper.xml 是一种用于指定Java类路径的格式,用于在Java应用程序中加载指定的Mapper XML文件。这个路径格式使用了通配符`**`来匹配任意目录层级,`*`来匹配任意文件名。
所以,classpath:com/**/mapper/**/*Mapper.xml 是一个合法的路径格式,它可以匹配com包下的任意子包中的mapper目录下的任意文件名以Mapper.xml结尾的文件。