微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

错误 BasicErrorController 由于注释@EnableAspectJAutoProxy 在 Spring Boot 2.3.6 中

如何解决错误 BasicErrorController 由于注释@EnableAspectJAutoProxy 在 Spring Boot 2.3.6 中

我正在将自己的小型库从 java 8 和 Spring Boot 1.5.x 迁移到 java 11 和 Spring Boot 2.3.x。 我有一些代码测试。当我在 java 8 中运行它们时,一切都很好,所有测试都通过了。 但是当我迁移到 Java 11 和 SB 2.3.x 时出现错误。这是日志:

[INFO] -------------------< com.alexshuvaev.libs:log-aspects-library >-------------------
[INFO] Building log-aspects-library 1.0-SNAPSHOT                          [5/5]
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- jacoco-maven-plugin:0.8.6:prepare-agent (default) @ log-aspects-library ---
[INFO] argLine set to -javaagent:C:\\Users\\Aleksandr_Shuvaev\\.m2\\repository\\org\\jacoco\\org.jacoco.agent\\0.8.6\\org.jacoco.agent-0.8.6-runtime.jar=destfile=D:\\projects\\alexshuvaev\\foraudit\\log-common\\log-aspects-library\\target\\jacoco.exec
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ log-aspects-library ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory D:\projects\alexshuvaev\foraudit\log-common\log-aspects-library\src\main\resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ log-aspects-library ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 11 source files to D:\projects\alexshuvaev\foraudit\log-common\log-aspects-library\target\classes
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ log-aspects-library ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] copying 1 resource
[INFO] 
[INFO] --- maven-compiler-plugin:3.8.1:testCompile (default-testCompile) @ log-aspects-library ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 10 source files to D:\projects\alexshuvaev\foraudit\log-common\log-aspects-library\target\test-classes
[INFO] 
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ log-aspects-library ---
[INFO] Surefire report directory: D:\projects\alexshuvaev\foraudit\log-common\log-aspects-library\target\surefire-reports

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running com.alexshuvaev.libs.logging.annotation.EnableLogAspectsImportSelectorTest
Tests run: 2,Failures: 0,Errors: 0,Skipped: 0,Time elapsed: 1.388 sec
Running com.alexshuvaev.libs.logging.annotation.LoggableContextTest
2021-02-13 14:36:35.552  INFO   --- [           main] .b.t.c.SpringBoottestContextBootstrapper : Neither @ContextConfiguration nor @ContextHierarchy found for test class [com.alexshuvaev.libs.logging.annotation.LoggableContextTest],using SpringBootContextLoader
2021-02-13 14:36:35.566  INFO   --- [           main] o.s.t.c.support.AbstractContextLoader    : Could not detect default resource locations for test class [com.alexshuvaev.libs.logging.annotation.LoggableContextTest]: no resource found for suffixes {-context.xml,Context.groovy}.
2021-02-13 14:36:35.903  INFO   --- [           main] .b.t.c.SpringBoottestContextBootstrapper : Loaded default TestExecutionListener class names from location [meta-inf/spring.factories]: [org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener,org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener,org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener,org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener,org.springframework.boot.test.autoconfigure.web.servlet.mockmvcPrintOnlyOnFailureTestExecutionListener,org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener,org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener,org.springframework.test.context.web.ServletTestExecutionListener,org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener,org.springframework.test.context.support.DependencyInjectionTestExecutionListener,org.springframework.test.context.support.DirtiesContextTestExecutionListener,org.springframework.test.context.transaction.TransactionalTestExecutionListener,org.springframework.test.context.jdbc.sqlScriptsTestExecutionListener,org.springframework.test.context.event.EventPublishingTestExecutionListener]
2021-02-13 14:36:35.928  INFO   --- [           main] .b.t.c.SpringBoottestContextBootstrapper : Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener@248ba4fc,org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener@54cce500,org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener@755033c5,org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener@229c4d34,org.springframework.test.context.support.DirtiesContextTestExecutionListener@5b49b1df,org.springframework.test.context.event.EventPublishingTestExecutionListener@689eab53,org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener@1c24639e,org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener@5c9168c3,org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener@4ac0fdc7,org.springframework.boot.test.autoconfigure.web.servlet.mockmvcPrintOnlyOnFailureTestExecutionListener@571903ff,org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener@689ea211,org.springframework.boot.test.autoconfigure.webservices.client.MockWebServiceServerTestExecutionListener@3f1e18b1]

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__,| / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.3.6.RELEASE)

2021-02-13 14:36:36.489  INFO 17272 --- [           main] r.v.d.l.annotation.LoggableContextTest   : Starting LoggableContextTest on EPRUKRAW003D with PID 17272 (started by Aleksandr_Shuvaev in D:\projects\alexshuvaev\foraudit\log-common\log-aspects-library)
2021-02-13 14:36:36.490 DEBUG 17272 --- [           main] r.v.d.l.annotation.LoggableContextTest   : Running with Spring Boot v2.3.6.RELEASE,Spring v5.2.11.RELEASE
2021-02-13 14:36:36.490  INFO 17272 --- [           main] r.v.d.l.annotation.LoggableContextTest   : The following profiles are active: test
2021-02-13 14:36:37.787  WARN 17272 --- [           main] o.s.w.c.s.GenericWebApplicationContext   : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'TestsConfiguration': Initialization of bean Failed; nested exception is java.lang.IllegalArgumentException: warning no match for this type name: org.springframework.boot.autoconfigure.web.BasicErrorController [Xlint:invalidAbsoluteTypeName]
2021-02-13 14:36:37.809 ERROR 17272 --- [           main] o.s.boot.SpringApplication               : Application run Failed

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'TestsConfiguration': Initialization of bean Failed; nested exception is java.lang.IllegalArgumentException: warning no match for this type name: org.springframework.boot.autoconfigure.web.BasicErrorController [Xlint:invalidAbsoluteTypeName]
    at org.springframework.beans.factory.support.AbstractAutowireCapablebeanfactory.doCreateBean(AbstractAutowireCapablebeanfactory.java:602)
    at org.springframework.beans.factory.support.AbstractAutowireCapablebeanfactory.createBean(AbstractAutowireCapablebeanfactory.java:516)
    at org.springframework.beans.factory.support.Abstractbeanfactory.lambda$doGetBean$0(Abstractbeanfactory.java:324)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
    at org.springframework.beans.factory.support.Abstractbeanfactory.doGetBean(Abstractbeanfactory.java:322)
    at org.springframework.beans.factory.support.Abstractbeanfactory.getBean(Abstractbeanfactory.java:202)
    at org.springframework.beans.factory.support.DefaultListablebeanfactory.preInstantiateSingletons(DefaultListablebeanfactory.java:897)
    at org.springframework.context.support.AbstractApplicationContext.finishbeanfactoryInitialization(AbstractApplicationContext.java:879)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:551)
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:758)
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:750)
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:405)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:315)
    at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:120)
    at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99)
    at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124)
    at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:123)
    at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190)
    at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:132)
    at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:244)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:227)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runchild(SpringJUnit4ClassRunner.java:246)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runchild(SpringJUnit4ClassRunner.java:97)
    at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
    at org.junit.runners.ParentRunner.runchildren(ParentRunner.java:329)
    at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
    at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
    at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
    at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190)
    at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
    at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
    at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
    at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
    at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
    at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
    at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
Caused by: java.lang.IllegalArgumentException: warning no match for this type name: org.springframework.boot.autoconfigure.web.BasicErrorController [Xlint:invalidAbsoluteTypeName]
    at org.aspectj.weaver.tools.pointcutParser.parsepointcutExpression(pointcutParser.java:319)
    at org.springframework.aop.aspectj.AspectJExpressionpointcut.buildpointcutExpression(AspectJExpressionpointcut.java:227)
    at org.springframework.aop.aspectj.AspectJExpressionpointcut.obtainpointcutExpression(AspectJExpressionpointcut.java:198)
    at org.springframework.aop.aspectj.AspectJExpressionpointcut.getClassFilter(AspectJExpressionpointcut.java:177)
    at org.springframework.aop.support.AopUtils.canApply(AopUtils.java:226)
    at org.springframework.aop.support.AopUtils.canApply(AopUtils.java:289)
    at org.springframework.aop.support.AopUtils.findAdvisorsThatCanApply(AopUtils.java:321)
    at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoproxyCreator.findAdvisorsThatCanApply(AbstractAdvisorAutoproxyCreator.java:128)
    at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoproxyCreator.findEligibleAdvisors(AbstractAdvisorAutoproxyCreator.java:97)
    at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoproxyCreator.getAdvicesAndAdvisorsForBean(AbstractAdvisorAutoproxyCreator.java:78)
    at org.springframework.aop.framework.autoproxy.AbstractAutoproxyCreator.wrapIfNecessary(AbstractAutoproxyCreator.java:347)
    at org.springframework.aop.framework.autoproxy.AbstractAutoproxyCreator.postProcessAfterInitialization(AbstractAutoproxyCreator.java:299)
    at org.springframework.beans.factory.support.AbstractAutowireCapablebeanfactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapablebeanfactory.java:430)
    at org.springframework.beans.factory.support.AbstractAutowireCapablebeanfactory.initializeBean(AbstractAutowireCapablebeanfactory.java:1798)
    at org.springframework.beans.factory.support.AbstractAutowireCapablebeanfactory.doCreateBean(AbstractAutowireCapablebeanfactory.java:594)
    ... 47 common frames omitted

Pom.xml:

<?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">
    <parent>
        <groupId>com.alexshuvaev.libs</groupId>
        <artifactId>log-parent</artifactId>
        <relativePath>../log-parent</relativePath>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>log-aspects-library</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjrt</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aspects</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-core</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>

父 Pom.xml:

<?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">
    <parent>
        <artifactId>log-common</artifactId>
        <groupId>com.alexshuvaev.libs</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>log-parent</artifactId>
    <packaging>pom</packaging>

    <properties>
        <build.number>-1</build.number>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <java.version>11</java.version>
        <maven.compiler.source>${java.version}</maven.compiler.source>
        <maven.compiler.target>${java.version}</maven.compiler.target>

        <jacoco-plugin.version>0.8.6</jacoco-plugin.version>
        <maven-jar-plugin.version>3.2.0</maven-jar-plugin.version>
        <maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>

        <spring-boot.version>2.3.6.RELEASE</spring-boot.version>
        <logback-more-appenders.version>1.8.4</logback-more-appenders.version>
        <fluent-logger.version>0.3.4</fluent-logger.version>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <dependency>
                <groupId>com.sndyuk</groupId>
                <artifactId>logback-more-appenders</artifactId>
                <version>${logback-more-appenders.version}</version>
            </dependency>
            <dependency>
                <groupId>org.fluentd</groupId>
                <artifactId>fluent-logger</artifactId>
                <version>${fluent-logger.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>${maven-compiler-plugin.version}</version>
                <configuration>
                    <forceJavacCompilerUse>true</forceJavacCompilerUse>
                    <release>${java.version}</release>
                    <compilerArgs>
                        <arg>-Amapstruct.defaultComponentModel=spring</arg>
                        <arg>-Amapstruct.unmappedTargetPolicy=WARN</arg>
                        <arg>-Amapstruct.suppressGeneratorTimestamp=true</arg>
                    </compilerArgs>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>${maven-jar-plugin.version}</version>
                <configuration>
                    <archive>
                        <manifest>
                            <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                            <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
                        </manifest>
                        <manifestEntries>
                            <Build-Number>${build.number}</Build-Number>
                        </manifestEntries>
                    </archive>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.jacoco</groupId>
                <artifactId>jacoco-maven-plugin</artifactId>
                <version>${jacoco-plugin.version}</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>prepare-agent</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>report</id>
                        <phase>prepare-package</phase>
                        <goals>
                            <goal>report</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

代码中,我有一个注释 @EnableAspectJAutoproxy。 当我删除时,错误消失了,但我的测试没有通过,因为 cglib 字段为空。但必须像这个截图:

我尝试在我的代码添加 BasicErrorController 类。带包的空类:package org.springframework.boot.autoconfigure.web; 然后没有错误,所有测试都通过了。但我认为这不是一个方法

还有一些代码: 在我的主包中:

package com.alexshuvaev.libs.logging.annotation;

import org.springframework.context.annotation.EnableAspectJAutoproxy;
import org.springframework.context.annotation.Import;
import com.alexshuvaev.libs.logging.aspects.OperType;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Import(EnableLogAspectsImportSelector.class)
@EnableAspectJAutoproxy
public @interface EnableLogAspects {
    OperType[] value() default {};
}

在我的测试包中:

package com.alexshuvaev.libs.logging;

import com.alexshuvaev.libs.logging.config.TestsConfiguration;

import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBoottest;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.junit4.springrunner;

@ActiveProfiles("test")
@RunWith(springrunner.class)
@SpringBoottest(classes = TestsConfiguration.class)
public abstract class IntegrationTest {
}
package com.alexshuvaev.libs.logging.config;

import com.alexshuvaev.libs.logging.IntegrationTest;
import com.alexshuvaev.libs.logging.annotation.EnableLogAspects;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.EnableAspectJAutoproxy;

@Configuration
@EnableLogAspects
@ComponentScan(basePackageClasses = IntegrationTest.class)
public class TestsConfiguration {

}
package com.alexshuvaev.libs.logging.annotation;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static com.alexshuvaev.libs.logging.aspects.OperType.LOGGABLE;
import static com.alexshuvaev.libs.logging.aspects.OperType.REST;

import com.alexshuvaev.libs.logging.IntegrationTest;
import com.alexshuvaev.libs.logging.aspects.LoggableAspect;
import com.alexshuvaev.libs.logging.aspects.OperType;
import com.alexshuvaev.libs.logging.testdata.someClassService;
import com.alexshuvaev.libs.logging.testdata.someController;
import com.alexshuvaev.libs.logging.testdata.someService;
import com.alexshuvaev.libs.logging.testdata.resource.someResource;
import com.alexshuvaev.libs.logging.utils.JoinPointLogUtils;

import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.LoggerContext;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.read.ListAppender;
import lombok.extern.slf4j.Slf4j;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;

@Slf4j
public class LoggableContextTest extends IntegrationTest {

    private static ListAppender<ILoggingEvent> loggingAppender;

    @Before
    public void initAppender() {
        LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();
        loggingAppender = new ListAppender<>();
        loggingAppender.setContext(context);
        loggingAppender.start();
        context.getLogger(SomeService.class).addAppender(loggingAppender);
        context.getLogger(SomeClassService.class).addAppender(loggingAppender);
        context.getLogger(SomeController.class).addAppender(loggingAppender);
        context.getLogger(SomeResource.class).addAppender(loggingAppender);
    }

    @After
    public void cleanAppender() {
        loggingAppender.list.clear();
    }

    @Autowired
    private SomeService someService;

    @Autowired
    private SomeClassService someClassService;

    @Autowired
    private SomeController someController;

    @Autowired
    private SomeResource someResource;


    @Test
    public void defaulttest() {
        someService.withDefaultVoid();
        assertAppenderSingleEvent(JoinPointLogUtils.END_EXECUTING_TEMPLATE_DETAILED_ParaMS,Level.DEBUG,SomeService.class);
    }
}

为什么 @EnableAspectJAutoproxy 尝试使用 Spring Boot 1.5.x 中的包查找类 BasicErrorController? 我在我的 Pom.xml 中找不到依赖项不兼容。可能是我忘记添加任何依赖项了吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。