idea 16 AspectJ maven单元DEMO 测试 配置

本文详细介绍如何在IntelliJ IDEA中配置AspectJ进行AOP编程。从搭建环境开始,逐步介绍所需工具版本、Maven项目的创建过程及POM文件配置细节。并通过一个简单的HelloWorld示例展示了AspectJ切面的具体编写与运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


这个DEMO 只能用作测试  不能用作maven 的 insertAll 和打包

我这边在尝试的使用AspectJ 来进行AOP的权限管理 然后非常的 ......

我这边第一步就把我难住了 那就是idea对 AspectJ 的配置  搞了2个多小时才弄出来

ok 进入正题

我们需要 idea 16

maven

aspectjrt 1.8.9
aspectjtools 1.8.9

新建一个 maven项目  我没有用用wabapp这个maven模版





点击next


点击下一步



在这里需要注意 要添加 archetypeCatalog=internal 否则maven建立速度非常的慢



刚开始进去的时候可能 会是这个样子 那么我们就需要手动的配置下 文件  把java改源代码文件夹


改变后


可能有部分的同学需要修改下settings  有的不用




这边我把 aspectJ 和他的 tools上传到我的资源了 需要的可以去拿  要不然自己下载很慢  


然后是POM的配置文件

就是这个样子

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>me.mritd</groupId>
    <artifactId>Test1</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>


    <dependencies>
        <!-- https://mvnrepository.com/artifact/org.aspectj/aspectjrt -->
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjrt</artifactId>
            <version>1.8.9</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.aspectj/aspectjtools -->
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjtools</artifactId>
            <version>1.8.9</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>RELEASE</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <!-- Maven 编译插件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.5.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <!-- AspectJ 编译插件 -->
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>aspectj-maven-plugin</artifactId>
                <version>1.8</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>compile</goal>       <!-- use this goal to weave all your main classes -->
                            <goal>test-compile</goal>  <!-- use this goal to weave all your test classes -->
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>


然后是demo

java 测试 HelloWorld.java

package me.mritd.demo;

/**
 * Created by m1867 on 2016/10/28.
 */
public class HelloWorld {
    public static void main(int i){
        System.out.println("in the main method  i = " + i);
    }

    /**
     * @param args
     */
    public static void main(String[] args) {
        main(5);
    }
}


然后是 AspjectJ

HelloAsoect.aj


package me.mritd.demo;

/**
 * Created by m1867 on 2016/10/28.
 */
public aspect HelloAspect {
   /* pointcut HelloWorldPointCut() : call(* main(int));*/
     pointcut HelloWorldPointCut() : execution(* main(int));


/*    before() : HelloWorldPointCut(){
        System.out.println("Entering : " + thisJoinPoint.getSourceLocation());
    }*/
    after() returning (Object o): HelloWorldPointCut() {
        System.out.println("Returned normally with " + o);
    }
    after() throwing (Exception e): HelloWorldPointCut() {
        System.out.println("Threw an exception: " + e);
    }
    after(): HelloWorldPointCut(){
        System.out.println("Returned or threw an Exception");
    }
}

ok

执行后的结果是

in the main method  i = 5
Returned normally with null
Returned or threw an Exception


Process finished with exit code 0


最后分享一个大牛的 教程 虽然我自己还没有学会用

http://blog.youkuaiyun.com/zl3450341/article/category/1169602



感谢网络上的大牛和前辈 的教程和指导  虽然demo出来了 但我还是没有实现我想要的业务  哭

运行后报错:"C:\Program Files\Java\jdk-11\bin\java.exe" -XX:TieredStopAtLevel=1 -noverify -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=*" "-javaagent:D:\IntelliJ IDEA 2023.2.5\lib\idea_rt.jar=7344:D:\IntelliJ IDEA 2023.2.5\bin" -Dfile.encoding=UTF-8 -classpath D:\A-work\cas-sso-demo\cas-server\target\classes;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-webapp\6.6.14\cas-server-webapp-6.6.14.war;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-support-jdbc\6.6.14\cas-server-support-jdbc-6.6.14.jar;D:\IDEA\maven\maven_repository\javax\xml\bind\jaxb-api\2.3.1\jaxb-api-2.3.1.jar;D:\IDEA\maven\maven_repository\javax\xml\ws\jaxws-api\2.3.1\jaxws-api-2.3.1.jar;D:\IDEA\maven\maven_repository\org\glassfish\main\javaee-api\javax.jws\3.1.2.2\javax.jws-3.1.2.2.jar;D:\IDEA\maven\maven_repository\org\glassfish\main\javaee-api\javax.jms\3.1.2.2\javax.jms-3.1.2.2.jar;D:\IDEA\maven\maven_repository\javax\xml\soap\javax.xml.soap-api\1.4.0\javax.xml.soap-api-1.4.0.jar;D:\IDEA\maven\maven_repository\org\glassfish\jaxb\jaxb-runtime\2.3.6\jaxb-runtime-2.3.6.jar;D:\IDEA\maven\maven_repository\com\sun\istack\istack-commons-runtime\4.1.1\istack-commons-runtime-4.1.1.jar;D:\IDEA\maven\maven_repository\io\swagger\core\v3\swagger-annotations\2.2.2\swagger-annotations-2.2.2.jar;D:\IDEA\maven\maven_repository\org\slf4j\slf4j-api\1.7.36\slf4j-api-1.7.36.jar;D:\IDEA\maven\maven_repository\org\slf4j\jul-to-slf4j\1.7.36\jul-to-slf4j-1.7.36.jar;D:\IDEA\maven\maven_repository\com\google\guava\guava\30.1.1-jre\guava-30.1.1-jre.jar;D:\IDEA\maven\maven_repository\com\google\guava\failureaccess\1.0.1\failureaccess-1.0.1.jar;D:\IDEA\maven\maven_repository\com\google\guava\listenablefuture\9999.0-empty-to-avoid-conflict-with-guava\listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar;D:\IDEA\maven\maven_repository\com\google\code\findbugs\jsr305\3.0.2\jsr305-3.0.2.jar;D:\IDEA\maven\maven_repository\org\checkerframework\checker-qual\3.8.0\checker-qual-3.8.0.jar;D:\IDEA\maven\maven_repository\com\google\j2objc\j2objc-annotations\1.3\j2objc-annotations-1.3.jar;D:\IDEA\maven\maven_repository\de\cronn\reflection-util\2.14.0\reflection-util-2.14.0.jar;D:\IDEA\maven\maven_repository\net\bytebuddy\byte-buddy\1.12.12\byte-buddy-1.12.12.jar;D:\IDEA\maven\maven_repository\org\objenesis\objenesis\3.2\objenesis-3.2.jar;D:\IDEA\maven\maven_repository\org\springmodules\spring-modules-cache\0.8\spring-modules-cache-0.8.jar;D:\IDEA\maven\maven_repository\commons-attributes\commons-attributes-api\2.1\commons-attributes-api-2.1.jar;D:\IDEA\maven\maven_repository\qdox\qdox\1.5\qdox-1.5.jar;D:\IDEA\maven\maven_repository\commons-attributes\commons-attributes-compiler\2.1\commons-attributes-compiler-2.1.jar;D:\IDEA\maven\maven_repository\concurrent\concurrent\1.3.4\concurrent-1.3.4.jar;D:\IDEA\maven\maven_repository\cglib\cglib-nodep\2.1_3\cglib-nodep-2.1_3.jar;D:\IDEA\maven\maven_repository\geronimo-spec\geronimo-spec-jta\1.0.1B-rc4\geronimo-spec-jta-1.0.1B-rc4.jar;D:\IDEA\maven\maven_repository\opensymphony\oscache\2.1.1\oscache-2.1.1.jar;D:\IDEA\maven\maven_repository\oro\oro\2.0.8\oro-2.0.8.jar;D:\IDEA\maven\maven_repository\commons-io\commons-io\2.11.0\commons-io-2.11.0.jar;D:\IDEA\maven\maven_repository\org\apache\commons\commons-jexl3\3.2.1\commons-jexl3-3.2.1.jar;D:\IDEA\maven\maven_repository\org\apache\commons\commons-text\1.10.0\commons-text-1.10.0.jar;D:\IDEA\maven\maven_repository\org\apache\commons\commons-pool2\2.11.1\commons-pool2-2.11.1.jar;D:\IDEA\maven\maven_repository\commons-cli\commons-cli\1.5.0\commons-cli-1.5.0.jar;D:\IDEA\maven\maven_repository\commons-beanutils\commons-beanutils\1.9.4\commons-beanutils-1.9.4.jar;D:\IDEA\maven\maven_repository\commons-validator\commons-validator\1.7\commons-validator-1.7.jar;D:\IDEA\maven\maven_repository\commons-codec\commons-codec\1.15\commons-codec-1.15.jar;D:\IDEA\maven\maven_repository\org\apache\commons\commons-lang3\3.12.0\commons-lang3-3.12.0.jar;D:\IDEA\maven\maven_repository\commons-lang\commons-lang\2.6\commons-lang-2.6.jar;D:\IDEA\maven\maven_repository\org\jooq\jool\0.9.14\jool-0.9.14.jar;D:\IDEA\maven\maven_repository\commons-collections\commons-collections\3.2.2\commons-collections-3.2.2.jar;D:\IDEA\maven\maven_repository\org\apache\commons\commons-collections4\4.4\commons-collections4-4.4.jar;D:\IDEA\maven\maven_repository\org\apereo\inspektr\inspektr-audit\1.8.21.GA\inspektr-audit-1.8.21.GA.jar;D:\IDEA\maven\maven_repository\org\apereo\inspektr\inspektr-common\1.8.21.GA\inspektr-common-1.8.21.GA.jar;D:\IDEA\maven\maven_repository\org\apereo\inspektr\inspektr-support-spring\1.8.21.GA\inspektr-support-spring-1.8.21.GA.jar;D:\IDEA\maven\maven_repository\org\apereo\service\persondir\person-directory-impl\2.0.13\person-directory-impl-2.0.13.jar;D:\IDEA\maven\maven_repository\aopalliance\aopalliance\1.0\aopalliance-1.0.jar;D:\IDEA\maven\maven_repository\org\apereo\service\persondir\person-directory-api\2.0.13\person-directory-api-2.0.13.jar;D:\IDEA\maven\maven_repository\com\microsoft\alm\oauth2-useragent\0.11.3\oauth2-useragent-0.11.3.jar;D:\IDEA\maven\maven_repository\org\springframework\spring-aop\5.3.22\spring-aop-5.3.22.jar;D:\IDEA\maven\maven_repository\org\springframework\spring-beans\5.3.22\spring-beans-5.3.22.jar;D:\IDEA\maven\maven_repository\org\springframework\spring-context\5.3.22\spring-context-5.3.22.jar;D:\IDEA\maven\maven_repository\org\springframework\spring-context-support\5.3.22\spring-context-support-5.3.22.jar;D:\IDEA\maven\maven_repository\org\springframework\retry\spring-retry\1.3.3\spring-retry-1.3.3.jar;D:\IDEA\maven\maven_repository\org\springframework\spring-core\5.3.22\spring-core-5.3.22.jar;D:\IDEA\maven\maven_repository\org\springframework\spring-jcl\5.3.22\spring-jcl-5.3.22.jar;D:\IDEA\maven\maven_repository\org\springframework\data\spring-data-commons\2.7.2\spring-data-commons-2.7.2.jar;D:\IDEA\maven\maven_repository\org\springframework\spring-jms\5.3.22\spring-jms-5.3.22.jar;D:\IDEA\maven\maven_repository\org\springframework\spring-messaging\5.3.22\spring-messaging-5.3.22.jar;D:\IDEA\maven\maven_repository\org\springframework\spring-expression\5.3.22\spring-expression-5.3.22.jar;D:\IDEA\maven\maven_repository\org\springframework\spring-jdbc\5.3.22\spring-jdbc-5.3.22.jar;D:\IDEA\maven\maven_repository\org\springframework\spring-orm\5.3.22\spring-orm-5.3.22.jar;D:\IDEA\maven\maven_repository\org\springframework\spring-tx\5.3.22\spring-tx-5.3.22.jar;D:\IDEA\maven\maven_repository\org\springframework\spring-web\5.3.22\spring-web-5.3.22.jar;D:\IDEA\maven\maven_repository\org\springframework\spring-webmvc\5.3.22\spring-webmvc-5.3.22.jar;D:\IDEA\maven\maven_repository\com\fasterxml\jackson\core\jackson-databind\2.13.4\jackson-databind-2.13.4.jar;D:\IDEA\maven\maven_repository\com\fasterxml\jackson\core\jackson-core\2.13.4\jackson-core-2.13.4.jar;D:\IDEA\maven\maven_repository\com\fasterxml\jackson\datatype\jackson-datatype-guava\2.13.4\jackson-datatype-guava-2.13.4.jar;D:\IDEA\maven\maven_repository\com\fasterxml\jackson\core\jackson-annotations\2.13.4\jackson-annotations-2.13.4.jar;D:\IDEA\maven\maven_repository\com\fasterxml\jackson\jaxrs\jackson-jaxrs-json-provider\2.13.4\jackson-jaxrs-json-provider-2.13.4.jar;D:\IDEA\maven\maven_repository\com\fasterxml\jackson\jaxrs\jackson-jaxrs-base\2.13.4\jackson-jaxrs-base-2.13.4.jar;D:\IDEA\maven\maven_repository\com\fasterxml\jackson\module\jackson-module-jaxb-annotations\2.13.4\jackson-module-jaxb-annotations-2.13.4.jar;D:\IDEA\maven\maven_repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.13.4\jackson-datatype-jsr310-2.13.4.jar;D:\IDEA\maven\maven_repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.13.4\jackson-module-parameter-names-2.13.4.jar;D:\IDEA\maven\maven_repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.13.4\jackson-datatype-jdk8-2.13.4.jar;D:\IDEA\maven\maven_repository\org\hjson\hjson\3.0.1\hjson-3.0.1.jar;D:\IDEA\maven\maven_repository\com\fasterxml\jackson\dataformat\jackson-dataformat-yaml\2.13.4\jackson-dataformat-yaml-2.13.4.jar;D:\IDEA\maven\maven_repository\com\fasterxml\jackson\dataformat\jackson-dataformat-xml\2.13.4\jackson-dataformat-xml-2.13.4.jar;D:\IDEA\maven\maven_repository\org\codehaus\woodstox\stax2-api\4.2.1\stax2-api-4.2.1.jar;D:\IDEA\maven\maven_repository\com\fasterxml\woodstox\woodstox-core\6.3.1\woodstox-core-6.3.1.jar;D:\IDEA\maven\maven_repository\com\fasterxml\jackson\dataformat\jackson-dataformat-properties\2.13.4\jackson-dataformat-properties-2.13.4.jar;D:\IDEA\maven\maven_repository\org\apache\httpcomponents\httpclient\4.5.13\httpclient-4.5.13.jar;D:\IDEA\maven\maven_repository\org\apache\httpcomponents\httpcore\4.4.15\httpcore-4.4.15.jar;D:\IDEA\maven\maven_repository\org\quartz-scheduler\quartz\2.3.2\quartz-2.3.2.jar;D:\IDEA\maven\maven_repository\com\mchange\mchange-commons-java\0.2.15\mchange-commons-java-0.2.15.jar;D:\IDEA\maven\maven_repository\org\apache\bval\bval-jsr\2.0.6\bval-jsr-2.0.6.jar;D:\IDEA\maven\maven_repository\javax\persistence\javax.persistence-api\2.2\javax.persistence-api-2.2.jar;D:\IDEA\maven\maven_repository\org\apache\groovy\groovy-jsr223\4.0.4\groovy-jsr223-4.0.4.jar;D:\IDEA\maven\maven_repository\org\apache\groovy\groovy-json\4.0.4\groovy-json-4.0.4.jar;D:\IDEA\maven\maven_repository\org\apache\groovy\groovy-xml\4.0.4\groovy-xml-4.0.4.jar;D:\IDEA\maven\maven_repository\org\apache\groovy\groovy\4.0.4\groovy-4.0.4.jar;D:\IDEA\maven\maven_repository\org\apache\groovy\groovy-datetime\4.0.4\groovy-datetime-4.0.4.jar;D:\IDEA\maven\maven_repository\org\apache\groovy\groovy-templates\4.0.4\groovy-templates-4.0.4.jar;D:\IDEA\maven\maven_repository\org\apache\groovy\groovy-sql\4.0.4\groovy-sql-4.0.4.jar;D:\IDEA\maven\maven_repository\org\apache\groovy\groovy-groovysh\4.0.4\groovy-groovysh-4.0.4.jar;D:\IDEA\maven\maven_repository\jline\jline\2.14.6\jline-2.14.6.jar;D:\IDEA\maven\maven_repository\com\github\ben-manes\caffeine\caffeine\3.1.1\caffeine-3.1.1.jar;D:\IDEA\maven\maven_repository\com\google\errorprone\error_prone_annotations\2.14.0\error_prone_annotations-2.14.0.jar;D:\IDEA\maven\maven_repository\com\github\ben-manes\caffeine\guava\3.1.1\guava-3.1.1.jar;D:\IDEA\maven\maven_repository\org\springframework\cloud\spring-cloud-starter-bootstrap\3.1.3\spring-cloud-starter-bootstrap-3.1.3.jar;D:\IDEA\maven\maven_repository\org\springframework\cloud\spring-cloud-starter\3.1.3\spring-cloud-starter-3.1.3.jar;D:\IDEA\maven\maven_repository\org\springframework\cloud\spring-cloud-commons\3.1.3\spring-cloud-commons-3.1.3.jar;D:\IDEA\maven\maven_repository\org\springframework\cloud\spring-cloud-context\3.1.3\spring-cloud-context-3.1.3.jar;D:\IDEA\maven\maven_repository\org\springframework\boot\spring-boot-starter-aop\2.7.3\spring-boot-starter-aop-2.7.3.jar;D:\IDEA\maven\maven_repository\org\springframework\boot\spring-boot-starter-web\2.7.3\spring-boot-starter-web-2.7.3.jar;D:\IDEA\maven\maven_repository\org\springframework\boot\spring-boot-autoconfigure\2.7.3\spring-boot-autoconfigure-2.7.3.jar;D:\IDEA\maven\maven_repository\org\springframework\boot\spring-boot\2.7.3\spring-boot-2.7.3.jar;D:\IDEA\maven\maven_repository\org\springframework\boot\spring-boot-properties-migrator\2.7.3\spring-boot-properties-migrator-2.7.3.jar;D:\IDEA\maven\maven_repository\org\springframework\boot\spring-boot-configuration-metadata\2.7.3\spring-boot-configuration-metadata-2.7.3.jar;D:\IDEA\maven\maven_repository\org\springframework\boot\spring-boot-starter-actuator\2.7.3\spring-boot-starter-actuator-2.7.3.jar;D:\IDEA\maven\maven_repository\org\springframework\boot\spring-boot-actuator-autoconfigure\2.7.3\spring-boot-actuator-autoconfigure-2.7.3.jar;D:\IDEA\maven\maven_repository\io\micrometer\micrometer-core\1.9.3\micrometer-core-1.9.3.jar;D:\IDEA\maven\maven_repository\org\hdrhistogram\HdrHistogram\2.1.12\HdrHistogram-2.1.12.jar;D:\IDEA\maven\maven_repository\org\latencyutils\LatencyUtils\2.0.3\LatencyUtils-2.0.3.jar;D:\IDEA\maven\maven_repository\org\springframework\boot\spring-boot-starter-validation\2.7.3\spring-boot-starter-validation-2.7.3.jar;D:\IDEA\maven\maven_repository\org\springframework\boot\spring-boot-actuator\2.7.3\spring-boot-actuator-2.7.3.jar;D:\IDEA\maven\maven_repository\org\springframework\security\spring-security-core\5.7.3\spring-security-core-5.7.3.jar;D:\IDEA\maven\maven_repository\org\springframework\security\spring-security-rsa\1.0.11.RELEASE\spring-security-rsa-1.0.11.RELEASE.jar;D:\IDEA\maven\maven_repository\org\springframework\security\spring-security-cas\5.7.3\spring-security-cas-5.7.3.jar;D:\IDEA\maven\maven_repository\org\springframework\security\spring-security-web\5.7.3\spring-security-web-5.7.3.jar;D:\IDEA\maven\maven_repository\org\springframework\integration\spring-integration-core\5.5.14\spring-integration-core-5.5.14.jar;D:\IDEA\maven\maven_repository\io\projectreactor\reactor-core\3.4.21\reactor-core-3.4.21.jar;D:\IDEA\maven\maven_repository\org\reactivestreams\reactive-streams\1.0.4\reactive-streams-1.0.4.jar;D:\IDEA\maven\maven_repository\org\springframework\integration\spring-integration-jmx\5.5.14\spring-integration-jmx-5.5.14.jar;D:\IDEA\maven\maven_repository\org\springframework\webflow\spring-webflow\2.5.1.RELEASE\spring-webflow-2.5.1.RELEASE.jar;D:\IDEA\maven\maven_repository\org\springframework\webflow\spring-binding\2.5.1.RELEASE\spring-binding-2.5.1.RELEASE.jar;D:\IDEA\maven\maven_repository\javax\el\javax.el-api\3.0.0\javax.el-api-3.0.0.jar;D:\IDEA\maven\maven_repository\org\glassfish\web\el-impl\2.2\el-impl-2.2.jar;D:\IDEA\maven\maven_repository\javax\servlet\javax.servlet-api\4.0.1\javax.servlet-api-4.0.1.jar;D:\IDEA\maven\maven_repository\javax\annotation\javax.annotation-api\1.3.2\javax.annotation-api-1.3.2.jar;D:\IDEA\maven\maven_repository\org\aspectj\aspectjrt\1.9.9.1\aspectjrt-1.9.9.1.jar;D:\IDEA\maven\maven_repository\org\aspectj\aspectjweaver\1.9.9.1\aspectjweaver-1.9.9.1.jar;D:\IDEA\maven\maven_repository\javax\validation\validation-api\2.0.1.Final\validation-api-2.0.1.Final.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-authentication-api\6.6.14\cas-server-core-authentication-api-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-api-services\6.6.14\cas-server-core-api-services-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-api-ticket\6.6.14\cas-server-core-api-ticket-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-authentication-mfa-api\6.6.14\cas-server-core-authentication-mfa-api-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-configuration-api\6.6.14\cas-server-core-configuration-api-6.6.14.jar;D:\IDEA\maven\maven_repository\org\yaml\snakeyaml\1.31\snakeyaml-1.31.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-util-api\6.6.14\cas-server-core-util-api-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-api-configuration-model\6.6.14\cas-server-core-api-configuration-model-6.6.14.jar;D:\IDEA\maven\maven_repository\org\springframework\boot\spring-boot-configuration-processor\2.7.3\spring-boot-configuration-processor-2.7.3.jar;D:\IDEA\maven\maven_repository\org\jsoup\jsoup\1.15.3\jsoup-1.15.3.jar;D:\IDEA\maven\maven_repository\org\json\json\20160810\json-20160810.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-api-mfa\6.6.14\cas-server-core-api-mfa-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-api-web\6.6.14\cas-server-core-api-web-6.6.14.jar;D:\IDEA\maven\maven_repository\org\bitbucket\b_c\jose4j\0.8.0\jose4j-0.8.0.jar;D:\IDEA\maven\maven_repository\org\pac4j\pac4j-config\5.4.6\pac4j-config-5.4.6.jar;D:\IDEA\maven\maven_repository\org\pac4j\pac4j-javaee\5.4.6\pac4j-javaee-5.4.6.jar;D:\IDEA\maven\maven_repository\org\pac4j\pac4j-http\5.4.6\pac4j-http-5.4.6.jar;D:\IDEA\maven\maven_repository\org\pac4j\pac4j-core\5.4.6\pac4j-core-5.4.6.jar;D:\IDEA\maven\maven_repository\org\pac4j\spring-webmvc-pac4j\6.0.3\spring-webmvc-pac4j-6.0.3.jar;D:\IDEA\maven\maven_repository\com\nimbusds\nimbus-jose-jwt\9.24.3\nimbus-jose-jwt-9.24.3.jar;D:\IDEA\maven\maven_repository\com\nimbusds\oauth2-oidc-sdk\9.42\oauth2-oidc-sdk-9.42.jar;D:\IDEA\maven\maven_repository\com\nimbusds\content-type\2.2\content-type-2.2.jar;D:\IDEA\maven\maven_repository\com\nimbusds\lang-tag\1.7\lang-tag-1.7.jar;D:\IDEA\maven\maven_repository\net\minidev\json-smart\2.4.9\json-smart-2.4.9.jar;D:\IDEA\maven\maven_repository\net\minidev\accessors-smart\2.4.9\accessors-smart-2.4.9.jar;D:\IDEA\maven\maven_repository\org\ow2\asm\asm\9.3\asm-9.3.jar;D:\IDEA\maven\maven_repository\com\github\stephenc\jcip\jcip-annotations\1.0-1\jcip-annotations-1.0-1.jar;D:\IDEA\maven\maven_repository\com\vdurmont\semver4j\3.1.0\semver4j-3.1.0.jar;D:\IDEA\maven\maven_repository\com\github\oshi\oshi-core\6.2.2\oshi-core-6.2.2.jar;D:\IDEA\maven\maven_repository\org\apache\velocity\velocity-engine-core\2.3\velocity-engine-core-2.3.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-support-jdbc-authentication\6.6.14\cas-server-support-jdbc-authentication-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apache\shiro\shiro-core\1.9.1\shiro-core-1.9.1.jar;D:\IDEA\maven\maven_repository\org\apache\shiro\shiro-lang\1.9.1\shiro-lang-1.9.1.jar;D:\IDEA\maven\maven_repository\org\apache\shiro\shiro-cache\1.9.1\shiro-cache-1.9.1.jar;D:\IDEA\maven\maven_repository\org\apache\shiro\shiro-crypto-hash\1.9.1\shiro-crypto-hash-1.9.1.jar;D:\IDEA\maven\maven_repository\org\apache\shiro\shiro-crypto-core\1.9.1\shiro-crypto-core-1.9.1.jar;D:\IDEA\maven\maven_repository\org\apache\shiro\shiro-crypto-cipher\1.9.1\shiro-crypto-cipher-1.9.1.jar;D:\IDEA\maven\maven_repository\org\apache\shiro\shiro-config-core\1.9.1\shiro-config-core-1.9.1.jar;D:\IDEA\maven\maven_repository\org\apache\shiro\shiro-config-ogdl\1.9.1\shiro-config-ogdl-1.9.1.jar;D:\IDEA\maven\maven_repository\org\apache\shiro\shiro-event\1.9.1\shiro-event-1.9.1.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-support-jpa-util\6.6.14\cas-server-support-jpa-util-6.6.14.jar;D:\IDEA\maven\maven_repository\com\zaxxer\HikariCP\5.0.1\HikariCP-5.0.1.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-support-jdbc-drivers\6.6.14\cas-server-support-jdbc-drivers-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-api\6.6.14\cas-server-core-api-6.6.14.jar;D:\IDEA\maven\maven_repository\org\hsqldb\hsqldb\2.7.0\hsqldb-2.7.0.jar;D:\IDEA\maven\maven_repository\org\postgresql\postgresql\42.5.0\postgresql-42.5.0.jar;D:\IDEA\maven\maven_repository\org\mariadb\jdbc\mariadb-java-client\3.0.7\mariadb-java-client-3.0.7.jar;D:\IDEA\maven\maven_repository\net\sourceforge\jtds\jtds\1.3.1\jtds-1.3.1.jar;D:\IDEA\maven\maven_repository\com\microsoft\sqlserver\mssql-jdbc\10.2.1.jre11\mssql-jdbc-10.2.1.jre11.jar;D:\IDEA\maven\maven_repository\com\oracle\ojdbc\ojdbc10\19.3.0.0\ojdbc10-19.3.0.0.jar;D:\IDEA\maven\maven_repository\com\oracle\ojdbc\ucp\19.3.0.0\ucp-19.3.0.0.jar;D:\IDEA\maven\maven_repository\com\oracle\ojdbc\oraclepki\19.3.0.0\oraclepki-19.3.0.0.jar;D:\IDEA\maven\maven_repository\com\oracle\ojdbc\osdt_cert\19.3.0.0\osdt_cert-19.3.0.0.jar;D:\IDEA\maven\maven_repository\com\oracle\ojdbc\osdt_core\19.3.0.0\osdt_core-19.3.0.0.jar;D:\IDEA\maven\maven_repository\com\oracle\ojdbc\simplefan\19.3.0.0\simplefan-19.3.0.0.jar;D:\IDEA\maven\maven_repository\com\oracle\ojdbc\ons\19.3.0.0\ons-19.3.0.0.jar;D:\IDEA\maven\maven_repository\com\h2database\h2\1.4.197\h2-1.4.197.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-support-redis-ticket-registry\6.6.14\cas-server-support-redis-ticket-registry-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-api-util\6.6.14\cas-server-core-api-util-6.6.14.jar;D:\IDEA\maven\maven_repository\io\github\classgraph\classgraph\4.8.149\classgraph-4.8.149.jar;D:\IDEA\maven\maven_repository\org\springframework\data\spring-data-redis\2.7.2\spring-data-redis-2.7.2.jar;D:\IDEA\maven\maven_repository\org\springframework\data\spring-data-keyvalue\2.7.2\spring-data-keyvalue-2.7.2.jar;D:\IDEA\maven\maven_repository\org\springframework\spring-oxm\5.3.22\spring-oxm-5.3.22.jar;D:\IDEA\maven\maven_repository\org\springframework\integration\spring-integration-redis\5.5.14\spring-integration-redis-5.5.14.jar;D:\IDEA\maven\maven_repository\io\lettuce\lettuce-core\6.2.0.RELEASE\lettuce-core-6.2.0.RELEASE.jar;D:\IDEA\maven\maven_repository\io\netty\netty-common\4.1.79.Final\netty-common-4.1.79.Final.jar;D:\IDEA\maven\maven_repository\io\netty\netty-handler\4.1.79.Final\netty-handler-4.1.79.Final.jar;D:\IDEA\maven\maven_repository\io\netty\netty-resolver\4.1.79.Final\netty-resolver-4.1.79.Final.jar;D:\IDEA\maven\maven_repository\io\netty\netty-buffer\4.1.79.Final\netty-buffer-4.1.79.Final.jar;D:\IDEA\maven\maven_repository\io\netty\netty-transport-native-unix-common\4.1.79.Final\netty-transport-native-unix-common-4.1.79.Final.jar;D:\IDEA\maven\maven_repository\io\netty\netty-codec\4.1.79.Final\netty-codec-4.1.79.Final.jar;D:\IDEA\maven\maven_repository\io\netty\netty-transport\4.1.79.Final\netty-transport-4.1.79.Final.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-logging\6.6.14\cas-server-core-logging-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-api-cookie\6.6.14\cas-server-core-api-cookie-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-logging-api\6.6.14\cas-server-core-logging-api-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-cookie-api\6.6.14\cas-server-core-cookie-api-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-web-api\6.6.14\cas-server-core-web-api-6.6.14.jar;D:\IDEA\maven\maven_repository\org\springframework\boot\spring-boot-starter-log4j2\2.7.3\spring-boot-starter-log4j2-2.7.3.jar;D:\IDEA\maven\maven_repository\org\apache\logging\log4j\log4j-jul\2.17.2\log4j-jul-2.17.2.jar;D:\IDEA\maven\maven_repository\org\apache\logging\log4j\log4j-api\2.18.0\log4j-api-2.18.0.jar;D:\IDEA\maven\maven_repository\org\apache\logging\log4j\log4j-core\2.18.0\log4j-core-2.18.0.jar;D:\IDEA\maven\maven_repository\org\apache\logging\log4j\log4j-jcl\2.18.0\log4j-jcl-2.18.0.jar;D:\IDEA\maven\maven_repository\org\apache\logging\log4j\log4j-web\2.18.0\log4j-web-2.18.0.jar;D:\IDEA\maven\maven_repository\org\apache\logging\log4j\log4j-slf4j-impl\2.18.0\log4j-slf4j-impl-2.18.0.jar;D:\IDEA\maven\maven_repository\org\apache\logging\log4j\log4j-layout-template-json\2.18.0\log4j-layout-template-json-2.18.0.jar;D:\IDEA\maven\maven_repository\com\lmax\disruptor\3.4.4\disruptor-3.4.4.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-tickets-api\6.6.14\cas-server-core-tickets-api-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-api-logout\6.6.14\cas-server-core-api-logout-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-services-authentication\6.6.14\cas-server-core-services-authentication-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-services\6.6.14\cas-server-core-services-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-api-audit\6.6.14\cas-server-core-api-audit-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-services-api\6.6.14\cas-server-core-services-api-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-services-registry\6.6.14\cas-server-core-services-registry-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-authentication-attributes\6.6.14\cas-server-core-authentication-attributes-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-events-api\6.6.14\cas-server-core-events-api-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-notifications\6.6.14\cas-server-core-notifications-6.6.14.jar;D:\IDEA\maven\maven_repository\org\springframework\boot\spring-boot-starter-mail\2.7.3\spring-boot-starter-mail-2.7.3.jar;D:\IDEA\maven\maven_repository\com\sun\mail\jakarta.mail\1.6.7\jakarta.mail-1.6.7.jar;D:\IDEA\maven\maven_repository\com\sun\activation\jakarta.activation\1.2.1\jakarta.activation-1.2.1.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-support-redis-core\6.6.14\cas-server-support-redis-core-6.6.14.jar;D:\IDEA\maven\maven_repository\com\mysql\mysql-connector-j\8.0.33\mysql-connector-j-8.0.33.jar;D:\IDEA\maven\maven_repository\com\google\protobuf\protobuf-java\3.21.9\protobuf-java-3.21.9.jar;D:\IDEA\maven\maven_repository\org\springframework\boot\spring-boot-starter-data-redis\2.7.18\spring-boot-starter-data-redis-2.7.18.jar;D:\IDEA\maven\maven_repository\org\springframework\boot\spring-boot-starter\2.7.18\spring-boot-starter-2.7.18.jar;D:\IDEA\maven\maven_repository\org\springframework\boot\spring-boot-starter-logging\2.7.18\spring-boot-starter-logging-2.7.18.jar;D:\IDEA\maven\maven_repository\ch\qos\logback\logback-classic\1.2.12\logback-classic-1.2.12.jar;D:\IDEA\maven\maven_repository\ch\qos\logback\logback-core\1.2.12\logback-core-1.2.12.jar;D:\IDEA\maven\maven_repository\org\apache\logging\log4j\log4j-to-slf4j\2.17.2\log4j-to-slf4j-2.17.2.jar;D:\IDEA\maven\maven_repository\org\springframework\boot\spring-boot-starter-tomcat\2.7.18\spring-boot-starter-tomcat-2.7.18.jar;D:\IDEA\maven\maven_repository\jakarta\annotation\jakarta.annotation-api\1.3.5\jakarta.annotation-api-1.3.5.jar;D:\IDEA\maven\maven_repository\org\apache\tomcat\embed\tomcat-embed-core\9.0.83\tomcat-embed-core-9.0.83.jar;D:\IDEA\maven\maven_repository\org\apache\tomcat\embed\tomcat-embed-el\9.0.83\tomcat-embed-el-9.0.83.jar;D:\IDEA\maven\maven_repository\org\apache\tomcat\embed\tomcat-embed-websocket\9.0.83\tomcat-embed-websocket-9.0.83.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-configuration\6.6.14\cas-server-core-configuration-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-api-configuration\6.6.14\cas-server-core-api-configuration-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-api-authentication\6.6.14\cas-server-core-api-authentication-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-api-protocol\6.6.14\cas-server-core-api-protocol-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-api-monitor\6.6.14\cas-server-core-api-monitor-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-api-webflow\6.6.14\cas-server-core-api-webflow-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-api-events\6.6.14\cas-server-core-api-events-6.6.14.jar;D:\IDEA\maven\maven_repository\org\apereo\cas\cas-server-core-api-validation\6.6.14\cas-server-core-api-validation-6.6.14.jar;D:\IDEA\maven\maven_repository\org\jasypt\jasypt\1.9.3\jasypt-1.9.3.jar;D:\IDEA\maven\maven_repository\org\bouncycastle\bcpkix-jdk15on\1.70\bcpkix-jdk15on-1.70.jar;D:\IDEA\maven\maven_repository\org\bouncycastle\bcutil-jdk15on\1.70\bcutil-jdk15on-1.70.jar;D:\IDEA\maven\maven_repository\org\cryptacular\cryptacular\1.2.5\cryptacular-1.2.5.jar;D:\IDEA\maven\maven_repository\org\bouncycastle\bcprov-jdk18on\1.71\bcprov-jdk18on-1.71.jar;D:\IDEA\maven\maven_repository\org\bouncycastle\bcprov-jdk15on\1.70\bcprov-jdk15on-1.70.jar;D:\IDEA\maven\maven_repository\org\springframework\security\spring-security-crypto\5.7.8\spring-security-crypto-5.7.8.jar;D:\IDEA\maven\maven_repository\jakarta\xml\bind\jakarta.xml.bind-api\2.3.3\jakarta.xml.bind-api-2.3.3.jar;D:\IDEA\maven\maven_repository\jakarta\activation\jakarta.activation-api\1.2.2\jakarta.activation-api-1.2.2.jar com.example.casserver.CasServerApplication SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/D:/IDEA/maven/maven_repository/org/apache/logging/log4j/log4j-slf4j-impl/2.18.0/log4j-slf4j-impl-2.18.0.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/D:/IDEA/maven/maven_repository/ch/qos/logback/logback-classic/1.2.12/logback-classic-1.2.12.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory] Exception in thread "main" java.lang.ExceptionInInitializerError at com.example.casserver.CasServerApplication.main(CasServerApplication.java:10) Caused by: org.apache.logging.log4j.LoggingException: log4j-slf4j-impl cannot be present with log4j-to-slf4j at org.apache.logging.slf4j.Log4jLoggerFactory.validateContext(Log4jLoggerFactory.java:60) at org.apache.logging.slf4j.Log4jLoggerFactory.newLogger(Log4jLoggerFactory.java:44) at org.apache.logging.slf4j.Log4jLoggerFactory.newLogger(Log4jLoggerFactory.java:33) at org.apache.logging.log4j.spi.AbstractLoggerAdapter.getLogger(AbstractLoggerAdapter.java:53) at org.apache.logging.slf4j.Log4jLoggerFactory.getLogger(Log4jLoggerFactory.java:33) at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:363) at org.apache.commons.logging.LogAdapter$Slf4jAdapter.createLocationAwareLog(LogAdapter.java:130) at org.apache.commons.logging.LogAdapter.createLog(LogAdapter.java:91) at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:67) at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:59) at org.springframework.boot.SpringApplication.<clinit>(SpringApplication.java:179) ... 1 more Process finished with exit code 1
最新发布
07-03
<think>我们遇到了一个SLF4J绑定冲突的问题。错误信息显示: "SLF4J: Classpath containsmultiple SLF4J bindings."并且具体指出了两个绑定:1.org.apache.logging.log4j:log4j-slf4j-impl2.ch.qos.logback:logback-classic此外,异常信息明确指出: "log4j-slf4j-implcannot bepresent withlog4j-to-slf4j" 但是,在错误信息中,我们并没有直接看到log4j-to-slf4j,而是看到了logback-classic。实际上,log4j-slf4j-impl是Log4j2的SLF4J绑定,而logback-classic是Logback的SLF4J绑定。两者都是SLF4J的具体实现,因此冲突。 然而,异常信息中提到的“log4j-slf4j-impl cannotbe presentwith log4j-to-slf4j”是因为在Log4j2的文档中,log4j-slf4j-impl和log4j-to-slf4j(这个桥接器用于将Log4j2的日志重定向到SLF4J)不能同时存在。但是这里并没有出现log4j-to-slf4j,而是出现了logback-classic。所以,问题本质上是两个不同的SLF4J实现在同一个类路径下。从依赖树来看,我们同时引入了:-log4j-slf4j-impl(来自cas-server-core-logging,它使用了Log4j2)- logback-classic(来自spring-boot-starter-logging,因为我们在spring-boot-starter-data-redis中传递依赖了spring-boot-starter,而它又依赖了spring-boot-starter-logging,其中默认使用Logback)因此,我们需要排除其中一个绑定。由于CAS项目通常使用Log4j2,而SpringBoot默认使用Logback,所以我们需要统一日志框架。根据CAS的文档,它使用的是Log4j2,因此我们应该排除SpringBoot中的Logback依赖。解决方案:1.排除spring-boot-starter-logging(它会引入logback-classic)2.确保使用Log4j2作为日志实现在Maven中,我们可以这样排除: ```xml<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId></exclusion></exclusions></dependency> ```同时,我们已经在依赖中引入了spring-boot-starter-log4j2,所以排除掉logback后,应该使用Log4j2。 另外,注意错误信息中还有一个警告:log4j-slf4j-impl和log4j-to-slf4j不能同时存在。但是我们在依赖中并没有显式引入log4j-to-slf4j,所以暂时不用处理。如果后续出现,需要排除。但是,我们注意到在依赖中有一个log4j-to-slf4j的包,它是从spring-boot-starter-logging中传递过来的(因为spring-boot-starter-logging包含了log4j-to-slf4j,用于将log4j1.x的日志重定向到SLF4J)。然而,我们使用的是log4j2,所以这个包不会影响。但是,当我们排除了spring-boot-starter-logging后,这个包也会被排除,所以不会冲突。因此,我们只需要排除spring-boot-starter-logging即可。重新运行程序,应该可以解决绑定冲突的问题。 如果还有问题,请检查是否还有其他依赖引入了logback-classic或log4j-slf4j-impl,并确保只有一个SLF4J绑定存在。注意:在SpringBoot项目中,如果要使用Log4j2,通常需要排除默认的Logback,并引入spring-boot-starter-log4j2。在CAS项目中,通常已经配置好了Log4j2,所以按照上述排除即可。现在,我们来回答用户的问题:如何解决这个异常。</think>### 问题分析 您遇到的错误是由于日志框架绑定冲突导致的: 1. **SLF4J检测到多个绑定**:类路径中同时存在 `log4j-slf4j-impl` (Log4j2 实现) 和 `logback-classic` (Logback 实现) 2. **冲突的日志框架**: - `cas-server-core-logging` 依赖 Log4j2 - `spring-boot-starter-logging` 依赖 Logback 3. **异常直接原因**:`log4j-slf4j-impl` 与 `log4j-to-slf4j` 不兼容(后者是 Logback 的桥接器) ### 解决方案 #### 方法 1:统一使用 Log4j2(推荐) 在 Maven 中排除 Logback 并引入 Log4j2 启动器: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> <exclusions> <!-- 排除 Logback --> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> <!-- 添加 Log4j2 支持 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> </dependency> ``` #### 方法 2:统一使用 Logback 排除 CAS 中的 Log4j2 依赖(需验证 CAS 兼容性): ```xml <dependency> <groupId>org.apereo.cas</groupId> <artifactId>cas-server-core-logging</artifactId> <exclusions> <!-- 排除 Log4j2 --> <exclusion> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-slf4j-impl</artifactId> </exclusion> </exclusions> </dependency> ``` ### 验证步骤 1. 执行 `mvn dependency:tree` 检查日志依赖 2. 确保项目中只存在**一个** SLF4J 绑定实现 3. 清理编译缓存后重启应用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值