引入springboot的两种方式以及springboot容器的引入

本文介绍SpringBoot项目中引入依赖的两种方式:通过spring-boot-starter-parent或spring-boot-dependencies。同时,详细讲解如何覆盖默认依赖版本及配置内嵌容器,如Tomcat和Jetty。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、在项目中引入springboot有两种方式:

1、引入spring-boot-starter-parent

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.0.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

要覆盖parent自带的jar的版本号有两种方式:

  1. 在pom中重新引入这个jar,然后版本不一样,新引入的会覆盖parent本身的版本。
  2. <properties>中添加版本号变量

比如我们要修改mysql的版本号:

<properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <mysql.version>5.1.42</mysql.version>
    </properties>

pom中也要加这个depency,只是版本号写在properties中了。

<dependency>
     <groupId>mysql</groupId>
     <artifactId>mysql-connector-java</artifactId>
      <version>${mysql.version}</version>
      <scope>runtime</scope>
</dependency>

2、引入spring-boot-dependencies

<dependencyManagement>
   <dependencies>
         <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.1.0.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

depencies中如何覆盖依赖呢?

这里采用properties的这种方式不行,只能通过上面的第一种方式才可起作用:

二、springboot的内嵌容器

目前,springboot支持Tomcat,Jetty和Undertow作为Spring Boot嵌入式服务器,而Wiremock本身对特定版本的Jetty(目前为9.2)具有“本机”支持。要使用本地Jetty,您需要添加本机线程依赖关系,并排除Spring Boot容器(如果有的话)。

1、引入tomcat容器:直接引入spring-boot-starter-web,即引入了tomcat容器,默认为tomcat

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
 </dependency>

2、引入jetty容器。添加spring-boot-starter-jetty,并移除starter-tomcat

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</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>
### Spring Boot 整合 Web 开发的两种常见方法 #### 方法一:使用 Spring MVC 进行同步请求处理 Spring Boot 自动集成了 Spring MVC 框架,当引入 `spring-boot-starter-web` 依赖后,默认实现了多个自动配置项来简化 Web 应用开发过程[^4]。 ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.3.0.RELEASE</version> </dependency> ``` 通过这种方式,开发者可以在几乎不需要额外配置的情况下快速搭建起具备基本功能的Web服务。例如: - **控制器定义** ```java @RestController public class HelloController { @GetMapping("/hello") public String hello() { return "Hello, World!"; } } ``` 此代码片段展示了如何利用 `@RestController` 和 `@GetMapping` 注解创建一个简单的 RESTful API 接口,在访问 `/hello` 路径时返回字符串 `"Hello, World!"`。 #### 方法二:采用响应式编程模型——Spring WebFlux 构建异步非阻塞的服务端逻辑 除了传统的基于Servlet容器方式外,Spring Boot 还支持更现代的反应式流标准Reactive Streams,并提供了对应的模块 `spring-boot-starter-webflux` 来构建高效的微服务体系结构下的高并发场景下表现优异的应用程序[^2]。 对于希望充分利用多核CPU资源并提高吞吐量的应用来说,这是一个很好的选择。下面是一个简单的例子展示怎样设置一个响应式的 HTTP GET 请求处理器: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-webflux</artifactId> <version>2.3.0.RELEASE</version> </dependency> ``` - **响应式控制器** ```java @RestController public class ReactiveHelloController { private final WebClient webClient; public ReactiveHelloController(WebClient.Builder builder){ this.webClient = builder.baseUrl("http://example.com").build(); } @GetMapping(value="/reactive-hello", produces=MediaType.TEXT_EVENT_STREAM_VALUE) Flux<String> reactiveHello(){ return Flux.just("Hello,", "World!") .delayElements(Duration.ofSeconds(1)) .concatWith(Mono.fromCallable(() -> " Done!")); } } ``` 上述实例中,`ReactiveHelloController` 使用了 `Flux<T>` 类型作为返回值类型,它可以表示一系列事件序列;而 `Mono<T>` 则用来表达单一的结果或者错误通知。这允许客户端订阅这些数据流并在接收到新元素时做出相应动作。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值