springboot 配置aop后,启动报错

在SpringBoot应用中配置AOP后,启动时遇到ApplicationContextException,原因是BeanPostProcessor在实例化bean时失败,特别是与transaction管理和类型匹配有关的错误。通过检查发现,切入点表达式缺少通配符'*',导致映射错误。修复方法是在切入点注解中正确添加'*',以匹配控制层下的所有方法。修正后,启动问题得到解决。

springboot 配置aop后,启动报错:

org.springframework.context.ApplicationContextException: Unable to start web server; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘tomcatServletWebServerFactory’ defined in class path resource [org/springframework/boot/autoconfigure/web/servlet/ServletWebServerFactoryConfigurationEmbeddedTomcat.class]:BeanPostProcessorbeforeinstantiationofbeanfailed;nestedexceptionisorg.springframework.beans.factory.BeanCreationException:Errorcreatingbeanwithname′org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration′:Initializationofbeanfailed;nestedexceptionisjava.lang.IllegalArgumentException:warningnomatchforthistypename:com.example.demo.controller[Xlint:invalidAbsoluteTypeName]atorg.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.onRefresh(ServletWebServerApplicationContext.java:157)atorg.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:540)atorg.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:142)atorg.springframework.boot.SpringApplication.refresh(SpringApplication.java:775)atorg.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397)atorg.springframework.boot.SpringApplication.run(SpringApplication.java:316)atorg.springframework.boot.SpringApplication.run(SpringApplication.java:1260)atorg.springframework.boot.SpringApplication.run(SpringApplication.java:1248)atcom.example.demo.Springboot1Application.main(Springboot1Application.java:17)Causedby:org.springframework.beans.factory.BeanCreationException:Errorcreatingbeanwithname′tomcatServletWebServerFactory′definedinclasspathresource[org/springframework/boot/autoconfigure/web/servlet/ServletWebServerFactoryConfigurationEmbeddedTomcat.class]: BeanPostProcessor before instantiation of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration': Initialization of bean failed; nested exception is java.lang.IllegalArgumentException: warning no match for this type name: com.example.demo.controller [Xlint:invalidAbsoluteTypeName] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.onRefresh(ServletWebServerApplicationContext.java:157) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:540) at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:142) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:775) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) at org.springframework.boot.SpringApplication.run(SpringApplication.java:316) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1260) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1248) at com.example.demo.Springboot1Application.main(Springboot1Application.java:17) Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'tomcatServletWebServerFactory' defined in class path resource [org/springframework/boot/autoconfigure/web/servlet/ServletWebServerFactoryConfigurationEmbeddedTomcat.class]:BeanPostProcessorbeforeinstantiationofbeanfailed;nestedexceptionisorg.springframework.beans.factory.BeanCreationException:Errorcreatingbeanwithnameorg.springframework.transaction.annotation.ProxyTransactionManagementConfiguration:Initializationofbeanfailed;nestedexceptionisjava.lang.IllegalArgumentException:warningnomatchforthistypename:com.example.demo.controller[Xlint:invalidAbsoluteTypeName]atorg.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.onRefresh(ServletWebServerApplicationContext.java:157)atorg.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:540)atorg.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:142)atorg.springframework.boot.SpringApplication.refresh(SpringApplication.java:775)atorg.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397)atorg.springframework.boot.SpringApplication.run(SpringApplication.java:316)atorg.springframework.boot.SpringApplication.run(SpringApplication.java:1260)atorg.springframework.boot.SpringApplication.run(SpringApplication.java:1248)atcom.example.demo.Springboot1Application.main(Springboot1Application.java:17)Causedby:org.springframework.beans.factory.BeanCreationException:ErrorcreatingbeanwithnametomcatServletWebServerFactorydefinedinclasspathresource[org/springframework/boot/autoconfigure/web/servlet/ServletWebServerFactoryConfigurationEmbeddedTomcat.class]: BeanPostProcessor before instantiation of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration’: Initialization of bean failed; nested exception is java.lang.IllegalArgumentException: warning no match for this type name: com.example.demo.controller [Xlint:invalidAbsoluteTypeName]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:493)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:204)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.getWebServerFactory(ServletWebServerApplicationContext.java:216)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.createWebServer(ServletWebServerApplicationContext.java:180)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.onRefresh(ServletWebServerApplicationContext.java:154)
… 8 more
并且跳入映射工具类出错reflectionUtil.java中,说明某个地方映射出现问题了,我的是写切入点时少写了一个*号,
错误事例:在这里插入图片描述这个代表控制层下的所有方法,漏了控制层下先有类再有方法。

正确事例:
在这里插入图片描述
这样就解决啦!!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值