路径匹配的通配符

82 阅读1分钟

1. ** 的作用

  • 含义** 表示匹配任意层级的子包。
  • 示例
    • com.longgang.**.domain 匹配以下所有路径:
      • com.longgang.domain
      • com.longgang.module.domain
      • com.longgang.module.submodule.domain
      • 以此类推,无论子包层级有多深。

2. 其他常见的通配符

  • *(单星号)

    • 含义:匹配任意单个目录或文件名,但不递归子目录。
    • 示例
      • com.longgang.*.domain 匹配:
        • com.longgang.module.domain
        • com.longgang.service.domain
      • 不匹配:
        • com.longgang.module.submodule.domain
  • ?(问号)

    • 含义:匹配单个字符。
    • 示例
      • com.longgang.module?.domain 匹配:
        • com.longgang.module1.domain
        • com.longgang.moduleA.domain
      • 不匹配:
        • com.longgang.module10.domain(因为 ? 只能匹配一个字符)。

3. 总结通配符的作用

通配符含义示例
**匹配任意层级的子包com.longgang.**.domain
*匹配单个目录或文件名com.longgang.*.domain
?匹配单个字符com.longgang.module?.domain

4. 实际应用场景

MyBatis-plus 配置中,typeAliasesPackage 用于指定别名扫描的包路径。使用通配符可以简化配置,避免手动列出所有可能的包路径。例如:

mybatis-plus:
  typeAliasesPackage: com.longgang.**.domain

上述配置会自动扫描 com.longgang 下的所有子包中包含 domain 的类,并为其注册别名。