5分钟学会如何构建Springboot工程,构建程序员的第一个项目

大家好,我是程序员7歌,从今天开始,我将为大家讲解Springboot应用开发知识。希望大家仔细学习,有不懂的知识可以私信咨询我。

Springboot简介

Spring Boot是一个简化Spring开发的框架。用来监护spring应用开发,约定大于配置,去繁就简,just run 就能创建一个独立的,产品级的应用。

我们在使用Spring Boot时只需要配置相应的Spring Boot就可以用所有的Spring组件,简单的说,spring boot就是整合了很多优秀的框架,不用我们自己手动的去写一堆xml配置然后进行配置。从本质上来说,Spring Boot就是Spring,它做了那些没有它你也会去做的Spring Bean配置。

Springboot优点:

1.可以快速创建独立运行的Spring项目,并且与主流的开发框架集成。

2.使用嵌入式的Servlet容器,应用无需打成War包

3.starters自动依赖与版本控制

4.大量的自动配置,简化开发,也可修改默认值

5.无需配置xml,无代码生成,开箱即用

6.准生产环境的运行时应用监控

7.与云计算的天然集成

创建Springboot项目

我们第一次接触Springboot项目,先来看看如何创建程序员的第一个Springboot项目吧!开发工具IDE我是用的是IntelliJ IDEA,这应该是目前最好用的IDE。打开IDEA开发工具,

点击File -> New -> Project

如下图:

image

点击Project,在弹出的创建项目页面选择项目类型,这是我们测试创建Spring Initializr,采用最简单的方式来创建Springboot工程,也可以使用Maven开直接构建。

选择Spring Initializr

如下图:

image

​点击next进入创建项目基本信息界面:

填写Springboot工程基本信息

Group: 组织ID,一般可以分为多个段,第一段为域,第二段为公司名称。域又分为 org、com、cn等等,其中 org为非营利组织,com为商业组织。

Artifact: 唯一标识符,一般是项目名称

如下图:

image

点击next按钮进入引入开发依赖包界面,Spring Initializr为我们提供了很多的开发组件,不同的组件有不同的作用,在我们测试学习阶段引入依赖Web -> Spring Web 就可以了,选择好依赖包之后点击Next -> Finish

如下图:

image

以上就是Springboot的创建过程,来看一下工程的目录结构:

image

工程结构分析:

  • Example1Application:
    主函数,启动类,运行它如果运行了 Tomcat、Jetty、Undertow 等容器
  • statics:
    存放静态资源 js/css/images 等
  • templates:
    存放 html 模板文件
  • application.properties:
    主要的配置文件,启动时候会自动加载application.yml/application.properties
  • test:
    测试文件存放目录
  • pom.xml:
    pom.xml文件是Maven构建的基础,里面包含了我们所依赖JAR和Plugin的信息

因为我们使用的Spring Initializr插件来创建的工程,所以很多配置和依赖就不需要我们手动去写,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.2.1.RELEASE</version>
     <relativePath/> <!-- lookup parent from repository -->
 </parent>
 <groupId>com.july</groupId>
 <artifactId>example1</artifactId>
 <version>0.0.1-SNAPSHOT</version>
 <name>example1</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>
         <exclusions>
             <exclusion>
             <groupId>org.junit.vintage</groupId>
             <artifactId>junit-vintage-engine</artifactId>
             </exclusion>
         </exclusions>
     </dependency>
 </dependencies>
 <build>
   <plugins>
     <plugin>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-maven-plugin</artifactId>
     </plugin>
   </plugins>
  </build>
</project>

依赖包分析:

  • spring-boot-starter-web:
    默认就内嵌了Tomcat 容器,如需要更换容器也极其简单
  • spring-boot-starter-test:
    测试包,当我们使用 mvn package 的时候该包并不会被打入,因为它的生命周期只在 test 之内
  • spring-boot-maven-plugin:
    编译插件

启动类分析:

在Springboot工程中,一个项目只能有一个启动类即一个main函数,不然在我们进行工程打包时spring-boot-maven-plugin 将找不到主函数,启动类代码如下:

package com.july.example1;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * 程序员的第一个Springboot项目
 * @author zqk
 * @since 2019/12/2
 */
@SpringBootApplication
@RestController
public class Example1Application {
​
 public static void main(String[] args) {
   SpringApplication.run(Example1Application.class, args);
 }
 
 @RequestMapping("/test")
 public String test(){
   return "程序员7歌的第一个Springboot项目";
 }
 
}

配置文件分析:

如果我们现在启动Springboot项目,可以发现项目默认端口号为8080(web程序默认端口),其实我们可以通过修改配置文件修改项目端口的,以后项目多了,大家就会发现端口的重要性,如下代码:

2019-12-02 15:57:53.907 INFO 10965 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''

修改默认配置文件:

配置文件有两种格式:properties和yaml,写法风格不同,properties是链状式,yaml是树形写法,个人比较喜欢yaml,配置如下:

server:
     port: 8607 #项目端口号
     servlet:
         context-path: /example1 #项目名称(上下文)

再次启动项目,可以发现端口已经变成8607了,如下日志:

2019-12-02 16:03:44.872 INFO 11091 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8607 (http) with context path '/example1'

我们打开浏览器,地址栏访问:http://localhost:8607/example1/test,可以看到浏览正常显示,显示内容为启动类里面我们定义的接口返回信息,如下图:

image

以上就是今天为大家讲解的如何创建Springboot工程,按照上面的步骤来实践,可以轻松实现Springboot的学习,感谢大家的观看~~❤️

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,794评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,050评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,587评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,861评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,901评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,898评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,832评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,617评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,077评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,349评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,483评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,199评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,824评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,442评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,632评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,474评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,393评论 2 352

推荐阅读更多精彩内容

  • 去年春节前后宅居务农写了几篇关于销售的文章,今年基本也没有参与银行的旺季营销,打算在家休养身体的同时一起聊聊客户的...
    草样蚂蚁阅读 1,835评论 1 5
  • 常用注解: -@Api()用于类; 表示标识这个类是swagger的资源 -@ApiOperation()用于方法...
    长山丨阅读 632评论 0 0
  • 《莫问中年》(连载) 第七章 章舞剑心藏秘密地来到了汽车振动台研究室,他假装想先看看汽车振动时候的样子,然后再找秦...
    刘老师_9e2c阅读 251评论 0 0
  • 2019-10-01 做什么 在项目中引入单元测试、typescript 以及提交代码时必须单元测试通过。 引入J...
    寻找自我的兔茽阅读 631评论 0 0
  • 霓虹灯闪烁的夜晚,不见了遥远的星辰光。 虫鸣声代表了夜的静寂,隐匿在了川流不息的车流中。夏季的夜空要比冬季距大地更...
    靜覺阅读 167评论 0 1