运行springbootAOP项目显示java: 警告: 源发行版 11 需要目标发行版 11
时间: 2023-11-14 11:08:07 浏览: 39
这个警告是因为你的项目使用的是 JDK 11,但是编译时使用的目标版本低于 11。你可以在 pom.xml 文件中添加以下配置来解决这个问题:
```
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>11</source>
<target>11</target>
</configuration>
</plugin>
</plugins>
</build>
```
这样就可以指定编译时使用的 JDK 版本为 11,同时也指定了目标版本为 11。
相关问题
springbootAOP
SpringBootAOP是指在SpringBoot项目中使用AOP(面向切面编程)来简化开发操作的一种方式。通过引入spring-boot-starter-aop依赖,我们可以使用一些常用的注解来方便地进行AOP开发。在SpringBoot项目中使用AOP可以实现一些功能,比如全局请求日志处理。首先,我们需要在项目中引入相关的依赖,包括spring-boot-starter和spring-boot-starter-aop。然后,我们可以使用AOP的注解来定义切点和切面,实现对请求的日志处理等操作。在SpringBoot 2.x中,默认使用Cglib来实现AOP的代理方式,但在Spring5文档中,默认还是使用jdk代理方式。如果对象没有实现接口,则会使用CGLIB代理。因此,在自动注入业务类实现类时,如果使用的是jdk代理方式,可能会报错。\[1\]\[2\]\[3\]
#### 引用[.reference_title]
- *1* *3* [SpringBoot之Spring核心AOP详解](https://blog.csdn.net/qq_42263280/article/details/127696254)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v12^insert_chatgpt"}} ] [.reference_item]
- *2* [SpringBoot中AOP的使用](https://blog.csdn.net/weixin_45583303/article/details/118565966)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v12^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
springbootaop
Spring Boot AOP(Aspect-Oriented Programming)是Spring Boot框架中的一个重要特性,它允许开发者通过面向切面的方式来实现横切关注点的模块化。
在Spring Boot中,AOP可以用来实现诸如日志记录、事务管理、性能监控等横切关注点的功能,而不需要直接修改业务逻辑代码。
要使用Spring Boot AOP,首先需要定义一个切面类,该类通过注解或XML配置指定在哪些方法上应用切面逻辑。然后,可以使用各种通知类型(如前置通知、后置通知、返回通知、异常通知)在切面类中定义具体的逻辑。
例如,以下是一个使用Spring Boot AOP实现日志记录的示例:
```java
@Aspect
@Component
public class LoggingAspect {
@Before("execution(* com.example.demo.service.*.*(..))")
public void logBefore(JoinPoint joinPoint) {
System.out.println("Logging Before: " + joinPoint.getSignature().getName());
}
@AfterReturning(pointcut = "execution(* com.example.demo.service.*.*(..))", returning = "result")
public void logAfterReturning(JoinPoint joinPoint, Object result) {
System.out.println("Logging After Returning: " + joinPoint.getSignature().getName());
}
@AfterThrowing(pointcut = "execution(* com.example.demo.service.*.*(..))", throwing = "ex")
public void logAfterThrowing(JoinPoint joinPoint, Exception ex) {
System.out.println("Logging After Throwing: " + joinPoint.getSignature().getName());
}
// 可以定义其他类型的通知,例如@After等
}
```
在上面的示例中,切面类`LoggingAspect`通过`@Aspect`注解标识,同时使用`@Component`注解将其注册为Spring组件。然后,使用`@Before`、`@AfterReturning`、`@AfterThrowing`等注解定义了不同类型的通知方法,通过`execution`表达式指定切面逻辑应用的方法。
需要注意的是,切面类需要被Spring Boot扫描到,可以通过在启动类上添加`@ComponentScan`注解或使用`@EnableAspectJAutoProxy`注解来启用AOP功能。
以上是关于Spring Boot AOP的简单介绍,希望能对你有所帮助。如果你有其他问题,可以继续提问!