[问题解决]Error:(3, 38) java: 无法访问org.springframework.stereotype.Component 错误的类文件: /D:/rep/org/springf

启动Springboot项目时候报错
java: 无法访问org.springframework.boot.SpringApplication
错误的类文件: /D:/Maven/apache-maven-3.6.3/repository/org/springframework/boot/spring-boot/3.0.0/spring-boot-3.0.0.jar!/org/springframework/boot/SpringApplication.class
类文件具有错误的版本 61.0, 应为 52.0

问题分析:

Java项目尝试访问一个版本不匹配的类文件。具体地说,项目使用的Java版本(版本号 61.0)与所依赖的 Spring Boot 版本(版本号 3.0以后的版本)不兼容。

问题解决:

1.修改jdk的版本

2.修改springboot的版本,我在这里是修改了springboot的版本解决了该问题

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,下面是使用AOP和Java Spring Boot将日志保存到文件的代码示例: 1. 首先,我们需要添加依赖,如下所示: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-slf4j-impl</artifactId> <version>2.14.0</version> </dependency> ``` 其中,`spring-boot-starter-aop`是Spring Boot的AOP依赖,`log4j-slf4j-impl`是Log4j的SLF4J适配器,这里我们使用Log4j来实现日志的文件输出。 2. 然后,我们需要在`application.properties`中添加Log4j的配置,如下所示: ```properties logging.level.root=info logging.file.path=D:/code/logs logging.file.name=coursemanagement.log logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n logging.pattern.file=%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n ``` 这里我们将日志级别设为`info`,并指定日志文件的路径和文件名,日志输出的格式也可以自定义,这里我们将日志输出到控制台和文件中。 3. 接下来,我们需要定义一个切面,如下所示: ```java import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotation.AfterThrowing; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; import org.springframework.stereotype.Component; @Aspect @Component public class LoggingAspect { private static final Logger logger = LogManager.getLogger(LoggingAspect.class); @Before("execution(* com.example.coursemanagement.controller.*.*(..))") public void logBefore(JoinPoint joinPoint) { logger.info("Entering {}.{}() with arguments {}", joinPoint.getSignature().getDeclaringTypeName(), joinPoint.getSignature().getName(), joinPoint.getArgs()); } @AfterThrowing(pointcut = "execution(* com.example.coursemanagement.controller.*.*(..))", throwing = "ex") public void logAfterThrowing(JoinPoint joinPoint, Throwable ex) { logger.error("Exception in {}.{}() with cause = {}", joinPoint.getSignature().getDeclaringTypeName(), joinPoint.getSignature().getName(), ex.getCause() != null ? ex.getCause() : "NULL"); } } ``` 在上面的代码中,我们定义了一个名为`LoggingAspect`的切面,在上使用了`@Aspect`和`@Component`注解。 在中,我们定义了两个切面方法,分别是`logBefore`和`logAfterThrowing`,分别用于记录方法进入和方法异常信息。 其中,我们使用了Log4j的`LogManager`和`Logger`来定义日志记录器,使用了`@Before`和`@AfterThrowing`注解来定义切面方法的型和切入点,使用`joinPoint`参数来获取方法签名和参数信息,最后使用日志记录器来输出日志信息。 4. 最后,我们需要在`application.properties`中指定日志输出的型为`file`,如下所示: ```properties logging.type=file ``` 这样,日志信息就可以输出到指定路径下的文件中了。 希望这段代码可以帮助你更好地理解使用AOP和Java Spring Boot将日志保存到文件中的方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿阿文

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值