Spring Boot 3.x 快速体验

简介: Spring Boot 可以轻松创建可以“直接运行”的独立的、生产级的基于 Spring 的应用程序。Spring Boot 也提供了非常多的三方库快速集成方案,其实就是我们开发中常用的 starter。通常大多数情况下 Spring Boot 运用不需要过多的 Spring 配置。

创建项目


创建我推荐大家直接在 https://start.spring.io/上完成,非常适合新上手的小白以及我这样喜欢科学利用工具的人。如下图所示:


image.png


现在 SpringSpring Boot等相关系列的组件都开始往 Gradle 上靠。我们本次,以及该系列的文章都统一采用 Gradle 作为依赖管理。


Spring Boot我们本次选择 3.x ,JDK 依然选择 1.8 因为这也是大多数互联网公司的主流版本。


配置文件


build.gradle配置文件如下所示:


plugins {
    id 'org.springframework.boot' version '3.0.0-SNAPSHOT'
    id 'io.spring.dependency-management' version '1.0.11.RELEASE'
    id 'java'
}
group 'io.zhengsh'
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8
configurations {
    compileOnly {
        extendsFrom annotationProcessor
    }
}
repositories {
    maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
}
dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    compileOnly 'org.projectlombok:lombok'
    annotationProcessor 'org.projectlombok:lombok'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
tasks.named('test') {
    useJUnitPlatform()
}


在配置文件中, 我主要是加入了 :


spring-boot-starter-web 主要是提供 Spring MVC 相关的依赖,让我们可以方便定义接口。


lombok 就是一个代码生成的工具,非常方便,可以快速帮我们生成 POJO 的 get、set 方法,生成构造器,构造方法,让代码非常的简洁,提升可读性。主要注意的是要配合 IDEA 、Eclipse 插件来一起使用


测试代码


创建接口 API 文件:


import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
  @GetMapping("/")
  public String index() {
    return "Greetings from Spring Boot!";
  }
}


上面这段代码主要是为我们对外暴露一个 API 接口,接口地址是服务的默认访问地址,当我们发起 get 请求的时候就可以直接在屏幕上打印 Greetings from Spring Boot!.


然后创建启动文件, 这个文件是必须要的,它的功能非常强大,也是我们 Spring Boot 启动文件的标准模板,大家可以看到我们在这个过程中基本没有 XML 业务配置,就完成了 Spring Boot 应用的编写。


@SpringBootApplication
public class Application {
  public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
  }
}


@SpringBootApplication 是一个应用启动类的注解,它添加了以下所有内容:


  • @Configuration: 将类标记为应用程序上下文的 bean 定义源。


  • @EnableAutoConfiguration:告诉 Spring Boot 根据类路径设置、其他 bean 和各种属性设置开始添加 bean。例如,如果 spring-webmvc位于类路径上,则此注释将应用程序标记为 Web 应用程序并激活关键行为,例如设置 DispatcherServlet


  • @ComponentScan: 告诉 Spring 在包中查找其他组件、配置和服务 io.xcyb,让它找到控制器。


main()方法使用 Spring Boot 的 SpringApplication.run()方法来启动应用程序。


启动和访问


通过 IDEA 启动以后访问和显示如下


$ curl localhost:8080
Greetings from Spring Boot!


项目总结


其实 Spring Boot 非常简单,极大程度的简化了咱们开发的成本,以及屏蔽了非常复杂的 Spring 配置,目前基本是 0 配置。这个也是 Spring Boot 被广泛的 Java 程序员所接受的原因。还有一方面就是它提供了非常方便的集成/拓展点和丰富的组件, 后续的文章会陆续更新下面的内容:


  • Web 组件


  • I/O 组件


  • Data 组件(SQL/NoSQL)


  • Message 组件(支持主流MQ : Kafka, RocketMQ、RabbitMQ)


  • Security 组件(支持 Auth2, Spring Security、LDAP)


  • 还有基于 Spring Boot 为基础的 Spring Cloud 系列的组件


通过这些组件的支持,我们可以快速完成一个 Java 单体运用,极大的提升了我们的开发效率,同时也降低了程序开发的学习成本。


参考文档



相关文章
|
6月前
|
Java 应用服务中间件 Maven
SpringBoot 项目瘦身指南
SpringBoot 项目瘦身指南
146 0
|
6月前
SpringBoot+Mybatis-Plus+PageHelper分页+多条件查询
SpringBoot+Mybatis-Plus+PageHelper分页+多条件查询
172 0
|
11天前
|
存储 运维 安全
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
通过以上措施,可以保证Spring Boot项目的配置管理在专业水准上,并且易于维护和管理,符合搜索引擎收录标准。
22 2
|
1月前
|
SQL JSON Java
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和PageHelper进行分页操作,并且集成Swagger2来生成API文档,同时定义了统一的数据返回格式和请求模块。
56 1
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
|
1月前
|
缓存 NoSQL Java
Springboot自定义注解+aop实现redis自动清除缓存功能
通过上述步骤,我们不仅实现了一个高度灵活的缓存管理机制,还保证了代码的整洁与可维护性。自定义注解与AOP的结合,让缓存清除逻辑与业务逻辑分离,便于未来的扩展和修改。这种设计模式非常适合需要频繁更新缓存的应用场景,大大提高了开发效率和系统的响应速度。
64 2
|
5月前
|
运维 Java 关系型数据库
Spring运维之boot项目bean属性的绑定读取与校验
Spring运维之boot项目bean属性的绑定读取与校验
54 2
|
5月前
|
存储 运维 Java
Spring运维之boot项目开发关键之日志操作以及用文件记录日志
Spring运维之boot项目开发关键之日志操作以及用文件记录日志
66 2
|
5月前
|
Java Maven
springboot项目打jar包后,如何部署到服务器
springboot项目打jar包后,如何部署到服务器
437 1
|
5月前
|
XML 运维 Java
Spring运维之boot项目打包jar和插件运行并且设置启动时临时属性和自定义配置文件
Spring运维之boot项目打包jar和插件运行并且设置启动时临时属性和自定义配置文件
55 1
|
5月前
springboot2.4.5使用pagehelper分页插件
springboot2.4.5使用pagehelper分页插件
157 0
下一篇
无影云桌面