Spring Boot创建和使用(重要)

news2025/1/17 15:58:01

Spring的诞生是为了简化Java程序开发的!

Spring Boot的诞生是为了简化Spring程序开发的!

Spring Boot就是Spring框架的脚手架,为了快速开发Spring框架而诞生的!!

Spring Boot的优点:

  • 快速集成框架:Spring Boot提供了启动添加依赖的功能,用于秒级集成各种框架。
  • 内置运行容器:无需配置Tomcat等Web容器,直接运行和部署程序。
  • 快速部署项目:无需外部容器即可启动并运行项目。
  • 可以完全抛弃繁琐的XML,使用注解和配置的方式运行项目。
  • 支持更多的监控指标,可以更好的了解项目的运行情况

接下来,我们来了解一下Spring Boot项目的创建吧!

1.通过IDEA创建(主要的创建方式)

专业版:无需任何插件,直接创建Spring Boot项目

社区版:安装插件——》Spring Boot Helper(从社区版2022开始收费,可以考虑使用社区版2021)

当然,对于Spring Boot Helper这个插件等安装好以后,就会发生奇迹般的改名了(插件一样)相当于小时候家长叫你:宁宁,长大了就得叫你全名了~~

安装前:Spring Boot Helper

安装后:Spring Initalizr and Assistant

下面,我们来看一下该插件的具体安装详情:

该插件,虽然标为付费,但如果你的IDEA为2021社区版,那么你就不用管他(付费)
插件,已经帮你找好了,至于怎么安装,点击OK🆗,这就不用教了吧!!

当你安装好该插件之后,进行重启即可!!(重启IDEA!!)

插件已经安装好,IDEA已经重启,那么,此时,当你重新new  project的时候,就会发现:

有一个Spring Initializr模块,当我们选择这个的时候,就是开始创建Spring Boot项目了,然后在选择合适的JDK版本(小编的是JDK1.8版本)

然后Next

注意:第一次创建Spring Boot项目的时候,需要联网,由于第一次创建SPring Boot项目,需要导入依赖,因此可能会出现转圈的状态,你不用担心,等一会便🆗了!

注意:在这里需要选择Maven,JDK的版本为1.8版本!!

该页面主要是添加对应的框架支持(必选)

因此,该页面总的选择需求为:

Next

最后在点击Finshed

完成!!

当你创建好Spring Boot项目之后:

删除该四个文件之后:

点击项目文件,右键:选中Add Framework Support…

在接下来的页面,选中Maven即可,然后点击Ok(该步操做,目的是添加Maven到Spring Boot项目中,当然,等你添加好以后,你就会在IDEA右侧发现Maven标识:

然后,通过Maven来进行刷新,重新导入依赖即可:

当然,对于该操作之后,如果还出现报错问题:

那么,你就需要访问Maven官网了:https://mvnrepository.com/该网址有点慢,请耐心等待

上述问题,主要出现在版本号上面的Bug

因此,我们在Maven中搜索:spring-boot-starter-parent

经过上述的操做之后,我们重新刷新Maven即可!!

当然,如果程序中右侧没有出现对应的Maven相应的图标,则说明当前IDEA没有识别当前的项目为Maven项目:

如果经过上述的几个步骤,发现还是报错,那么就是Maven国内源没有配置好,此时可以参考笔者文章:Spring的创建和使用-CSDN博客

那么,如何来判断Spring Boot项目已经正常创建成功了呢??

启动DemoApplication类main,当控制台打印了启动所用的时间,并且Debug没有中断,这就说明SPring Boot项目已经创建好了!

当然,对于创建Spring Boot项目的方式,也可以通过网页/阿里云的方式来进行创建,在这里本文便不做过多的详解,因为,小编也仅仅是了解过,但是,并没有真正创建过(99.99%的概率是从IDEA来进行创建,其他的时候,大概率是网断了等其他复杂情况,项目不能正常创建就会用之前创建好的SPring Boot项目来应对一下~)

接下来,我们来看一下Spring Boot项目中,剩余的文件,所代表的基本含义吧!

  • java:Java源码根路径(放置Java代码)
  • resources:资源文件和配置信息
  • templates:模板
  • application.prorerties:(整个)当前项目的配置文件
  • test:Java单元测试
  • target:当前项目的字节码,每次运行时,都会生成的文件(但是有时候会有缓存《——》删掉target,再让其重新生成即可(刷新Maven))
  • pom.xml:Maven配置文件(依赖信息)

经过上述的内容,我们也可以看出:Spring Boot的一个思想:约定大于配置!

既然我们已经创建好一个Spring Boot项目了,那么,便开始上手第一个Spring Boot代码吧:网页显示hello world

那么,请看笔者接下来的代码:

package com.example.demo.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@ResponseBody //加在类上,表示当前类中的所有方法返回的都是非静态页面的数据
public class TestController {
    @RequestMapping("/hello")
    public String sayHi(){
        return "hello world";
    }
}

运行上述的代码,我们在浏览器中输入:localhost:8080/hello,就会有着下述的运行结果:

这样看来,我们便成功的运行了一个Spring Boot的项目!


下篇文章,小编将会带领大家了解Spring Boot的配置文件和Spring日志文件相关的知识!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1239439.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

代码随想录算法训练营第28天|93.复原IP地址 78.子集 90.子集II

JAVA代码编写 93 .复原IP地址 有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 . 分隔。 例如:"0.1.2.201" 和 "192.168.1.1" 是 有效 IP 地址&…

【Web实战】浅谈reactor netty httpclient请求解析过程

目录 0x00 前言 0x01 "畸形scheme"HTTP请求 0x02 其他 0x00 前言 Reactor Netty HttpClient 是 Reactor Netty 框架提供的一个用于进行异步 HTTP 请求的客户端库。它基于 Reactor 框架,采用响应式编程模型,允许以非阻塞的方式执行 HTTP 请…

Audition 2024 24.0.0.46(音频剪辑)

Audition 2024是一款非常棒的音频编辑和混合软件,提供了广泛的工具和功能,用于创建、编辑、混合和设计音效。这款软件旨在加速音频和视频制作工作流程,提供具有原始音效的高质量混音。其界面构成清晰,操作简便,适合专业…

合并区间问题

以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。 示例 1: 输入:intervals [[1,…

七天.NET 8操作SQLite入门到实战 - 第三天SQLite快速入门

前言 今天我们花费一个小时快速了解SQLite数据类型、SQLite常用命令和语法。 七天.NET 8操作SQLite入门到实战详细教程 第一天 SQLite 简介第二天 在 Windows 上配置 SQLite环境 EasySQLite项目源码地址 GitHub地址:https://github.com/YSGStudyHards/EasySQLite&…

第2关:可变长整型数组类(成长版)

题目&#xff1a; 给出的头文件&#xff1a; #include <iostream> #include "array.h" using namespace std;int main() {Array a1;int n;cin >> n;for (int i 0;i ! n; i) {int t;cin >> t;a1.Push_back(t);}Array a2(a1);cout << "…

12 分布式锁加入看门狗

1、看门狗的流程图 2、看门狗的代码实现 /****类说明&#xff1a;Redis的key-value结构*/ public class LockItem {private final String key;private final String value;public LockItem(String key, String value) {this.key key;this.value value;}public String getKey…

opengl制作天空盒

首先创建顶点数组 unsigned int m_uiVaoBufferID; glGenVertexArrays(1, &m_uiVaoBufferID); 然后创建顶点缓冲区 float skyboxVertices[] {// positions-1.0f, 1.0f, -1.0f,-1.0f, -1.0f, -1.0f,1.0f, -1.0f, -1.0f,1.0f, -1.0f, -1.0f,1.0f, 1.0f, -1.0f,-1.0f, 1.…

Spring cloud - Hystrix源码

其实只是Hystrix初始化部分&#xff0c;我们从源码的角度分析一下EnableCircuitBreaker以及HystrixCommand注解的初始化过程。 从EnableCircuitBreaker入手 我们是通过在启动类添加EnableCircuitBreaker注解启用Hystrix的&#xff0c;所以&#xff0c;源码解析也要从这个注解…

实时错误’-2147217887‘多步OLB DB 操作产生错误。如果可能,请检查OLE DB状态值

目录 背景问题问题分析问题解决 错误解决与定位技巧总结 背景 仍旧是学生信息管理系统的问题&#xff0c;当时做的时候没发现这么多问题呢&#xff0c;只能说明一件事&#xff0c;做的时候没有站在用户的角度考虑需求&#xff0c;设置了什么内容&#xff0c;就按照设置好的去测…

C++之常用的排序算法

C之常用的排序算法 sort #include<iostream> using namespace std; #include<vector> #include<algorithm> #include<functional> void Myptint(int val) {cout << val << " "; }void test() {vector<int> v;v.push_back(…

数据结构与算法编程题10

将两个非递减的有序链表合并为一个非递增的有序链表。 要求结果链表仍使用原来两个链表的存储空间, 不另外占用其它的存储空间。表中允许有重复的数据。 a: 1, 2, 2, 4, 5, 7, 8, 9, 10 b: 1, 2, 3, 6, 7, 8 #include <iostream> using namespace std;typedef int Elemty…

LeetCode59.螺旋矩阵

LeetCode59.螺旋矩阵 1.问题描述2.解题思路3.代码 1.问题描述 给你一个正整数 n &#xff0c;生成一个包含 1 到 n2 所有元素&#xff0c;且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例 1&#xff1a; 输入&#xff1a;n 3 输出&#xff1a;[[1,2,3],[8,9,…

Docker Swarm总结(1/3)

目录 1、swarm 理论基础 1.1 简介 1.2 节点架构 1.3 服务架构 1.4 服务部署模式 2、swarm 集群搭建 2.1 需求 ​2.2 克隆主机 2.3 启动5个docker宿主机 2.4 查看 swarm 激活状态 2.5 关闭防火墙 2.6 swarm 初始化 2.7 添加 worker 节点 2.8 添加 manager 节点 3、…

[补题记录] Complete the Permutation(贪心、set)

URL&#xff1a;https://codeforces.com/group/OcmZ7weh45/contest/487583/problem/J 目录 Problem/题意 Thought/思路 Code/代码 Problem/题意 给出一个长度为 N 的序列&#xff0c;其中的元素都是奇数。 现在要求在两个奇数之间插入一个偶数&#xff0c;使得这三个数递增…

python基础-numpy

numpy中shape (1,X) 和 &#xff08;X&#xff0c;&#xff09;的区别 参考 首先放结论&#xff1a;shape(x,)是一维数组&#xff0c;ndim1,[1,2,3,…x] ;shape(1,x)是二维&#xff1f;数组&#xff0c;ndim2,[[1,2,3,…n]] 由于array.shape 表示数组的维度&#xff0c;返回一…

优秀智慧园区案例 - 上海世博文化公园智慧园区,先进智慧园区建设方案经验

一、项目背景 世博文化公园是上海的绿色新地标&#xff0c;是生态自然永续、文化融合创新、市民欢聚共享的大公园。作为世博地区的城市更新项目&#xff0c;世博文化公园的建设关乎上海城市风貌、上海文化展示、城市生态环境、市民游客体验、上海服务品牌等&#xff0c;被赋予…

【Java】基于SaaS模式的Java基层医院卫生健康云HIS系统源码

一、模板管理 模板分为两种&#xff1a;病历模板和报表模板。模板管理是运营管理的核心组成部分&#xff0c;是基层卫生健康云中各医疗机构定制电子病历和报表的地方&#xff0c;各医疗机构可根据自身特点特色定制电子病历和报表&#xff0c;制作的电子病历及报表可直接在业务…

万字解析设计模式之组合模式、亨元模式

一、组合模式 1.1概述 组合模式是一种结构型设计模式&#xff0c;它允许将对象组合成树形结构&#xff0c;以表示“部分-整体”的层次结构。组合模式使得客户端可以一致地对待单个对象和对象组合&#xff0c;从而将复杂的层次结构展现为一个统一的树形结构。 在组合模式中&…

2023年危险化学品经营单位主要负责人证模拟考试题库及危险化学品经营单位主要负责人理论考试试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2023年危险化学品经营单位主要负责人证模拟考试题库及危险化学品经营单位主要负责人理论考试试题是由安全生产模拟考试一点通提供&#xff0c;危险化学品经营单位主要负责人证模拟考试题库是根据危险化学品经营单位主…