基于IDEA的SpringBoot快速入门

发布于 2018-12-11  4 次阅读


前言

最近由于工作需求,要我开发一个基于Java Web的物联网设备管理平台...之前接触Java倒是比较多,但是都是在搞Android开发,Web那一套一直觉得太乱太杂就没去接触,这次迫不得已需要用到这一块的技术,就简单地做个笔记记录下学习的过程,当然我这是初学,很多地方描述得并不准确,希望各位批评指正,多多留言(如果有人看的话)。在搭建平台之前,对技术选型我搜了很多资料,大概会涉及到的技术,前端后端都有。后端就是Spring-SpringBoot、Servlet、JSP这些,前端就更多了,HTML5、CSS3、Javascript、JQuery、Ajax、Bootstrap等等等等。至于哪些会用到哪些用不到现在也不清楚,毕竟学的东西多了,人的记忆是靠不住的,还是得写成笔记,然后存到数据库中...好了不说废话了,开始正文

IDEA开启SpringInitializr

我这里的 IDEA 版本是2018.3,打开IDEA的File->New->Project页面,没有Spring Initializr选项。但是去File->Settings->Plugins中搜索Spring Boot完全找不到相关的内容。百度相关问题,看到CSDN上面有篇博客让人用Sprint Assistant,但那只是一个替代品。其实Spring Boot插件是默认安装好了的,我们只需要在已安装目录中,找到并且勾上,然后重启IDEA即可。
SprintBoot插件
重启IDEA后可以看到新建项目中已经有Spring Initializr选项了。
SpringInitializr

创建Spring Boot工程

如果你装好了IDEA和Spring的相关插件,那么创建一个Spring Boot的项目是非常容易的了。直接File->New->Project->Spring Initializr,然后配置包名项目名,一路Next就好。有一个步骤是配置依赖的,暂时可以不用管它,反正之后也可以通过手动配置maven的方式来添加修改。
创建好的项目结构如下,是一个标准的maven工程目录结构。
SpringBoot工程目录
|---src 源码目录
|---|---main 主程序
|---|---|---java java源文件,存放java程序的包
|---|---|---resources 框架配置及资源文件
|---|---|---|---application.properties 资源配置
|---|---test 测试程序
|---|---|---java java测试源文件,存放java测试程序的包
|---|---|---resources 测试的资源、配置文件
|---pom.xml Maven工程的核心配置文件,比如依赖配置、JDK版本等等
如果你是通过Spring Initializr进行创建的工程,那么你会发现在pox.xml文件中的<dependencies>项默认有两个spring的基本依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>

这两个分别是SpringBoot的基本启动器和测试基本启动器。启动器(Starter)是SpringBoot一个非常重要的内容,负责为我们提供一系列的服务。在SpringBoot中有很多的Starter,比如提供JDBC服务的spring-boot-starter-jdbc,构建Web,包含RESTful风格框架SpringMVC和默认的嵌入式容器Tomcat的spring-boot-starter-web等等,这些可以在Spring官网上找到。偶尔这个官网会抽风...使用梯子可破

而位于resources目录下的application.properties文件,此时还是空的,这个文件是其他的一些配置,比如数据库服务等等,此处暂时不展开介绍(我自己也还在学习中)。

编写一个简单的controller

在SpringBoot中,我们一般通过编写controller来处理url请求。
首先创建一个controllers包,创建TestController.java文件,编写如下代码。

import org.springframework.stereotype.Controller;
@Controller
public class TestController {

    @RequestMapping("/index.html")
    @ResponseBody
    public String test(){
        return  "hello spring boot!";
    }

}

这里我们能够看到很多@的标签,这也是SpringBoot的开发特性之一,注解(annotations)。如果你用过Android上的IOC框架,如Xutils,便会感到非常亲切。或者你熟悉C#开发——我感觉这个和C#中特性标签也有点类似。我们通过这些标签,来指定一个类或者方法的属性。比如@Controller表示这个类是一个Controller,你看我们并没有进行任何继承或者实现接口,是不是很神奇?实际上是编译器,通过反射等机制帮我们完成了这么一堆操作,我们就可以很轻松地实现业务逻辑了。
然后这个@RequestMapping表示一个url地址的响应,@ResponseBody表示返回的是Response内容。这里直接这样编写会报错,IDEA很强大地给我们提示出需要添加spring-boot-starter-web依赖,然后ALT+Enter 刷刷刷自动完成,不仅添加好依赖还帮我们完成了自动导入包import org.springframework.web.bind.annotation.RequestMapping/ResponseBody;...感觉过分依赖于IDE人是会变痴呆的,所以这里还是得大致了解一下依赖关系才行啊

编写完成,我们运行一下试试看。由于SpringBoot是已经集成了一套Web容器,所以不需要任何比如Tomcat这样的环境,就可以跑起来。成功会输出下面这样一个SpringBoot的Logo,然后输出正常的调试信息。
Spring运行日志
然后我们进入到浏览器,输入本地监听地址localhost:8080,加上我们刚刚设置的/index.html,应该可以看到如下内容:
成功页面

那么我们就成功地搭建起了一个简单的SpringBoot Web应用了,是不是非常的简单呢?现在终于明白了为何这么多公司会想用这套框架了,学习和开发成本不高,同时比较规范,如果是像我之前一样自己编写代码解析HTTP报文,工作量大不说,而且容易出bug。

好了,本次教程就到这里,之后等我进一步地学习后也会不断地更新教程,感谢各位的阅读。如有错误之处还请各位留言指出~

Comments


来自像素世界的代码家,创造第九艺术!