当前位置: 首页 > news >正文

SpringBoot 项目的创建与启动

在这里插入图片描述

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。
🍎个人主页:Java Fans的博客
🍊个人信条:不迁怒,不贰过。小知识,大智慧。
💞当前专栏:SpringBoot 框架从入门到精通
✨特色专栏:国学周更-心性养成之路
🥭本文内容:SpringBoot 项目的创建与启动

文章目录

    • Spring Boot是什么
    • Spring Boot 的特点
      • 1. 独立运行的 Spring 项目
      • 2. 内嵌 Servlet 容器
      • 3. 提供 starter 简化 Maven 配置
      • 4. 提供了大量的自动配置
      • 5. 自带应用监控
      • 6. 无代码生成和 xml 配置
    • 配置开发环境
    • 创建 SpringBoot 项目
      • 1、Spring Initializr 创建 SpringBoot 项目
      • 2、Maven 创建 SpringBoot 项目
    • 启动 Spring Boot
      • SpringBoot 设置端口号

在这里插入图片描述

Spring Boot是什么

众所周知 Spring 应用需要进行大量的配置,各种 XML 配置和注解配置让人眼花缭乱,且极容易出错,因此 Spring 一度被称为“配置地狱”。

为了简化 Spring 应用的搭建和开发过程,Pivotal 团队在 Spring 基础上提供了一套全新的开源的框架,它就是 Spring Boot。

Spring Boot 具有 Spring 一切优秀特性,Spring 能做的事,Spring Boot 都可以做,而且使用更加简单,功能更加丰富,性能更加稳定而健壮。随着近些年来微服务技术的流行,Spring Boot 也成为了时下炙手可热的技术。

Spring Boot 的特点

Spring Boot 具有以下特点:

1. 独立运行的 Spring 项目

Spring Boot 可以以 jar 包的形式独立运行,Spring Boot 项目只需通过命令“ java–jar xx.jar” 即可运行。

2. 内嵌 Servlet 容器

Spring Boot 使用嵌入式的 Servlet 容器(例如 Tomcat、Jetty 或者 Undertow 等),应用无需打成 WAR 包

3. 提供 starter 简化 Maven 配置

Spring Boot 提供了一系列的“starter”项目对象模型(POMS)来简化 Maven 配置。

4. 提供了大量的自动配置

Spring Boot 提供了大量的默认自动配置,来简化项目的开发,开发人员也通过配置文件修改默认配置。

5. 自带应用监控

Spring Boot 可以对正在运行的项目提供监控。

6. 无代码生成和 xml 配置

Spring Boot 不需要任何 xml 配置即可实现 Spring 的所有配置。

配置开发环境

在使用 Spring Boot 进行开发之前,第一件事就是配置好开发环境。工欲善其事,必先利其器,IDE(集成开发环境)的选择相当重要,目前市面上有很多优秀的 IDE 开发工具,例如 IntelliJ IDEA、Spring Tools、Visual Studio Code 和 Eclipse 等等,那么我们该如何选择呢?

这里我们极力推荐大家使用 IntelliJ IDEA,因为相比于与其他 IDE,IntelliJ IDEA 对 Spring Boot 提供了更好的支持。Spring Boot 版本及其环境配置要求如下表

在这里插入图片描述

创建 SpringBoot 项目

1、Spring Initializr 创建 SpringBoot 项目

第一步: 打开IDEA,如下图打开 File—>New—>Project ,然后进入下一步。

在这里插入图片描述

第二步: 打开Project后,按照下图步骤创建一个 Empty Project 项目,项目名称为 springboot_csdn,然后进入下一步。

在这里插入图片描述

第三步: 空项目创建好之后,右击项目名称,新建一个 Module,进入下一步。

在这里插入图片描述

第四步: 打开 Spring Initializr,在设置对话框中,Server URL 默认是 start.spring.io,所以用此步骤进行创建 springboot 项目时必须联网。且创建的本质,是将官网创建的步骤以 IDEA 图形化界面的方式创建。

在这里插入图片描述

start.spring.io 是国外的一个网站,当运行速度较慢的时候,我们使用国内的阿里云网站:start.aliyun.com

在这里插入图片描述

输入项目的 GroupId、ArtifactId 等内容,注意 Type 为 Maven,packaging 为 jar,Java version 切换为 8(默认为 11),最后点击下方的 Next 按钮,进行下一步;

在这里插入图片描述

第五步: 到此界面,其实无需过多更改,可以选择 Spring Boot 2.7.9 的版本。后面项目创建后根据实际情况还能修改,然后点击 Create,一个springboot 项目便创建完成。

在这里插入图片描述

注意:如果创建完成后,pom.xml文件不是蓝色的m显示时,右击文件,添加到maven管理,添加后,打开Maven点击更新即可。

在这里插入图片描述

2、Maven 创建 SpringBoot 项目

第一种方式创建 SpringBoot 项目的前提是需要在联网的情况下,当没有网的时候,我们就不能用上面的方式来创建 SpringBoot 项目了,这时我们就需要使用 Maven 创建 SpringBoot 项目,此方式创建的前提是本地仓库已经缓存之前创建 SpringBoot 项目所需要的相关依赖。

创建步骤如下:

第一步: 按照之前创建 Maven 的步骤进行创建。

在这里插入图片描述

第二步: 返回 IntelliJ IDEA 工作区,会发现 Maven 项目创建完成,其目录结构如图所示。

在这里插入图片描述

第三步: 在该 Maven 项目的 pom.xml 中添加以下配置,导入 Spring Boot 相关的依赖

<!--继承springboot的父工程-->
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.4.5</version>
</parent>
<!--引入web依赖  spring+springmvc-->
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

<!--    项目打jar包必要插件-->
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

第四步: 在 cn.kgc.springboot包下,创建一个名为 HelloWorldApplication 主程序,用来启动 Spring Boot 应用,代码如下

<!--
 	注解说明:  该注解是组合注解
        @SpringBootConfiguration   用来自动配置spring相关环境  spring+springmvc
		@EnableAutoConfiguration   开启自动配置 核心注解
		@ComponentScan			   组件扫描   只能扫描当前包和子包
-->

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

启动 Spring Boot

默认情况下,Spring Boot 项目会创建一个名为 ***Application 的主程序启动类 ,该类中使用了一个组合注解 @SpringBootApplication,用来开启 Spring Boot 的自动配置,另外该启动类中包含一个 main() 方法,用来启动该项目。直接运行启动类 HelloworldApplication 中的 main() 方法,便可以启动该项目,结果如下图

在这里插入图片描述

注意:Spring Boot 内部集成了 Tomcat,不需要人为手动配置 Tomcat,开发者只需要关注具体的业务逻辑即可。

为了能比较的清楚的看到效果,我们在 cn.csdn.springboot 包下又创建一个 controller 包,并在该包内创建一个名为 UserController 的 Controller,代码如下

package cn.kgc.springboot01.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("user")
public class UserController {
    @RequestMapping("show")
    private String Show(){
        System.out.println("springboot01展示了!");
        return "springboot01展示了!";
    }
}

重启 Spring Boot 项目,然后在地址栏访问 “http://localhost:8080/user/show”,结果如下图

在这里插入图片描述

SpringBoot 设置端口号

上面我们项目运行的默认端口号是 8080,如果我们想更改端口号,用如下方式实现即可:

1、如下图,打开 resources 目录下的 application.properties 文件,在文件中添加 “server.port=8888” ,8888即是最新的端口号。

在这里插入图片描述

运行效果如下:

在这里插入图片描述

2、application.properties 做设置,会增加代码的冗余,因此,我们通常使用 yml 格式的文件进行配置设置;将 application.properties 改为application.yml ,内容修改如下:

server:
  port: 9999

运行效果如下:

在这里插入图片描述


  码文不易,本篇文章就介绍到这里,如果想要学习更多Java系列知识点击关注博主,博主带你零基础学习Java知识。与此同时,对于日常生活有困扰的朋友,欢迎阅读我的第四栏目:《国学周更—心性养成之路》,学习技术的同时,我们也注重了心性的养成。

在这里插入图片描述

相关文章:

  • 百科创建:7种有效的百科词条创建技巧
  • 天狗实战SpringBoot+Vue(二)项目结构搭建(上)
  • k8s容器集群工作负载节点跨越多个云计算厂商
  • 专题五:DFS深度优先搜索
  • 【计算机网络】从输入网址到网页显示,期间发生了什么?
  • ZMC408CE | 实现“8通道独立PSO”应用场景
  • pytorch中.data与.item(),.numpy(),.detach(),.cuda(),.cpu()的作用
  • 从参数数量视角理解深度学习神经网络算法 DNN, CNN, RNN, LSTM 以python为工具
  • 如何使用ChatGPT API 及 问题解决
  • Linux0.11 任务切换(七)
  • Lighttpd入门教程
  • 为什么汽车控制器应用层软件开发要采用AUTOSAR的架构接口
  • # 飞书APP集成平台-数字化落地
  • 【JavaScript 逆向】网易易盾滑块逆向分析
  • 小浩的幂次运算(快速幂)
  • [译] React v16.8: 含有Hooks的版本
  • C学习-枚举(九)
  • fetch 从初识到应用
  • hadoop集群管理系统搭建规划说明
  • k8s如何管理Pod
  • Objective-C 中关联引用的概念
  • Spring Boot MyBatis配置多种数据库
  • web标准化(下)
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 大主子表关联的性能优化方法
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 服务器之间,相同帐号,实现免密钥登录
  • 好的网址,关于.net 4.0 ,vs 2010
  • 聚簇索引和非聚簇索引
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 我的zsh配置, 2019最新方案
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • Prometheus VS InfluxDB
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • #预处理和函数的对比以及条件编译
  • (23)Linux的软硬连接
  • (三)mysql_MYSQL(三)
  • (一)Dubbo快速入门、介绍、使用
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • ***利用Ms05002溢出找“肉鸡
  • .gitignore文件—git忽略文件
  • .Net MVC4 上传大文件,并保存表单
  • .NET(C#、VB)APP开发——Smobiler平台控件介绍:Bluetooth组件
  • .Net开发笔记(二十)创建一个需要授权的第三方组件
  • .net中应用SQL缓存(实例使用)
  • ::
  • @Autowired和@Resource装配
  • @transactional 方法执行完再commit_当@Transactional遇到@CacheEvict,你的代码是不是有bug!...
  • [20170728]oracle保留字.txt
  • [2544]最短路 (两种算法)(HDU)
  • [AIGC] Java 和 Kotlin 的区别
  • [asp.net core]project.json(2)
  • [BZOJ 3282] Tree 【LCT】
  • [C++进阶篇]STL中vector的使用