zoukankan      html  css  js  c++  java
  • 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),需要修改,那么在 resourcesapplication.yml中设置

     

  • 相关阅读:
    Thread之六:线程创建方法
    MySQL优化技巧之四(数据库设计中的一些技巧)
    数据库设计三大范式
    分布式事务之:TCC (Try-Confirm-Cancel) 模式
    spring AOP 之五:Spring MVC通过AOP切面编程来拦截controller
    Thread之五:线程的优先级
    分布式事务之:TCC几个框架的测试情况记录
    spring AOP 之四:@AspectJ切入点标识符语法详解
    IP地址漂移的实现与原理
    高可用集群heartbeat全攻略
  • 原文地址:https://www.cnblogs.com/joshua317/p/15228052.html
Copyright © 2011-2022 走看看