怎样用IDEA社区版以及企业版创建spring boot项目?

news2024/11/26 10:23:15
Spring 的诞生是为了简化 Java 程序的开发的,而  Spring Boot 的诞生是为了简化 Spring 程序开发的 。
Spring Boot 翻译一下就是 Spring 脚手架,什么是脚手架呢?如下图所示:
盖房子的这个架子就是脚手架,脚手架的作用是砌筑砖墙,浇筑混凝土、方便墙面抹灰,装饰和粉刷的,简单来说,就是使用脚手架可以更快速的盖房子。
Spring Boot 就是 Spring 框架的脚手架,它就是为了快速开发 Spring 框架而诞生的。
例如,以前铺路是这样的:

改造之后的效率是这样的:

 或者是这样的:

可以看到,每次技术的诞生和改进相比于之前的效率会有一个质的提升,而 Spring Boot 相比于 Spring 也是如此。

一、Spring Boot 优点

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

二、Spring Boot 项目创建

社区版创建spring项目

IDEA社区版默认没有继承 Spring Initializer 功能,所以我们要采用以下两种方式来创建spring项目

1.手动去 start.spring.io把工程创建好之后下载下来(方法一)

2.手动去社区版安装一个插件(方法二)

方法一

1.我们打开此网页(https://start.spring.io/)

2.根据下列图片进行配置

3.配置好后进行下载

4. 下载好后,我们进行解压

5.之后我们从IDEA中打开解压好的项目即可

6.由于我们是第一次,所以下载会有点慢,下载好后我们可以看到pom.xml是已经配置好了的 

7.我们设置的类里面有main方法,我们直接启动main方法spring就可以运行 

8.里面是天生带着日志的,包含打印时间、日志级别、线程ID、线程名称、是由哪个类打印的、我们都可以看到 

方法二

1.进入settings

 2.安装Spring Assistant即可 

3.现在我们就可以创建一个新的spring项目

  10.这一步需要我们选择所要用到的依赖,大家可以根据需要勾选

11.最后我们设置好项目名称和路径即可

企业版创建spring项目 

1.选择创建 Spring Initializr 项目

 

 

三、项目目录介绍和运行

新建的 Spring Boot 项目目录如下: 

Spring Boot 项目有两个主要的目录:
  1. src/main/java Java 源代码。
  2. src/main/resources 为静态资源或配置文件:

            /static:静态资源文件夹;

            /templates:模版资源文件夹。

3.1 运行项目

点击启动类的 main 方法就可以运行 Spring Boot 项目了,启动成功如下图所示:  

3.2 输出 Hello world

我们学习 JavaEE 就是用来实现 Web 项目或接口的,而之前是 Spring 其实是一个普通 Java 项目,没办法直接和浏览器进行互动,所以接下来我们要用 Spring Boot 来实现和浏览器及用户的交互。
在创建的项目包路径下创建 UserController 文件,实现代码如下:
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/user")
public class UserController {
@RequestMapping("/sayhi")
public String sayHi(){
return "Hi,Spring Boot.";
    }
}
重新启动项目,访问 http://localhost:8080/user/sayhi 最终效果如下:

四、注意事项:包路径错误

我们尝试将 controller 移动到其他包下,比如以下几种方式:

运行我们的项目,发现程序报错了,如下图所示:  

 这说明 Spring Boot 项目没有将对象注入到容器中。

5.1 正确路径

当我们把要注入到容器类和启动类放到同级目录下时,如下图所示:

 

这时候 Spring Boot 项目才能正常的将 bean 注入到容器中。

5.2 小结:约定大于配置

以上情况反应了 Spring Boot 项目的另一个特点: 约定大于配置
对比 Spring 的项目我们也可以看到这一特点,比如在 Spring 中也是要配置 Bean 的扫描路径的,而 Spring Boot 则不需要,Spring 配置如下:
总结
  • Spring Boot 是为了快速开发 Spring 而诞生的,Spring Boot 具备:
  • 快速集成框架,Spring Boot 提供了启动添加依赖的功能,用于秒级集成各种框架。
  • 内置运行容器,无需配置 Tomcat Web 容器,直接运行和部署程序。
  • 快速部署项目,无需外部容器即可启动并运行项目。
  • 可以完全抛弃繁琐的 XML,使用注解和配置的方式进行开发。
  • 支持更多的监控的指标,可以更好的了解项目的运行情况等特点。
Spring Boot 可使用 Idea 或网页创建,它的设计思想是约定大于配置,类上标注
@SpringBootApplication 就可以启动 Spring Boot 项目了。

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

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

相关文章

脑电信号处理与特征提取——三. 脑电实验设计的原理与实例(古若雷)

三、脑电实验设计的原理与实例 被试间设计的实验结果也有可能是人员不同造成的,所以建议被试内设计。

【力扣每日一题】2023.7.22 柠檬水找零

目录 题目: 示例: 分析: 代码运行结果: 题目: 示例: 分析: 这是一道模拟题,我们贩卖五美元(忒贵了)一杯的柠檬水,然后只收取5,10,20面值的钞票…

API自动化测试总结

目录 Jmeter是怎么做API自动化测试的? Jmeter中动态参数的处理? 怎么判断前端问题还是后端问题? 详细描述下使用postman是怎么做API的测试的? 资料获取方法 Jmeter是怎么做API自动化测试的? 1、首先在JMeter里面…

57. 插入区间

题目链接::力扣 解题思路,因为只插入一个新的区间,所以只需要找到插入的新区见的位置即可,如果与来的区间重叠,则进行合并, 两个区间重叠需要判断的情况比较多,可以判断两个区间不重…

已解决-使用Adobe Acrobat去除PDF水印

这个方法只能去带颜色的水印,灰色的去不了,等我有空时候,再写一篇使用PS去除水印的方法,也非常简单。敬请期待 安装软件 网上下载安装Adobe Acrobat Pro DC 安装Adobe PDF打印机 点击“添加打印机” 选择“我的打印机未列出”…

VCL界面组件DevExpress VCL v23.1 - 全新的Windows 11主题

DevExpress VCL是Devexpress公司旗下最老牌的用户界面套包,所包含的控件有:数据录入、图表、数据分析、导航、布局等。该控件能帮助您创建优异的用户体验,提供高影响力的业务解决方案,并利用您现有的VCL技能为未来构建下一代应用程…

RT-Thread qemu mps2-an385 bsp 移植制作 :环境搭建篇

前言 最近打算系统地研究一下 RT-Thread,包括 RT-Thread BSP 的移植,由于一直在使用 QEMU 进行一些软件功能的验证,qemu 支持很多的CPU 与 开发板,所以想移植一个新的 qemu board 到 RT-Thread,掌握BSP 移植的方法 当…

pytest配置文件:pytest.ini

1. 开始 pytest配置文件可以改变pytest的默认运行方式,它是一个固定的文件名称pytest.ini。 pytest.ini存放路径为项目的根路径。 2. 使用addopts-追加默认参数 我们每次在命令行中执行pytest命令时,如果参数是固定的,可以在pytest.ini进…

OpenCV:图像直方图计算

图像直方图为图像中像素强度的分布提供了有价值的见解。通过了解直方图,你可以获得有关图像对比度、亮度和整体色调分布的信息。这些知识对于图像增强、图像分割和特征提取等任务非常有用。 本文旨在为学习如何使用 OpenCV 执行图像直方图计算提供清晰且全面的指南。…

【Java基础教程】(四十三)多线程篇 · 下:深入剖析Java多线程编程:同步、死锁及经典案例——生产者与消费者,探究sleep()与wait()的差异

Java基础教程之多线程 下 🔹本节学习目标1️⃣ 线程的同步与死锁1.1 同步问题的引出2.2 synchronized 同步操作2.3 死锁 2️⃣ 多线程经典案例——生产者与消费者🔍分析sleep()和wait()的区别? 🌾 总结 🔹本节学习目标…

SpringBoot Redis 配置多数据源

Redis 从入门到精通【应用篇】之SpringBoot Redis 配置多数据源 文章目录 Redis 从入门到精通【应用篇】之SpringBoot Redis 配置多数据源1.教程0. 添加依赖1. 配置多个 Redis 连接信息我们将上面的配置改造一下,支持Redis多数据源 2. 配置3. 创建 RedisTemplate 实…

Compose中常用的一些Modifier的扩展ui方法记录

Compose中常用的一些Modifier的扩展ui方法记录 关于防快速点击虚实分割线虚线边框阴影 关于 本篇主要记录一些开发中可能用到的常用方法的扩展记录,包括防快速带点击,画虚实线divider,画虚线边框,绘制阴影等。 防快速点击 inlin…

每天五分钟机器学习:线性回归和非线性回归之间的区别?

本文重点 在前面的课程中,我们学习了单变量线性回归模型以及多变量的线性回归模型,无论是单变量线性回归还是多变量线性回归,这二者都是一样的,都是线性的。本文我们将学习一下线性回归模型和非线性回归之间的区别和联系。 关于模型的基本区别 线性回归:线性回归就是每…

第三天 运维高级 MySQL主从复制

1.理解MySQL主从复制原理 1、master(binlog dump thread)主要负责Master库中有数据更新的时候,会按照binlog格式,将更新的事件类型写入到主库的binlog文件中。 2、I/O thread线程在Slave中创建,该线程用于请求Master&…

YApi 服务端测试新增 globalCookie ,兼容自动化触发服务端测试功能

YApi是一个开源的接口管理平台,它提供了丰富的接口管理和测试功能。其中,服务端测试是YApi的一个重要特性,可以帮助开发人员自动化执行接口测试。 在YApi的服务端测试中,新增globalCookie是一个很有用的功能。通过设置globalCook…

2023/7/23周报

目录 摘要 论文阅读 1、题目和现存问题 2、问题阐述及相关定义 3、LGDL模型框架 4、实验准备 5、实验过程 深度学习 1、GCN简单分类任务 2、文献引用数据分类案例 3、将时序型数据构建为图数据格式 总结 摘要 本周在论文阅读上,对基于图神经网络与深度…

LabVIEW使用支持向量机对脑磁共振成像进行图像分类

LabVIEW使用支持向量机对脑磁共振成像进行图像分类 医学成像是用于创建人体解剖学图像以进行临床研究、诊断和治疗的技术和过程。它现在是医疗技术发展最快的领域之一。通常用于获得医学图像的方式是X射线,计算机断层扫描(CT),磁…

pnpm 与monorepo架构

软链接与硬链接 创建方式: mklink (windows) 软链接 : a、b指向同一个文件 b相当于一个快捷方式 硬链接: a、b指向同一个内存地址 某一文件修改,其他文件跟这变化 上图所示:安装某依赖&…

LabVIEW - DAQmx 数据采集

1. 题目 基于NI MAX创建模拟仿真设备,然后基于DAQmx编写模拟量数据采集程序,实现按照1s时间间隔,采集制定模拟输入端口一个数据的功能,并能够将采集的数据、数据采集的时间等参数写入文本文件保存。 2. 过程 通过在NI max的设备与…

虚拟人直播怎么做?3d虚拟主播全栈技术方案来了

元宇宙浪潮来袭后,虚拟人直播的应用场景得到进一步拓宽,大量的3d虚拟主播出现在品牌直播间、娱乐节目、发布会等应用中,那想要让3d虚拟主播“活得即时”,开启虚拟人直播要怎么做?本文将基于广州虚拟动力的3d虚拟主播全…