01-SpringBoot入门

作者: 梁寅plus | 来源:发表于2019-06-28 09:32 被阅读0次

亡羊补牢,为时不晚。人在任何时候做自己想做的事情,有这种自由,还是很值得欣慰的。

我之前做Web开发的时候,已经是5年前了吧。

现在技术日新月异,我想我这把老骨头还可以出来继续发挥下余热。

[TOC]

开发环境说明

  • win10
  • openJDK 1.8

我就不搞什么Ubantu,CentOS啥的了,部署的时候,是没有太多区别的。

SpringBoot简介

SpringBoot是一种利用Spring框架快速开发、部署的工具,它有如下几个优势:

  • 快速搭建
  • 快速使用
  • 提供生产级的服务监控
  • 快速部署(自带服务器)
  • 非功能性通用配置
  • Java配置,无代码,XML书写等繁琐事

就头4条,就很吸引人了。

笨办法创建一个SpringBoot

为什么说是笨办法呢?因为有模板化创建的方式方法,不用这么手工去做。

但是本着后续看代码找问题的态度,我们还是要讲一下代码的基本创建的。

如果你要快,那请直接看“模板化构建”小节描述。

JAVA版本选择

Oracel JDK和Open JDK两个分支,推荐选择Red Hat提供的openJDK版本,后续JDK的8和11都是Red Hat维护,下载链接,推荐用8号版本。

OpenJDK的环境变量配置,是自动添加上的,所以省事很多。

选择IDE

我们常用的编码工具有2个:

  • Eclipse
  • IntelliJ IDEA(后面就叫IDEA)

两者都是很优秀的IDE,IDEA是后起之秀,市场占有率逐年上升,Eclipse是个老大哥,使用起来很节约资源。建议电脑没有SSD,不是很硬的话,还是选择Eclipse。

关于更多的IDE选择问题,请诸位查看网上更多相关资料,笔者只是提了一些建议罢了。
在这里提供eclipse下载,笔者已经看到有基于docker的下一代开发IDE了。

当然,还有Spring推出的all in one,下载这个很省事。

我觉得还可以使用纯净版的eclipse,用什么下什么。毕竟现在还在学,不是说效率出奇迹的时候。

创建项目

创建项目常见的方式有三种,分别是:

  • mvn命令行
  • Eclipse中创建Maven工程
  • IDEA中创建maven工程

核心就是maven这套体系,IDE只是包个壳,提供更多便利而已。

mvn创建

安装配置好maven后,CMD命令行执行如下命令

maven的安装与配置

mvn archetype:generate ^  # ^ 为命令行连接符
-DgroupId=org.sang ^  # 组织ID
-DartifactId=chapter01 ^ # 项目名称
-DarchetypeArtifactId=maven-archetype-quickstart ^ # 项目骨架
-DinteractiveMode=false # 是否使用交互模式

会生成对应的目录,导入到IDE即可。

目前应该没有多少人在用这种方式创建了。大多是用的IDE创建。

IDE创建

IDE创建项目这里就讲Eclipse的创建即可

  1. 打开IDE
  2. 创建项目的时候选择Maven Project
    • 选中Use default Workspace location
    • 选择默认项目骨架(Archetype)
    • 填写项目信息,各种项目参数,路径-----这里记得是选择快照版本(snapshot)
    • 完成

IDEA也是这种流程。

构建项目

构建项目,就是要把项目做成一个能跑起来的过程。分为如下三步:加载依赖、编写启动类、

加载依赖

这里就是书写maven配置,建议如下配置:

在pom.xml中配置

添加spring-boot-starter-parent作为parent

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.4.RELEASE</version>
</parent>

这个starter提供了maven的配置,而且还提供dependency-management,开发者根本不用关心引入包的其他依赖版本配置,方便了依赖管理,所以,引入了starter,这就是一个全自动配置包!

填了parent的坑,子类引用就方便多了。比如我们要整一个web的starter,如下:

<dependencies>
    <dependency>
        <groupId>org.springframwork.boot</groupId> # 保持parent一致
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

对,这又是一个starter,也是一个全自动。

对于maven不熟悉的朋友,请见

菜鸟maven教程

编写启动类

其实就是写启动APP类,和C层的controller类

APP

APP类也叫启动类,也就是项目的入口类。maven的项目架构上已经创建了项目包,在工程的java目录下创建一个APP类:

@EnableAutoConfiguration // 开启自动化配置
@ComponentScan // 开启C层映射包扫描,让请求映射到对应的方法中去
public class App{
    public static void main(String[] args){
        // 声明默认启动类,args为启动时输入的参数数组。
        SpringApplication.run(App.class,args); 
    }
}
Controller

SpringMVC的控制器 HelloController,C层。

@RestController 
public class HelloController{
    @GetMapping("/hello") // 定义接收hello请求
    public String hello(){
        return "hello moto!";
    }
}

@RestController=@Controller+@ResponseBody,这是一个组合注释

  • @Controller 是一种特殊化的@Component 类。习惯于和@RequestMapping绑定来使用,后者是用来指定路由映射的。

  • @ResponseBody 是用来把返回对象自动序列化成HttpResponse的。

APP与Controller的注解最优写法

注解的天下:

APP启动类,2个注解(类注解)

Controller类,2个注解(1个类注解,1个方法注解)

这是不是有点麻烦了?

我估计作者也是这么觉的,但是思来想去,Controller的注解不好搞,就把启动类的注解优化下吧。所以APP启动类注解可以这么写了:

@Spring BootApplication // 组合注解,有之前2个注解的功能(自动化配置+映射包扫描)
public class App{
    public static void main(String[] args){
        SpringApplication.run(App.class,args); 
    }
}

至此,我们的构建就基本完成了。接下来我们启动项目看效果。

启动项目

一般有三种启动方式:

  • mvn命令行启动
  • IDE直接运行main方法(启动定义类)
  • 打包启动

三种场景都有运用的地方。

mvn命令行启动

需要进入项目的根目录,就是pom.xml文件的那个目录

mvn spring-boot:run

接下来我们打开浏览器,在 http://localhost:8080/hello 可以看到效果。

IDE直接运行main方法

这个就是IDE上鼠标右键run即可,选择SpringBootApp启动。同样在浏览器上可以查看效果。

打包启动

通过Springboot把项目打成jar包运行。我们部署的时候是非常常见的。

需要3步完成

  • 添加plugin到pom.xml文件中

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework,boot</groupId> # 保持parent一致
                <artifactId>spring-boot-maven-plugin</artifactId> # 添加mavne打包插件
            </plugin>
        </plugins>
    </build>
    

    这里是不是同样需要rebuild进行生效,若Eclipse选中的autoBuild,则是改后自动生效,个人推荐手动。

  • 运行mvn命令打包

    这里应该是需要进入对应项目根目录下进行如此操作的。

    mvn package 
    
  • java -jar命令启动

    java -jar [jar包文件路径]
    

其实打包启动的详细配置还有很多,这里我们不多说,后续有的是机会描述。

是不是觉得这么一步一步构建也挺麻烦的?不用怕,模板化构建会很快让你改变看法

模板化构建

关于模板化构建,简单来讲就是在“笨办法构建一个SpringBoot”里面所描述的东西,我们一步带过,通过一个模板工具,填写一些参数,让工具帮我们生成我们要的基础构建。

一般常见构建方法有三种:

  • 在线构建
  • IDEA构建
  • STS构建

在线构建

SpringBoot官方提供的构建方式,通过在一个页面填写参数生成一个可用IDE导入的文件。

这个神奇的网站就是:https://start.spring.io/

但愿不要被墙

在这个页面,一般需要填写几个参数

  • 构建方式:Maven还是Gradle
  • 语言:java or other
  • SpringBootbanben hao
  • 项目的组织ID(包名)
  • 模块名称
  • 项目依赖

写好过后就可以生成下载文件了。

我们在Eclipse中,以maven的方式导入,然后项目,右键,maven,updateProject,选中Froce Upadate of Shnapshots/Realease后,点击OK。——这样可以解决项目导入过后的报错。

IDEA构建

社区版的IDEA无法构建,请知悉

由于笔者不会选择这种方式(垃圾电脑),故只是说下入口。

  • 创建项目的时候,选择 Spring Initializer
  • ……

STS构建

STS是spring tool suite的缩写,是基于eclipse的的工具。是开发spring应用对eclipse进行定制的产物,为spring应用的开发提供充分的支持,使spring开发更加的简单、高效。

all in one的形式下载:下载地址

关于离线安装方式,这篇文章写的很清楚了。使用方式

项目new--> spring start project,即可开启STS构建。

笔者稍微试了一下,maven在中国的速度,真是惊天地,泣鬼神。。。。。

为毛我觉得使用了撑杆工具加速,更坑了呢?

我RNMGB,越搞越烂,一堆报错。。。。

我知道你需要这个,阿里云镜像配置。

FAQ

Q:新建项目pom.xml中报错:Failure to transfer org.apache.maven.plugins:maven-compiler-plugin:pom:3.5.0 from ……

A:解决办法,右键工程,选择maven->update project,勾选force update ……,点击OK。

同时笔者建议,最好去掉自动build(在菜单栏的project里面关闭。)


Q:eclipse的maven构建很慢啊!!

A:请用阿里云镜像。这速度,跟之前比就是飞起了。如果没有安装maven,eclipse自带的,思路是自己兴建一个maven的config文件,请见

相关文章

网友评论

    本文标题:01-SpringBoot入门

    本文链接:https://www.haomeiwen.com/subject/hqjjcctx.html