当前位置: 首页 > article >正文

解决Spring3.4版本中使用QueryDSL中出现MongoAnnotationProcessor使用问题

spring boot更新到3.4版本后,Spring官方也是提供了AnnotationProcessor工具,可以不用使用maven-apt这个老旧的不行的依赖了。

但是按照官方教程会出现两个问题

1. maven找不到MongoAnnotationProcessor

如果你按照Spring Boot上的教程直接配置完成后,mvn compile时会报这个问题:

找不到批注处理程序 ‘org.springframework.data.mongodb.repository.support.MongoAnnotationProcessor’

要解决这个问题,你需要配置在 annotationProcessorPaths 中加入依赖

<annotationProcessorPaths>
	 <path>
	     <groupId>org.springframework.data</groupId>
	     <artifactId>spring-data-mongodb</artifactId>
	 </path>
</annotationProcessorPaths>

这样你的maven,就能正常找到你的 org.springframework.data.mongodb.repository.support.MongoAnnotationProcessor

然而还是有问题,maven会爆出下面这个问题

java.lang.NoClassDefFoundError: com/querydsl/apt/AbstractQuerydslProcessor: com.querydsl.apt.AbstractQuerydslProcessor

所以,还需要在annotationProcessorPaths加入 querydsl-apt 依赖

<annotationProcessorPaths>
	 <path>
	     <groupId>org.springframework.data</groupId>
	     <artifactId>spring-data-mongodb</artifactId>
	 </path>
	<path>
		<groupId>com.querydsl</groupId>
		<artifactId>querydsl-apt</artifactId>
	</path>
</annotationProcessorPaths>

这样你的maven编译就没有问题了。

完整版的配置如下

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>${maven-compiler-plugin.version}</version>
    <configuration>
        <source>${java.version}</source>
        <target>${java.version}</target>
        <encoding>UTF-8</encoding>
        <annotationProcessorPaths>
            <path>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
            </path>
            <path>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-configuration-processor</artifactId>
            </path>
            <path>
                <groupId>org.springframework.data</groupId>
                <artifactId>spring-data-mongodb</artifactId>
            </path>
            <path>
                <groupId>com.querydsl</groupId>
                <artifactId>querydsl-apt</artifactId>
            </path>
        </annotationProcessorPaths>
        <annotationProcessors>
            <annotationProcessor>
                org.springframework.data.mongodb.repository.support.MongoAnnotationProcessor
            </annotationProcessor>
        </annotationProcessors>
        <generatedTestSourcesDirectory>target/generated-test-sources</generatedTestSourcesDirectory>
        <generatedSourcesDirectory>target/generated-sources</generatedSourcesDirectory>
    </configuration>
</plugin>

2. Idea找不到MongoAnnotationProcessor

如果你用的是idea的话,你可能会发现你能正常编译,但是无法运行,运行或调试会报下面的问题

java: java.lang.ClassNotFoundException: org.springframework.data.mongodb.repository.support.MongoAnnotationProcessor

这里面需要在idea中进行配置
Annotation配置
按照上面的配置即可~


http://www.kler.cn/a/464671.html

相关文章:

  • Javascript算法——回溯算法(组合问题)
  • Oracle 使用 sql profile 固定执行计划
  • 国产编辑器EverEdit - 常用资源汇总
  • QT---------自定义插件和库
  • Unity3D Huatuo:零成本高性能的全平台原生C#热更新方案详解
  • 玩《燕云十六声》时游戏文件丢失怎么办?
  • RabbitMQ基础篇之Java客户端 Topic交换机
  • 基于VSCode软件框架的RISC-V IDE MRS2正式上线发布
  • 使用Pandoc复制ChatGPT生成的高数公式文本
  • 学习笔记078——Java Properties类使用详解
  • js按日期按数量进行倒序排序,然后再新增一个字段,给这个字段赋值 10 到1
  • Lua迭代器如何使用?
  • element ui 组件 时间选择器出现转换问题的解决办法
  • 【门铃工作原理】2021-12-25
  • scipy和statsmodels之Python实现
  • Unity网络通信相关
  • 算命网站源码PHP框架_附2025新版设计书教程
  • Linux系统编程:深入理解计算机软硬件体系和架构
  • 前端页面上传文件:解决 ERR_UPLOAD_FILE_CHANGED
  • 基于Python flask 的微博高校舆情分析系统,高校微博情感分析大屏可视化