当前位置: 首页 > 知识库问答 >
问题:

处理@Configuration类需要CGLIB

窦涵忍
2023-03-14

我使用的是Spring 3.1。War不是使用Maven构建的。这只是一个正常的构建。我的课程路径中有以下罐子。

antlr-runtime-3.0.1.jar
commons-logging-1.1.1.jar
org.apache.commons.logging.jar
org.springframework.aop-3.1.0.M2.jar
org.springframework.asm-3.1.0.M2.jar
org.springframework.aspects-3.1.0.M2.jar
org.springframework.beans-3.1.0.M2.jar
org.springframework.context-3.1.0.M2.jar
org.springframework.context.support-3.1.0.M2.jar
org.springframework.core-3.1.0.M2.jar
org.springframework.core-3.1.0.RELEASE.jar
org.springframework.core.jar
org.springframework.expression-3.1.0.M2.jar
spring-beans-3.0.5.RELEASE.jar
spring-context-3.0.5.RELEASE.jar

我有下面的代码,

@Configuration
public class AppConfig {

    @Bean(name="helloBean")
    public HelloWorld helloWorld()
    {
        return new HelloWorldImpl();
    }
}

当我运行main方法时,我得到下面的异常

Exception in thread "main" java.lang.IllegalStateException: CGLIB is required to process @Configuration classes. Either add CGLIB to the classpath or remove the following @Configuration bean definitions: [appConfig]
at org.springframework.context.annotation.ConfigurationClassPostProcessor.enhanceConfigurationClasses(ConfigurationClassPostProcessor.java:297)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigurationClasses(ConfigurationClassPostProcessor.java:200)

为了克服这个问题,如果我添加cglib-2.1.jar,会出现以下异常。

java.lang.ClassNotFoundException: org.objectweb.asm.Type

为了克服这个问题,如果我添加asm3.1.jar,就会出现以下异常。

java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.

如何克服我最初的异常- CGLIB需要处理@Configuration类?

共有3个答案

段干开宇
2023-03-14

您的程序需要CGLIB库。您可以使用Maven下载依赖项。

由gerrytan ie发布的xml。

<dependency>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
<version>3.0</version>
</dependency>

如果您没有使用 maven(或其他依赖工具),则可以从 CGLIB 主页下载该库。

高胜
2023-03-14

从Spring 3.2开始,不再需要将cglib添加为显式依赖项。

参考:http://www . bael dung . com/2011/10/20/bootstrapping-a-web-application-with-spring-3-1-and-Java-based-configuration-part-1/# cglib _ gone

这个回答是给那些想知道为什么他们的项目没有cglib也能正常运行的人,以及像我一样来这个页面寻找cglib信息的人。

锺离飞鸣
2023-03-14

战争不是使用Maven构建的。这只是一个正常的构建

你的问题恰恰突出了为什么你应该使用Maven(或其他类似的依赖工具)——祝贺你用艰难的方式学到了东西。Java世界中的图书馆通常有一个非常复杂的依赖树,Maven可以帮助你解决这一切。

在您的例子中,如果您使用了maven,您只需要包含cglib依赖项,它的所有传递依赖项(包括ASM)都将为您解决

<dependency>
    <groupId>cglib</groupId>
    <artifactId>cglib</artifactId>
    <version>3.0</version>
</dependency>
 类似资料:
  • 问题内容: 我有一个主要的Activity类,其中包含大量的代码/数据。因此,我想使其简短易懂,因此我想创建一个.java文件,该文件可按要求处理某些功能。喜欢 并显示非活动类的Toast。所以我的问题是如何在非活动状态下处理/初始化按钮?我们可以从将上下文从活动传递到非活动类中获取ID吗? 问题答案: 试试这个 对我有用 。也可以帮助您! NonActivityClass: 主要活动:

  • 我试图在Reactor顶部设计一个管道框架。 在每个阶段(不考虑第一个和最后一个阶段),我们都有转换对象的任务(即字符串到其长度或url到其HTML内容等)。举个例子: 您可以看到中间层有3个任务,每个任务将一个X对象转换为一个Y对象(顺便说一句,它始终是一个完全连接的层) 我的问题/困境:我的第一个想法是,我所需要的是通量。merge(),然后将其连接到每个订阅者。例如: 另一种选择是放置处理器

  • 我正在学习Spring框架,但我不能理解注释的确切含义以及应该对哪些类进行注释。在Spring Boot文档中,说应用程序类应该是class。 Spring Boot支持基于Java的配置。虽然可以使用XML源调用SpringApplication.run(),但我们通常建议您的主要源是@Configuration类。 在尝试了解时,我发现用注释类表明Spring IoC容器可以使用该类作为bea

  • 我有一个项目a,这个项目被创建为项目B的依赖项。但是,在项目a中,我有一个spring@configuration类,用于junit测试等。当我为项目a构建jar并将其添加为B的依赖项时,B看到了a的所有配置类,并开始抱怨。所以我不得不评论@Configuration annotations是一个,重建我的libs并再次添加它们,但这不是一个好方法。如何向project B的spring解释它不应

  • 我有一个Python进程(或者更确切地说,在一个使用者组中并行运行的一组进程),它根据来自某个主题的Kafka消息输入来处理数据。通常每条消息的处理都很快,但有时,取决于消息的内容,可能需要很长时间(几分钟)。在这种情况下,Kafka broker断开客户端与组的连接,并启动重新平衡。我可以将设置为一个非常大的值,但它可能会超过10分钟,这意味着如果客户机死亡,集群在10分钟内无法正确地重新平衡。

  • 问题内容: 要编译此代码,我可以: 将我的通话置于try / catch块中,或 已经声明它可以抛出一个。 为什么我必须这样做? (示例代码来自Kathy Sierra的SCJP书 。) 我知道引发的异常是已检查的异常,因此我必须处理它,但是在什么情况下需要引发此异常? 问题答案: 如果以一种可以引发检查异常的方式声明方法(不是的子类),则调用该方法的代码必须在一个块中调用它,否则调用者方法必须声