【Java】springboot2和eureka整合选择netty作为启动容器

最近刚上手springboot2,有很多大更新,准备研究一下spring-webflux使用内置的netty容器作为启动容器。
虽然刚上手遇到些坑,但是还算是如愿看到效果了。这是我整合spring-cloud-starter-netflix-eureka-server之前的pom

    <dependencies>

<!-- Spring Boot Web Flux 依赖 -->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-webflux</artifactId>

</dependency>

</dependencies>

然后我想继续引入spring-cloud,踩了些坑也算运行起来了。但是一不留神看到启动日志中启动容器变为了tomcat,试了官方设置方式,引入spring-boot-starter-reactor-netty无效,还是tomcat启动

【Java】springboot2和eureka整合选择netty作为启动容器
这是我引用之后的pom

    <dependencies>

<dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>

</dependency>

<!-- Spring Boot Web Flux 依赖 -->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-webflux</artifactId>

</dependency>

<!-- 使用netty作为启动容器 -->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-reactor-netty</artifactId>

</dependency>

</dependencies>

spring-cloud-starter-netflix-eureka-server这个引用会使我的启动容器变为tomcat,注释了就没问题。
我查看该引用的pom,最终在spring-cloud-netflix-eureka-server的pom中找到了他加了spring-boot-starter-web的引用,而这个引用中又引用了spring-boot-starter-tomcat。
我猜测是这一处造成的,但是我没有找到好的解决办法覆盖这个启动,请问有什么办法达到我的目的?

回答

没试过netty,但换jetty是这样:

        <dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>

<exclusions>

<exclusion>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-tomcat</artifactId>

</exclusion>

</exclusions>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-jetty</artifactId>

</dependency>

首先你需要把springboot集成的tomcat容器排除掉,

    <dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>

<exclusions>

<exclusion>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-tomcat</artifactId>

</exclusion>

</exclusions>

</dependency>

然后再添加netty依赖才可以生效

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-reactor-netty</artifactId>

</dependency>

以上是 【Java】springboot2和eureka整合选择netty作为启动容器 的全部内容, 来源链接: utcz.com/a/89099.html

回到顶部