SpringBoot2.0入门教程(一) 快速入门,项目构建HelloWorld示例
本文为joshua317原创文章,转载请注明:转载自joshua317博客 https://www.joshua317.com/article/83
一、目标
自己能够快速的开始一个Spring web项目。
二、简单介绍
1.Spring Boot是什么
Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。它采用的是建立生产就绪的应用程序观点,优先于配置的惯例。
2.Spring Boot能做什么
使用Spring Boot,你可以通过少量的代码,就可以创建一个独立的,产品级别的Spring应用,通俗的讲,就是“开箱即用”。
使用Spring Boot框架,可以大大简化你的开发模式,所有你想集成的常用框架,它都能帮你做到。
3.Spring Boot的优势特点
-
为所有的Spring开发提供一个从根本上更快的和广泛使用的入门经验
-
开箱即用,但你可以通过不采用默认设置来摆脱这种方式
-
提供一系列大型项目常用的非功能性特征
-
绝对不需要代码生成及XML配置,减少冗余代码
-
简化初始配置 ,可与主流框架集成;
-
内置Servlet容器,无需在打War包;
-
使用了Starter(启动器)管理依赖并版本控制;
-
大量的自动配置,简化开发,方便集成第三方;
-
提供准生产环境运行时的监控,如指标,健康,外部配置等;
-
入门门槛低,只要懂程序的java、c#、php、js都能快速入门
-
强大的生态,几乎没有什么功能是需要自己从头开始开发
-
部署方便,独立服务器也好、云部署也好、docker也好都非常方便
-
......
总之一句话:优点超乎你的想象!
三、环境准备
环境这块可以自行搜索处理,这里不再赘述。
1.java jdk环境安装
2.maven环境安装
3.IntelliJ IDEA(IJ)编辑器安装
为了防止编辑器每次打开,maven的设置都会初始化,所以这里提前对新项目进行设置
三、快速上手
1.创建一个Spring Boot项目
1.1打开编辑器,新建project
1.2选择Spring Initalizr
1.3设置项目的一些信息
Group
:项目组织的唯一标识符,通常分为多个段,自己使用随便设置即可(我一般使用com.zsr,zsr是我名字的缩写)
这里介绍两段的用法:第一段为域,第二段为公司名称
域又分为org、com、cn等,其中org为非营利组织,com为商业组织,cn表示中国
例如apache公司的tomcat项目:org.apache.tomcat
- Group是org.apache
- 域是org(tomcat是非营利项目)
- 公司名称是apache
- Artifact是tomcat
Artifact
:项目的唯一的标识符,就是项目的名称(不能有大写,都是小写!)
- 例如com.joshua317.hello
- Artifact是hello,就是项目的名称
Grounp+Artifact
就相当于项目的坐标,保证了项目的唯一性
Name
:默认同Artifact
,声明了一个对于用户更为友好的项目名称,不是必须的
Description
:项目描述
Package name
:指定main目录里java下的包名称,默认为Group+Artifact
Packaging
:打包方式,默认jar
version
:指定了项目的当前版本,SNAPSHOT意为快照,说明该项目还处于开发中,是不稳定的版本
1.4选择Spring boot 版本及依赖包
实际项目开发中,要根据自己的需要,选择合适的依赖包
1.5设置project name
然后点击Finish,就完成了简单的项目创建
初始化项目时,会自动下载springboot默认依赖的一些jar包,需要一会时间,我们等待它下载完成。之后我们可以看到项目的结构如下:
项目结构简单说明
src/main/java 下是主程序的java代码存放处
src/resource 是资源文件包括图片、Css、Javascript等静态文件和配置文件yml或properties文件
src/test/java 测试代码
.idea #IDEA 软件特有的文件夹,隐藏文件
.mvn #Maven项目特有的文件,隐藏文件
src #存放源码包括了java代码和配置文件和资源文件
main #java代码
java
com
pringbook
SpringstudyApplication #启动类java文件
resource #资源文件包括静态文件
application.properties #项目的配置文件,比如配置服务器端口等
test #测试文件夹
mvnw #maven项目辅助文件,自动生成
mvnw.cmd #maven项目辅助文件,自动生成
pom.xml #maven项目配置文件,类似于C#的web.config
study.iml #iml 是IDEA软件的项目标识文件,一般是自动创建的
Externel Libraries #lib文件,这个不用管,是自动的
默认在类上边使用了@SpringBootApplication注解,这个注解是一个符合注解,相当于同时使用
@SpringBootConfiguration 指定类为配置类
@EnableAutoConfiguration 开启自动配置
@ComponentScan 指定扫描路径
2.配置Pom.xml文件
注意如果生成项目的时候没有设置Dependencies,选择web,那么这里要在Pom.xml中设置,Pom.xml设置依赖也非常的简单,直接把 的节点拷贝到pom依赖节点中即可。
Pom.xml属于maven项目结构的项目依赖项配置文件,主要管理第三方包的引用。
spring-boot-starter
:核心模块,包括自动配置支持、日志和 YAML
spring-boot-starter-test
:测试模块,包括 JUnit、Hamcrest、Mockito。
默认项目配置了spring-boot-starter和spring-boot-starter-test ,spring-boot-starter-web是因为在上述步骤中勾选了依赖web-》spring web,简单的配置如下:
<?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.5.4</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.joshua317</groupId>
<artifactId>hello-world-demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>hello-world-demo</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-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
3.配置application.yml文件
默认情况下,项目在初始化的时候,已经生成了一个配置文件application.properties
但是application.properties 就是常规的 key=value 格式配置文件,当要配置的参数比较多就会发现他的层次不是那么清晰,不便于阅读。
所以我们创建一个yml格式的文件application.yml,注意该名称不能随意起名,必须是application.yml
yml(也叫yaml):是一种以数据为中心的配置文件, 比 json,xml 等更适合做配置文件,关于yml的格式后期会专门出一篇文章进行说明。
application.yml内容我们只做一个简单的配置。如下所示:
server:
port: 8080 #端口号
4.编写示例代码
4.1 Web项目的常用目录结构
通常,我们使用三层结构来编写。
应用层(Controller):负责页面访问控制
服务层(Service)层主要是业务类代码
数据层(Dao):目录主要用于实体与数据访问层(Repository)
4.2 增加对应的包目录
生成如下目录
4.3编写 Controller 内容
在controller下新建HelloWorldController.java (注意首字母大写)
在HelloWorldController中增加java代码
@RestController
它是一个复合注解,相当于同时使用了@Controller和@ResponseBody注解, Controller 里面的方法都以 json 格式输出,不用再写什么 jackjson 配置的了!
5.运行
点击运行,或者使用快捷键shift+f10
然后我们进行访问:http://127.0.0.1:8080/hello/index
至此,一个web项目环境就搭建成功了,使用起来还是很简单方便的。如果想要修改端口后,可以在application.yml文件中调整
6.打包发布
6.1使用jar方式打包发布
或者使用命令行进行
1)选择 View> Tool Windows>Terminal
2)输入命令
mvn clean
mvn install
在根目录下有个target 文件夹
6.2 模拟服务器环境,运行jar文件
输入命令,后则可以在浏览器中进行访问。
java -jar hello-world-demo-0.0.1-SNAPSHOT.jar
7.遇到的问题(持续整理)
1.Failed to read artifact descriptor for org.springframework.boot:spring-boot-starter-web:jar:2.1.4.RELEASE less... (⌘F1) Inspects a Maven model for resolution problems.
未能加载spring-boot-starter-web:jar,这个应该是mvn管理器加载问题。
2.如果依赖包提示红色,说明maven的包没有加载下来,可以看下仓库的设置,然后重新拉取依赖包
3.端口问题
默认是8080端口,如果端口被占用了(例如mac的nginx默认是8080),需要修改,那么在 resources\application.yml中设置
本文为joshua317原创文章,转载请注明:转载自joshua317博客 https://www.joshua317.com/article/83