使用IDEA搭建SpringBoot项目
一、SpringBoot介绍
Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是为了简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot 致力于在蓬勃发展的快速应用开发领域成为领导者。
Spring Boot 的优缺点如下:
优点:
简化配置:Spring Boot 提供了许多“starter”依赖项,它们预设了自动配置,减少了手动配置的工作量。
快速启动:可以迅速创建和部署独立运行的 Spring 应用程序,通常只需要一个可执行的 JAR 文件。
嵌入式服务器:支持内嵌 Tomcat、Jetty 或 Undertow 服务器,这意味着无需部署 WAR 文件。
开发生产力高:通过自动化配置和起步依赖,开发者可以专注于业务逻辑而不是框架配置。
易于集成:与 Spring 生态系统中的其他项目(如 Spring Data, Spring Security 等)集成非常容易。
生产就绪特性:包括健康检查、审计、指标收集等功能,有助于监控和管理应用程序。
缺点:
学习曲线:对于新手来说,Spring Boot 及其自动配置机制可能需要一些时间来适应。
隐藏复杂性:由于高度的自动化配置,可能会让开发者难以理解底层的工作原理,尤其是在排查问题时。
二、环境
JDK版本:1.8
maven版本:4.0.0
springboot版本:2.3.2
开发工具:IDEA2020.1.2
三、搭建springboot项目
本次我这里介绍一下使用maven依赖引入搭建,通过引入springboot的依赖来搭建springboot项目
1.创建项目
点击文件->新建->项目
英文对应File->New->Project
打开NewProject界面
选择Spring Initializr,选择jdk版本,然后点击Next,进入下一步
选择类型为maven,根据自己的电脑java环境,配置java版本,修改项目名称等,点击Next进入下一步
选择Web,选择Spring Web,点击Next,然后点击Finish,完成项目搭建
选择你在哪个idea窗口打开新建的项目,博主习惯性选择New Window
2.查看和修改pom.xml文件
pom.xml
文件是 Maven 项目的核心配置文件,Spring Boot 项目通常使用 Maven 作为构建工具,因此也依赖于这个文件来管理项目的构建、报告和文档等任务。以下是 pom.xml
文件在 Spring Boot 项目中的主要作用:
项目描述与标识:定义了项目的坐标(groupId, artifactId, version),这些信息用于唯一标识一个项目,并帮助其他项目引用它。
依赖管理:列出了项目所依赖的所有库(dependencies)。Spring Boot 的“starter” POMs 是特别有用的依赖,它们简化了项目设置和依赖管理。通过添加相应的 starter POM,可以轻松地引入一组相关的依赖项,而无需单独指定每个库的版本号。
插件配置:定义了构建过程中使用的插件(plugins)。Spring Boot 提供了自己的 Maven 插件,比如 spring-boot-maven-plugin
,它可以用来打包可执行的 JAR 或者 WAR 文件,简化应用部署过程。
资源管理:包括对项目中各种资源文件的管理,如配置文件的位置、过滤等。
构建生命周期管理:Maven 定义了一个默认的构建生命周期,包括编译源代码、测试、打包等步骤。pom.xml
文件可以通过配置不同的插件来自定义这些步骤的行为。
继承与聚合:支持父POM的继承和多模块项目的聚合。Spring Boot 应用程序经常利用这一点来共享配置或组织复杂的项目结构。
属性定义:可以在 pom.xml
中定义一些常量,然后在整个文件中引用这些常量,这有助于统一管理版本号或其他需要重复使用的值。
仓库配置:指定了从哪里下载所需的依赖和插件,允许开发者配置私有或公共的 Maven 仓库地址。
下面是我之前一个项目的pom.xml文件,可供参考
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.sfac.jdgl</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>jdgl</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--spring-boot 热部署 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
<!--data注解所需依赖-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!--mybatis-plus依赖-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.2</version>
</dependency>
<!--代码生成器模板引擎-->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.2</version>
</dependency>
<!--代码生成器-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.3.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.17</version>
</dependency>
<!--springboot的junitt测试依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--邮件发送-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<!--阿里短信发送-->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.5.3</version>
</dependency>
<!-- !redis-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!--websocket-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
<!--支付宝sdk-->
<dependency>
<groupId>com.alipay.sdk</groupId>
<artifactId>alipay-sdk-java</artifactId>
<version>4.13.0.ALL</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
觉得有用就收藏起来吧,别忘了点赞、评论+关注哦