SpringBoot2.0入门教程(一) 快速入门,项目构建HelloWorld示例

一、目标

自己能够快速的开始一个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代码

package com.joshua317.helloworlddemo.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/hello")
public class HelloWorldController {
    @RequestMapping("/index")
    public String index(){
        return "Hello World";
    }
}
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中设置

 

posted @ 2021-09-04 22:30  joshua317  阅读(374)  评论(0编辑  收藏  举报