关于异常:警告: Exception encountered during context initialization - cancelling refresh attempt

警告: Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userInfoService' defined in file [E:\MyProject\MavenProject\testdemo\target\classes\com\young\service\UserInfoService.class]: Initialization of bean failed; nested exception is org.springframework.aop.framework.AopConfigException: Could not generate CGLIB subclass of class com.young.service.UserInfoService: Common causes of this problem include using a final class or a non-visible class; nested exception is java.lang.IllegalArgumentException: Cannot subclass final class com.young.service.UserInfoService

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userInfoService' defined in file [E:\MyProject\MavenProject\testdemo\target\classes\com\young\service\UserInfoService.class]: Initialization of bean failed; nested exception is org.springframework.aop.framework.AopConfigException: Could not generate CGLIB subclass of class com.young.service.UserInfoService: Common causes of this problem include using a final class or a non-visible class; nested exception is java.lang.IllegalArgumentException: Cannot subclass final class com.young.service.UserInfoService

	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:601)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:515)
	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:199)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:845)
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:877)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:549)
	at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:144)
	at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:85)
	at TestAOP.testAOP(TestAOP.java:13)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
	at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
Caused by: org.springframework.aop.framework.AopConfigException: Could not generate CGLIB subclass of class com.young.service.UserInfoService: Common causes of this problem include using a final class or a non-visible class; nested exception is java.lang.IllegalArgumentException: Cannot subclass final class com.young.service.UserInfoService
	at org.springframework.aop.framework.CglibAopProxy.getProxy(CglibAopProxy.java:208)
	at org.springframework.aop.framework.ProxyFactory.getProxy(ProxyFactory.java:110)
	at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.createProxy(AbstractAutoProxyCreator.java:471)
	at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.wrapIfNecessary(AbstractAutoProxyCreator.java:350)
	at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessAfterInitialization(AbstractAutoProxyCreator.java:299)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:429)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1782)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:593)
	... 33 more
Caused by: java.lang.IllegalArgumentException: Cannot subclass final class com.young.service.UserInfoService
	at org.springframework.cglib.proxy.Enhancer.generateClass(Enhancer.java:657)
	at org.springframework.cglib.transform.TransformingClassGenerator.generateClass(TransformingClassGenerator.java:33)
	at org.springframework.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25)
	at org.springframework.aop.framework.CglibAopProxy$ClassLoaderAwareUndeclaredThrowableStrategy.generate(CglibAopProxy.java:1007)
	at org.springframework.cglib.core.AbstractClassGenerator.generate(AbstractClassGenerator.java:358)
	at org.springframework.cglib.proxy.Enhancer.generate(Enhancer.java:582)
	at org.springframework.cglib.core.AbstractClassGenerator$ClassLoaderData$3.apply(AbstractClassGenerator.java:110)
	at org.springframework.cglib.core.AbstractClassGenerator$ClassLoaderData$3.apply(AbstractClassGenerator.java:108)
	at org.springframework.cglib.core.internal.LoadingCache$2.call(LoadingCache.java:54)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at org.springframework.cglib.core.internal.LoadingCache.createEntry(LoadingCache.java:61)
	at org.springframework.cglib.core.internal.LoadingCache.get(LoadingCache.java:34)
	at org.springframework.cglib.core.AbstractClassGenerator$ClassLoaderData.get(AbstractClassGenerator.java:134)
	at org.springframework.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:319)
	at org.springframework.cglib.proxy.Enhancer.createHelper(Enhancer.java:569)
	at org.springframework.cglib.proxy.Enhancer.createClass(Enhancer.java:416)
	at org.springframework.aop.framework.ObjenesisCglibAopProxy.createProxyClassAndInstance(ObjenesisCglibAopProxy.java:57)
	at org.springframework.aop.framework.CglibAopProxy.getProxy(CglibAopProxy.java:205)
	... 40 more


Process finished with exit code -1

首先第一次看到这么一大串异常我的内心是奔溃的,因为对于小白的我来说,它并没有给我指出哪行代码错误
在第一次出现该异常时,我通过更换导入的jar包版本解决了问题,对于jar包版本的使用,一定要选择与开发环境契合的,比如spring-context这个jar包选择的是5.1.9.RELEASE这个版本,那么选择其他Spring框架jar包最好也选择该版本,可以避免因为jar包的版本不契合而出错。
这是我第二次见到这个异常,我不管怎么修改jar包的版本都是报这样的错误,然后我就在网上查找,网上说当使用AOP时,被代理的类不能用final修饰,我根本没有用final修饰userInfoService这个类,后来我在查看代码时,不知道为什么,userInfoService这个类被final修饰了(应该是自己没注意吧)…

如果之后遇到这类的异常,要学会去读异常,尤其要注意Caused by后面的语句

Exception encountered during context initialization
比如这句翻译过来的意思就是,xml配置问及解析的时候出现了异常
Could not generate CGLIB subclass of class com.young.service.UserInfoService
这句的意思就是无法通过CGLIB代理创建UserInfoService的代理类
Caused by: java.lang.IllegalArgumentException: Cannot subclass final class com.young.service.UserInfoService
这句的意思就是无法子类化被final修饰的UserInfoService类

通过对异常代码的阅读与分析就可以缩短解决问题的时间

  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: “exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: 创建名为的bean时出错” 这个错误是在Spring框架中出现的,通常是由于依赖注入出现问题导致的。具体原因可能是某个bean的依赖项无法满足,或者依赖项的类型不匹配等。需要检查相关的配置文件和代码,找出问题所在并进行修复。 ### 回答2: 这个错误提示信息是在Spring框架应用程序启动时遇到的。具体来说,它表示在IoC容器初始化时出现了异常,因此刷新尝试被取消了。错误信息中给出的原因是无法创建名称为“error creating bean with name”的bean,其依赖项不满足。 这个错误通常由以下情况引起: 1. Classpath中无法找到所需的类文件。 2. 在IoC容器中引用了不存在的bean。 3. 在bean的定义中发生了语法错误或逻辑错误。 4. 依赖项注入失败,可能是由于依赖项类型与bean属性类型不匹配。 为了解决这个错误,我们可以进行如下操作: 1. 检查应用程序的Classpath,确保所需的类文件可以被找到。 2. 确认所有引用的bean都存在于IoC容器中,并且它们的名称与定义匹配。 3. 仔细检查bean的定义,以确保没有语法错误或逻辑错误。 4. 检查依赖项注入的定义和类型,确保它们与bean属性类型匹配。 如果以上操作无法解决问题,可能需要更详细地分析错误日志或使用调试工具来跟踪代码执行。通过仔细调试可以找到问题的根本原因,并制定解决方案来解决它。 ### 回答3: 这个错误是指在Spring应用程序的初始化过程中遇到了异常,导致无法继续刷新操作,从而停止了应用程序的启动。关于其中提到的"org.springframework.beans.factory.UnsatisfiedDependencyException",它表示应用程序中存在一个或多个依赖项未能满足的情况,使得无法创建所需的bean。 通常,这种错误的产生通常是由于以下原因: 1. 依赖项配置错误。应用程序中的bean之间存在依赖关系,如果其中的一个bean的依赖项配置错误,则可能导致无法创建这个bean,最终导致整个应用程序的初始化失败。 2. 类型转换错误。在注入依赖项时,如果Spring容器无法正确地解析类型转换,可能会出现类似的问题。 3. 标记错误。在bean的注入标记中,如果使用了错误的注入方式,如@Qualifier或@Autowired等注解的使用不当等,也可能导致这种错误的产生。 对于这种错误的解决方案,我们需要做以下几点: 1. 仔细检查应用程序中的依赖项配置。确保所有的依赖项都被正确地配置,并且能够正常地被创建和注入。 2. 检查类型转换问题。当出现类型转换问题时,可以使用Spring的类型转换机制来解决问题。 3. 检查注入标记。如果使用了错误的注入标记,将其修正为正确的注入方式。 总之,这种错误是Spring应用程序中常见的问题,需要我们仔细排查,找到问题所在并加以解决。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值