Spring Boot简介与快速搭建
Spring Boot简介
SpringBoot为了简化在开发基于 Spring的项目的难度,减少了哪些繁杂的配置,从而让开发基于 Spring的项目变成一个相当简单容易的事。
SpringBoot其本身没有添加什么新的技术,就是整合了一些现有的框架,并提供了一些默认的配置,就是这些默认的配置,极大的提高了我们的开发效率。所以,在读者学习使用 SpringBoot之前,建议最好要有一些 Spring相关知识为基础。
SpringBoot极大的简化了Spring与其他框架的整合,例如JPA、SpringMvc、Freemaker、Spring Security等。
SpringBoot官网地址:http://projects.spring.io/spring-boot/
在官网上我们可以查看到最新的SpringBoot的英文文档教程。
Spring Boot的优缺点
1)优点
- 快速构建项目。
- 对主流开发框架的无配置集成。
- 项目可独立运行,无须外部依赖Servlet容器。
- 提供运行时的应用监控。
- 极大地提高了开发、部署效率。
- 与云计算的天然集成。
2)缺点
- 版本迭代速度很快,一些模块改动很大。
- 由于不用自己做配置,报错时很难定位。
- 网上现成的解决方案比较少。
通过上面的介绍我们能够简单的了解什么是SpringBoot。那如何快速搭建Spring Boot应用呢?
Spring Boot快速搭建
第一步、开始新的SpringBoot项目
在浏览器中访问start.spring.io,官网给我们提供web页面的初始化页面。在添加依赖中可以选择会使用到的依赖。
我们在此以 Maven作为项目构建方式,Spring Boot 还支持以 Gradle 作为项目构建工具。部署形式以 jar 包形式,当然也可以用传统的 war 包形式。Spring Boot 选择2.4.4,Spring boot 还支持以 Groovy 语言、Kotlin语言开发,应用中我们选择 Java作为开发语言。
点击“生成”按钮,下载压缩文件,然后将其解压缩到计算机上的文件夹中。
第二步、添加代码
在IDE中打开项目,并配置好Maven后,依赖下载完成,我们就可以看到项目的基本骨架了。
在项目中我们实现一个/hello的Controller接口,并默认值打印"Hello World"。如下所示:
@RestController
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@GetMapping("/hello")
public String hello(@RequestParam(value = "name", defaultValue = "World") String name) {
return String.format("Hello %s!", name);
}
}
第三步、运行
我们构建并运行程序。我们即可以在命令行中运行也可以直接在IDEA中运行。在项目中的目录下运行如下命令:
在命令行中运行:
MacOS/Linux:
./mvnw spring-boot:run
Windows:
mvnw spring-boot:run
当我们看到如下日志时,最后两行告诉我们Spring已经被运行起来了。
Spring Boot使用嵌入式Apache Tomcat服务器充当Web服务器,并在localhost
port上侦听请求8080
。打开浏览器,然后在顶部的地址栏中输入http://localhost:8080 /hello。您应该得到一个很好的友好响应,如下所示:
总结
SpringBoot是Spring框架对“约定优先于配置(Convention Over Configuration)”理念的最佳实践的产物,一个典型的 SpringBoot 应用本质上其实就是一个基于 Spring 框架的应用。
这篇文章看似简单,确是我们开始Spring Boot系列的坚实基础。
相关文章
- 【技术种草】cdn+轻量服务器+hugo=让博客“云原生”一下
- CLB运维&运营最佳实践 ---访问日志大洞察
- vnc方式登陆服务器
- 轻松学排序算法:眼睛直观感受几种常用排序算法
- 十二个经典的大数据项目
- 为什么使用 CDN 内容分发网络?
- 大数据——大数据默认端口号列表
- Weld 1.1.5.Final,JSR-299 的框架
- JavaFX 2012:彻底开源
- 提升as3程序性能的十大要点
- 通过凸面几何学进行独立于边际的在线多类学习
- 利用行动影响的规律性和部分已知的模型进行离线强化学习
- ModelLight:基于模型的交通信号控制的元强化学习
- 浅谈Visual Source Safe项目分支
- 基于先验知识的递归卡尔曼滤波的代理人联合状态和输入估计
- 结合网络结构和非线性恢复来提高声誉评估的性能
- 最佳实践丨云开发CloudBase多环境管理实践
- TimeVAE:用于生成多变量时间序列的变异自动编码器
- 具有线性阈值激活的神经网络:结构和算法
- 内网渗透之横向移动 -- 从域外向域内进行密码喷洒攻击