在Spring Boot中,可以通过设置环境变量或配置文件来关闭APR(Apache Portable Runtime)。下面是两种常用的方法:
方法一:设置环境变量
在启动Spring Boot应用程序时,可以通过设置-DuseApr环境变量来控制是否使用APR。将其设置为false即可关闭APR。
例如,在命令行中使用以下命令启动Spring Boot应用程序:
shell
java -DuseApr=false -jar your-application.jar
方法二:配置文件
可以在application.properties或application.yml配置文件中添加以下属性来关闭APR:
对于application.properties:
spring.jmx.enabled=false
对于application.yml:
yaml
spring:
jmx:
enabled: false
通过这两种方法之一,就可以关闭Spring Boot中的APR。请注意,这仅适用于Spring Boot应用程序本身,不会影响其他依赖项或系统级别的APR配置。
在spring boot中 tomcat APR模式如何切换为NIO
在Spring Boot中,要切换Tomcat的连接模式从APR(Apache Portable Runtime)切换为NIO(Non-blocking I/O),你可以通过以下步骤进行操作:
打开你的Spring Boot项目的pom.xml文件,确保你正在使用Spring Boot Starter Web依赖,而不是Tomcat Starter Web依赖。Spring Boot Starter Web使用默认的Tomcat连接器(NIO),而Tomcat Starter Web使用APR连接器。
xml
<!-- 不要使用这个依赖 -->
<!--
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-core</artifactId>
<version>your-tomcat-version</version>
</dependency>
-->
<!-- 使用Spring Boot Starter Web依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
在application.properties或application.yml文件中,添加以下配置来指定Tomcat连接器的连接模式:
对于application.properties:
properties
server.tomcat.nio.enabled=true
server.tomcat.nio.class=org.apache.coyote.http11.Http11NioProtocol
对于application.yml:
yaml
server:
tomcat:
nio:
enabled: true
class: org.apache.coyote.http11.Http11NioProtocol
这些配置将启用Tomcat的NIO连接器,并指定使用Http11NioProtocol类。
3. 保存更改并重新启动Spring Boot应用程序。现在,Tomcat将使用NIO模式而不是APR模式进行连接。
请注意,如果你在项目中使用了一些特定于APR的功能或依赖项,切换到NIO模式可能会导致一些问题。在切换之前,请确保你了解两种连接器之间的差异,并确认你的应用程序可以正常工作在使用NIO模式的情况下。
Tomcat 6.x版本从6.0.32开始就默认支持apr。
Tomcat 7.x版本从7.0.30开始就默认支持apr。
因此,如果读者使用的Tomcat版本比较陈旧的话,强烈建议升级到最新的稳定版本。
测试使用无效,还是引用APR,降低Spring boot版本运行,降低到一下版本,后续有空在研究下。
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.15.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent>