idea运行springboot项目时,卡在了Parsing java...

当IDEA在运行项目时遇到卡顿,修改VM参数和增加编译过程的堆内存大小至2GB可以有效解决‘parsingjava...’阶段的停滞问题。按照博客园中的开发笔记进行设置,成功运行了项目。
C:\Java\bin\java.exe -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:53673,suspend=y,server=n -javaagent:C:\Users\ait\AppData\Local\JetBrains\IntelliJIdea2025.1\captureAgent\debugger-agent.jar=file:///C:/Users/ait/AppData/Local/Temp/capture12735004150221848884.props -agentpath:C:\Users\ait\AppData\Local\Temp\idea_libasyncProfiler_dll_temp_folder4\libasyncProfiler.dll=version,jfr,event=wall,interval=10ms,cstack=no,file=C:\Users\ait\IdeaSnapshots\Application__1__2025_06_12_155249.jfr,dbghelppath=C:\Users\ait\AppData\Local\Temp\idea_dbghelp_dll_temp_folder2\dbghelp.dll,log=C:\Users\ait\AppData\Local\Temp\Application__1__2025_06_12_155249.jfr.log.txt,logLevel=DEBUG -XX:TieredStopAtLevel=1 -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true "-Dmanagement.endpoints.jmx.exposure.include=*" -Dkotlinx.coroutines.debug.enable.creation.stack.trace=false -Ddebugger.agent.enable.coroutines=true -Dkotlinx.coroutines.debug.enable.flows.stack.trace=true -Dkotlinx.coroutines.debug.enable.mutable.state.flows.stack.trace=true -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath "C:\Users\ait\Desktop\java104_spring-master\java104_spring-master\202202151545_Springboot_web_ait\target\classes;C:\Users\ait\.m2\repository\org\springframework\boot\spring-boot-starter-web\3.5.0\spring-boot-starter-web-3.5.0.jar;C:\Users\ait\.m2\repository\org\springframework\boot\spring-boot-starter\3.5.0\spring-boot-starter-3.5.0.jar;C:\Users\ait\.m2\repository\org\springframework\boot\spring-boot-starter-logging\3.5.0\spring-boot-starter-logging-3.5.0.jar;C:\Users\ait\.m2\repository\ch\qos\logback\logback-classic\1.5.18\logback-classic-1.5.18.jar;C:\Users\ait\.m2\repository\ch\qos\logback\logback-core\1.5.18\logback-core-1.5.18.jar;C:\Users\ait\.m2\repository\org\apache\logging\log4j\log4j-to-slf4j\2.24.3\log4j-to-slf4j-2.24.3.jar;C:\Users\ait\.m2\repository\org\apache\logging\log4j\log4j-api\2.24.3\log4j-api-2.24.3.jar;C:\Users\ait\.m2\repository\org\slf4j\jul-to-slf4j\2.0.17\jul-to-slf4j-2.0.17.jar;C:\Users\ait\.m2\repository\jakarta\annotation\jakarta.annotation-api\2.1.1\jakarta.annotation-api-2.1.1.jar;C:\Users\ait\.m2\repository\org\yaml\snakeyaml\2.4\snakeyaml-2.4.jar;C:\Users\ait\.m2\repository\org\springframework\boot\spring-boot-starter-json\3.5.0\spring-boot-starter-json-3.5.0.jar;C:\Users\ait\.m2\repository\com\fasterxml\jackson\core\jackson-databind\2.19.0\jackson-databind-2.19.0.jar;C:\Users\ait\.m2\repository\com\fasterxml\jackson\core\jackson-annotations\2.19.0\jackson-annotations-2.19.0.jar;C:\Users\ait\.m2\repository\com\fasterxml\jackson\core\jackson-core\2.19.0\jackson-core-2.19.0.jar;C:\Users\ait\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.19.0\jackson-datatype-jdk8-2.19.0.jar;C:\Users\ait\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.19.0\jackson-datatype-jsr310-2.19.0.jar;C:\Users\ait\.m2\repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.19.0\jackson-module-parameter-names-2.19.0.jar;C:\Users\ait\.m2\repository\org\springframework\boot\spring-boot-starter-tomcat\3.5.0\spring-boot-starter-tomcat-3.5.0.jar;C:\Users\ait\.m2\repository\org\apache\tomcat\embed\tomcat-embed-core\10.1.41\tomcat-embed-core-10.1.41.jar;C:\Users\ait\.m2\repository\org\apache\tomcat\embed\tomcat-embed-el\10.1.41\tomcat-embed-el-10.1.41.jar;C:\Users\ait\.m2\repository\org\apache\tomcat\embed\tomcat-embed-websocket\10.1.41\tomcat-embed-websocket-10.1.41.jar;C:\Users\ait\.m2\repository\org\springframework\spring-web\6.2.7\spring-web-6.2.7.jar;C:\Users\ait\.m2\repository\org\springframework\spring-beans\6.2.7\spring-beans-6.2.7.jar;C:\Users\ait\.m2\repository\io\micrometer\micrometer-observation\1.15.0\micrometer-observation-1.15.0.jar;C:\Users\ait\.m2\repository\io\micrometer\micrometer-commons\1.15.0\micrometer-commons-1.15.0.jar;C:\Users\ait\.m2\repository\org\springframework\spring-webmvc\6.2.7\spring-webmvc-6.2.7.jar;C:\Users\ait\.m2\repository\org\springframework\spring-aop\6.2.7\spring-aop-6.2.7.jar;C:\Users\ait\.m2\repository\org\springframework\spring-context\6.2.7\spring-context-6.2.7.jar;C:\Users\ait\.m2\repository\org\springframework\spring-expression\6.2.7\spring-expression-6.2.7.jar;C:\Users\ait\.m2\repository\org\springframework\boot\spring-boot-devtools\3.5.0\spring-boot-devtools-3.5.0.jar;C:\Users\ait\.m2\repository\org\springframework\boot\spring-boot\3.5.0\spring-boot-3.5.0.jar;C:\Users\ait\.m2\repository\org\springframework\boot\spring-boot-autoconfigure\3.5.0\spring-boot-autoconfigure-3.5.0.jar;C:\Users\ait\.m2\repository\com\mysql\mysql-connector-j\8.0.33\mysql-connector-j-8.0.33.jar;C:\Users\ait\.m2\repository\org\projectlombok\lombok\1.18.38\lombok-1.18.38.jar;C:\Users\ait\.m2\repository\org\slf4j\slf4j-api\2.0.17\slf4j-api-2.0.17.jar;C:\Users\ait\.m2\repository\org\springframework\spring-core\6.2.7\spring-core-6.2.7.jar;C:\Users\ait\.m2\repository\org\springframework\spring-jcl\6.2.7\spring-jcl-6.2.7.jar;C:\Users\ait\.m2\repository\javax\servlet\javax.servlet-api\4.0.1\javax.servlet-api-4.0.1.jar;C:\Users\ait\.m2\repository\com\baomidou\mybatis-plus-spring-boot3-starter\3.5.7\mybatis-plus-spring-boot3-starter-3.5.7.jar;C:\Users\ait\.m2\repository\com\baomidou\mybatis-plus\3.5.7\mybatis-plus-3.5.7.jar;C:\Users\ait\.m2\repository\com\baomidou\mybatis-plus-core\3.5.7\mybatis-plus-core-3.5.7.jar;C:\Users\ait\.m2\repository\com\baomidou\mybatis-plus-annotation\3.5.7\mybatis-plus-annotation-3.5.7.jar;C:\Users\ait\.m2\repository\com\baomidou\mybatis-plus-extension\3.5.7\mybatis-plus-extension-3.5.7.jar;C:\Users\ait\.m2\repository\org\mybatis\mybatis\3.5.16\mybatis-3.5.16.jar;C:\Users\ait\.m2\repository\com\github\jsqlparser\jsqlparser\4.9\jsqlparser-4.9.jar;C:\Users\ait\.m2\repository\org\mybatis\mybatis-spring\3.0.3\mybatis-spring-3.0.3.jar;C:\Users\ait\.m2\repository\com\baomidou\mybatis-plus-spring-boot-autoconfigure\3.5.7\mybatis-plus-spring-boot-autoconfigure-3.5.7.jar;C:\Users\ait\.m2\repository\org\springframework\boot\spring-boot-starter-jdbc\3.5.0\spring-boot-starter-jdbc-3.5.0.jar;C:\Users\ait\.m2\repository\com\zaxxer\HikariCP\6.3.0\HikariCP-6.3.0.jar;C:\Users\ait\.m2\repository\org\springframework\spring-jdbc\6.2.7\spring-jdbc-6.2.7.jar;C:\Users\ait\.m2\repository\org\springframework\spring-tx\6.2.7\spring-tx-6.2.7.jar;C:\learn\IntelliJ IDEA 2025.1.2\lib\idea_rt.jar" com.example.ait.Application 已连接到地址为 ''127.0.0.1:53673',传输: '套接字'' 的目标虚拟机 . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v3.5.0) 2025-06-12T15:52:51.275+08:00 INFO 11224 --- [ restartedMain] com.example.ait.Application : Starting Application using Java 21.0.7 with PID 11224 (C:\Users\ait\Desktop\java104_spring-master\java104_spring-master\202202151545_Springboot_web_ait\target\classes started by ait in C:\Users\ait\Desktop\java104_spring-master\java104_spring-master\202202151545_Springboot_web_ait) 2025-06-12T15:52:51.280+08:00 INFO 11224 --- [ restartedMain] com.example.ait.Application : No active profile set, falling back to 1 default profile: "default" 2025-06-12T15:52:51.324+08:00 INFO 11224 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable 2025-06-12T15:52:51.324+08:00 INFO 11224 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG' 2025-06-12T15:52:52.242+08:00 INFO 11224 --- [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8080 (http) 2025-06-12T15:52:52.257+08:00 INFO 11224 --- [ restartedMain] o.apache.catalina.core.StandardService : Starting service [Tomcat] 2025-06-12T15:52:52.257+08:00 INFO 11224 --- [ restartedMain] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.41] 2025-06-12T15:52:52.304+08:00 INFO 11224 --- [ restartedMain] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2025-06-12T15:52:52.304+08:00 INFO 11224 --- [ restartedMain] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 979 ms 2025-06-12T15:52:52.737+08:00 WARN 11224 --- [ restartedMain] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception with message: Failed to parse mapping resource: 'file [C:\Users\ait\Desktop\java104_spring-master\java104_spring-master\202202151545_Springboot_web_ait\target\classes\mapper\UserMapper.xml]' 2025-06-12T15:52:52.739+08:00 INFO 11224 --- [ restartedMain] o.apache.catalina.core.StandardService : Stopping service [Tomcat] 2025-06-12T15:52:52.751+08:00 INFO 11224 --- [ restartedMain] .s.b.a.l.ConditionEvaluationReportLogger : Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. 2025-06-12T15:52:52.767+08:00 ERROR 11224 --- [ restartedMain] o.s.boot.SpringApplication : Application run failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [com/baomidou/mybatisplus/autoconfigure/MybatisPlusAutoConfiguration.class]: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception with message: Failed to parse mapping resource: 'file [C:\Users\ait\Desktop\java104_spring-master\java104_spring-master\202202151545_Springboot_web_ait\target\classes\mapper\UserMapper.xml]' at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:657) ~[spring-beans-6.2.7.jar:6.2.7] at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:645) ~[spring-beans-6.2.7.jar:6.2.7] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1375) ~[spring-beans-6.2.7.jar:6.2.7] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1205) ~[spring-beans-6.2.7.jar:6.2.7] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:569) ~[spring-beans-6.2.7.jar:6.2.7] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529) ~[spring-beans-6.2.7.jar:6.2.7] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339) ~[spring-beans-6.2.7.jar:6.2.7] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:373) ~[spring-beans-6.2.7.jar:6.2.7] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337) ~[spring-beans-6.2.7.jar:6.2.7] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-6.2.7.jar:6.2.7] at org.springframework.beans.factory.support.DefaultListableBeanFactory.instantiateSingleton(DefaultListableBeanFactory.java:1222) ~[spring-beans-6.2.7.jar:6.2.7] at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingleton(DefaultListableBeanFactory.java:1188) ~[spring-beans-6.2.7.jar:6.2.7] at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:1123) ~[spring-beans-6.2.7.jar:6.2.7] at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:987) ~[spring-context-6.2.7.jar:6.2.7] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:627) ~[spring-context-6.2.7.jar:6.2.7] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.5.0.jar:3.5.0] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753) ~[spring-boot-3.5.0.jar:3.5.0] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439) ~[spring-boot-3.5.0.jar:3.5.0] at org.springframework.boot.SpringApplication.run(SpringApplication.java:318) ~[spring-boot-3.5.0.jar:3.5.0] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1362) ~[spring-boot-3.5.0.jar:3.5.0] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1351) ~[spring-boot-3.5.0.jar:3.5.0] at com.example.ait.Application.main(Application.java:10) ~[classes/:na] at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na] at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) ~[spring-boot-devtools-3.5.0.jar:3.5.0] Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception with message: Failed to parse mapping resource: 'file [C:\Users\ait\Desktop\java104_spring-master\java104_spring-master\202202151545_Springboot_web_ait\target\classes\mapper\UserMapper.xml]' at org.springframework.beans.factory.support.SimpleInstantiationStrategy.lambda$instantiate$0(SimpleInstantiationStrategy.java:199) ~[spring-beans-6.2.7.jar:6.2.7] at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiateWithFactoryMethod(SimpleInstantiationStrategy.java:88) ~[spring-beans-6.2.7.jar:6.2.7] at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:168) ~[spring-beans-6.2.7.jar:6.2.7] at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653) ~[spring-beans-6.2.7.jar:6.2.7] ... 24 common frames omitted Caused by: java.io.IOException: Failed to parse mapping resource: 'file [C:\Users\ait\Desktop\java104_spring-master\java104_spring-master\202202151545_Springboot_web_ait\target\classes\mapper\UserMapper.xml]' at com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean.buildSqlSessionFactory(MybatisSqlSessionFactoryBean.java:680) ~[mybatis-plus-extension-3.5.7.jar:3.5.7] at com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean.afterPropertiesSet(MybatisSqlSessionFactoryBean.java:553) ~[mybatis-plus-extension-3.5.7.jar:3.5.7] at com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean.getObject(MybatisSqlSessionFactoryBean.java:711) ~[mybatis-plus-extension-3.5.7.jar:3.5.7] at com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration.sqlSessionFactory(MybatisPlusAutoConfiguration.java:221) ~[mybatis-plus-spring-boot-autoconfigure-3.5.7.jar:3.5.7] at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na] at org.springframework.beans.factory.support.SimpleInstantiationStrategy.lambda$instantiate$0(SimpleInstantiationStrategy.java:171) ~[spring-beans-6.2.7.jar:6.2.7] ... 27 common frames omitted Caused by: org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. The XML location is 'file [C:\Users\ait\Desktop\java104_spring-master\java104_spring-master\202202151545_Springboot_web_ait\target\classes\mapper\UserMapper.xml]'. Cause: org.apache.ibatis.builder.BuilderException: Error resolving class. Cause: org.apache.ibatis.type.TypeException: Could not resolve type alias 'com.example.demo.model.UserInfo'. Cause: java.lang.ClassNotFoundException: Cannot find class: com.example.demo.model.UserInfo at com.baomidou.mybatisplus.core.MybatisXMLMapperBuilder.configurationElement(MybatisXMLMapperBuilder.java:129) ~[mybatis-plus-core-3.5.7.jar:3.5.7] at com.baomidou.mybatisplus.core.MybatisXMLMapperBuilder.parse(MybatisXMLMapperBuilder.java:102) ~[mybatis-plus-core-3.5.7.jar:3.5.7] at com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean.buildSqlSessionFactory(MybatisSqlSessionFactoryBean.java:678) ~[mybatis-plus-extension-3.5.7.jar:3.5.7] ... 33 common frames omitted Caused by: org.apache.ibatis.builder.BuilderException: Error resolving class. Cause: org.apache.ibatis.type.TypeException: Could not resolve type alias 'com.example.demo.model.UserInfo'. Cause: java.lang.ClassNotFoundException: Cannot find class: com.example.demo.model.UserInfo at org.apache.ibatis.builder.BaseBuilder.resolveClass(BaseBuilder.java:103) ~[mybatis-3.5.16.jar:3.5.16] at org.apache.ibatis.builder.xml.XMLStatementBuilder.parseStatementNode(XMLStatementBuilder.java:105) ~[mybatis-3.5.16.jar:3.5.16] at com.baomidou.mybatisplus.core.MybatisXMLMapperBuilder.buildStatementFromContext(MybatisXMLMapperBuilder.java:145) ~[mybatis-plus-core-3.5.7.jar:3.5.7] at com.baomidou.mybatisplus.core.MybatisXMLMapperBuilder.buildStatementFromContext(MybatisXMLMapperBuilder.java:137) ~[mybatis-plus-core-3.5.7.jar:3.5.7] at com.baomidou.mybatisplus.core.MybatisXMLMapperBuilder.configurationElement(MybatisXMLMapperBuilder.java:127) ~[mybatis-plus-core-3.5.7.jar:3.5.7] ... 35 common frames omitted Caused by: org.apache.ibatis.type.TypeException: Could not resolve type alias 'com.example.demo.model.UserInfo'. Cause: java.lang.ClassNotFoundException: Cannot find class: com.example.demo.model.UserInfo at org.apache.ibatis.type.TypeAliasRegistry.resolveAlias(TypeAliasRegistry.java:128) ~[mybatis-3.5.16.jar:3.5.16] at org.apache.ibatis.builder.BaseBuilder.resolveAlias(BaseBuilder.java:132) ~[mybatis-3.5.16.jar:3.5.16] at org.apache.ibatis.builder.BaseBuilder.resolveClass(BaseBuilder.java:101) ~[mybatis-3.5.16.jar:3.5.16] ... 39 common frames omitted Caused by: java.lang.ClassNotFoundException: Cannot find class: com.example.demo.model.UserInfo at org.apache.ibatis.io.ClassLoaderWrapper.classForName(ClassLoaderWrapper.java:226) ~[mybatis-3.5.16.jar:3.5.16] at org.apache.ibatis.io.ClassLoaderWrapper.classForName(ClassLoaderWrapper.java:103) ~[mybatis-3.5.16.jar:3.5.16] at org.apache.ibatis.io.Resources.classForName(Resources.java:322) ~[mybatis-3.5.16.jar:3.5.16] at org.apache.ibatis.type.TypeAliasRegistry.resolveAlias(TypeAliasRegistry.java:124) ~[mybatis-3.5.16.jar:3.5.16] ... 41 common frames omitted 已与地址为 ''127.0.0.1:53673',传输: '套接字'' 的目标虚拟机断开连接 进程已结束,退出代码为 0
06-14
<think>我们正在解决MyBatis映射文件UserMapper.xml中无法解析类型别名com.example.demo.model.UserInfo的问题,并导致java.lang.ClassNotFoundException。根据经验,这个问题通常由以下原因引起:1.类型别名未在MyBatis配置中正确定义(如在mybatis-config.xml中配置,或SpringBoot中未正确扫描)2.项目结构问题导致类文件未正确编译到target/classes目录3.MyBatis的mapper.xml文件未正确放置在资源目录下,或未被Maven等构建工具处理由于用户使用的是SpringBoot,通常不需要单独的mybatis-config.xml,而是通过application.properties/yml配置和注解方式。解决方案如下:步骤1:确保实体类存在且包路径正确确认实体类`UserInfo`的完整包名是`com.example.demo.model.UserInfo`,并且该类位于`src/main/java/com/example/demo/model/`目录下。步骤2:在SpringBoot中配置类型别名扫描在SpringBoot项目中,我们可以通过配置`mybatis.type-aliases-package`来指定类型别名的包。在application.yml(或application.properties)中添加:```yamlmybatis:type-aliases-package:com.example.demo.model#替换为你的实体类所在包```步骤3:检查Mapper接口和XML文件的对应关系确保UserMapper.xml文件放置在`src/main/resources`目录下,并且与Mapper接口的包路径对应。例如,如果Mapper接口是`com.example.demo.mapper.UserMapper`,则XML文件应该放在`src/main/resources/com/example/demo/mapper/UserMapper.xml`。步骤4:检查Maven资源过滤配置在pom.xml中,确保资源文件被正确包含:```xml<build><resources><resource><directory>src/main/resources</directory><includes><include>**/*.xml</include></includes></resource></resources></build>```步骤5:检查类是否被编译清理并重新构建项目,确保`target/classes/com/example/demo/model/UserInfo.class`文件存在。步骤6:如果使用@Alias注解(可选)在实体类上使用@Alias注解,但通常配置包扫描后不需要:```javapackagecom.example.demo.model;importorg.apache.ibatis.type.Alias;@Alias("UserInfo")//这里定义别名,在XML中可以直接使用UserInfopublicclassUserInfo{//...}```步骤7:验证MyBatis配置在启动日志中查找MyBatis相关的日志,看是否成功加载了类型别名和映射文件。如果以上步骤都正确,应该能解决类型别名无法解析的问题。注意:如果项目结构是多模块的,需要确保配置在正确的模块中。下面是一个示例的application.yml配置:```yamlspring:datasource:url:jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTCusername:rootpassword:rootdriver-class-name:com.mysql.cj.jdbc.Drivermybatis:type-aliases-package:com.example.demo.model#实体类所在包mapper-locations:classpath*:mapper/**/*.xml#如果XML文件在resources/mapper目录下```如果问题依然存在,请检查错误堆栈,确认是否在类路径下能找到UserInfo.class。相关问题:1.MyBatis中如何配置多个类型别名包?2.如何解决MyBatis映射文件中的参数绑定错误?3.SpringBoot中如何整合MyBatis-Plus?4.MyBatisXML映射文件中的`#{}`和`${}`有什么区别?</think>### MyBatis映射文件无法解析类型别名的解决方案 #### 问题原因分析 在MyBatis映射文件中遇到`com.example.demo.model.UserInfo`类型别名无法解析的问题,通常由以下原因导致: 1. **类型别名未正确定义**:MyBatis配置中未声明该类型别名[^1] 2. **包扫描配置缺失**:Spring Boot未扫描到实体类所在的包 3. **构建工具配置问题**:Maven/Gradle未将XML文件复制到输出目录 4. **路径不一致**:XML中的类型别名与Java实体类路径不匹配 --- #### 解决方案步骤 ##### 1. 配置类型别名扫描(核心方案) 在`application.yml`中添加MyBatis配置: ```yaml mybatis: type-aliases-package: com.example.demo.model # 实体类所在包 mapper-locations: classpath:mapper/*.xml # XML映射文件位置 ``` ##### 2. 检查实体类路径 确认实体类路径与XML中引用的路径完全一致: ```java // 正确路径示例 package com.example.demo.model; public class UserInfo { private Long id; private String name; // getters/setters } ``` ##### 3. 配置Maven资源处理 在`pom.xml`中添加资源复制配置: ```xml <build> <resources> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.xml</include> <!-- 包含XML文件 --> </includes> </resource> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> <!-- 包含Java目录中的XML --> </includes> </resource> </resources> </build> ``` ##### 4. 验证映射文件配置 在`UserMapper.xml`中正确使用类型别名: ```xml <!-- 正确用法 --> <select id="getUser" resultType="UserInfo"> SELECT * FROM user_info WHERE id = #{id} </select> <!-- 错误用法(缺少别名配置--> <select id="getUser" resultType="com.example.demo.model.UserInfo"> ``` ##### 5. 清理并重新构建项目 ```bash mvn clean install # Maven项目 ./gradlew clean build # Gradle项目 ``` --- #### 验证方法 1. **检查编译输出**: - 确认`target/classes/com/example/demo/model/UserInfo.class`存在 - 确认`target/classes/mapper/UserMapper.xml`存在 2. **查看启动日志**: ```log 2025-06-12 INFO [main] MapperFactoryBean: Mapped SQL file found: [UserInfo.xml] ``` 3. **单元测试验证**: ```java @SpringBootTest class UserMapperTest { @Autowired private UserMapper userMapper; @Test void testGetUser() { UserInfo user = userMapper.getUser(1L); assertNotNull(user); } } ``` --- #### 常见错误处理 **报错:`org.apache.ibatis.type.TypeException`** 解决方案:检查`type-aliases-package`是否包含实体类的父包(如`com.example.demo.model`而非`com.example.demo`) **报错:`Invalid bound statement`** 解决方案:确保`mapper-locations`路径与实际XML存放路径一致(如`classpath*:mapper/**/*.xml`) > **关键点**:MyBatis在Spring Boot中需要显式配置类型别名包扫描,这与纯MyBatis项目不同[^1]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值