spring.aop.proxy-target-class 启动 栈溢出
时间: 2024-05-21 13:18:35 浏览: 11
`spring.aop.proxy-target-class` 是一个 Spring AOP 的配置属性,用来指定是否强制使用 CGLIB 来创建代理对象。默认情况下,Spring AOP 会根据被代理类的接口情况来决定使用 JDK 动态代理还是 CGLIB 代理。
如果你在应用程序中启用了 `spring.aop.proxy-target-class`,并且代理的目标类没有实现接口,那么 Spring AOP 将会使用 CGLIB 来创建代理对象。但是,CGLIB 代理可能会导致栈溢出的问题,因为它使用了大量的反射和递归调用。
如果你遇到了栈溢出的问题,可以尝试关闭 `spring.aop.proxy-target-class`,或者考虑使用其他的 AOP 框架来代替 Spring AOP。同时,你还可以调整 JVM 的栈大小来解决栈溢出的问题。
相关问题
spring.aop.auto=true spring.aop.proxy-target-class=true 有什么用
这两个配置项都是与 Spring AOP(面向切面编程)有关的。
- `spring.aop.auto=true` 表示开启自动代理功能,Spring 会自动为被 `@Aspect` 注解的切面类创建代理对象。
- `spring.aop.proxy-target-class=true` 表示使用 CGLIB 代理方式,即对类进行代理而非接口,这样可以解决无法代理非接口类型的类的问题。
综合起来,这两个配置项的作用是开启自动代理功能并使用 CGLIB 代理方式来为切面类创建代理对象。这能够使得切面类中定义的切点、通知等功能生效,从而实现面向切面编程。
下列哪个不是springboot的starter? A.spring-boot-starter-aop B.spring-boot-starter-jdbc C.spring-boot-starter-cloud D.spring-boot-starter-test
以下是Spring Boot Starters模块的介绍和源码地址:
1. 关于Spring Boot Starters模块:Spring Boot Starters模块是Spring Boot框架中的一部分,它提供了一组预配置的依赖项,用于简化和加速Spring Boot应用程序的开发。这些Starters模块包含了常见的功能和技术,例如数据库访问、Web开发、安全性等,可以通过简单地添加依赖项来快速集成这些功能到你的应用程序中。
2. spring-boot-starters源码地址:你可以在以下地址找到spring-boot-starters的源码:https://github.com/spring-projects/spring-boot/tree/v2.1.0.RELEASE/spring-boot-project/spring-boot-starters
根据提供的引用内容,下列选项中不是Spring Boot Starters的是C.spring-boot-starter-cloud。