前言
最近由于工作需求,要我开发一个基于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即可。
重启IDEA后可以看到新建项目中已经有Spring Initializr
选项了。
创建Spring Boot工程
如果你装好了IDEA和Spring的相关插件,那么创建一个Spring Boot的项目是非常容易的了。直接File->New->Project->Spring Initializr
,然后配置包名项目名,一路Next就好。有一个步骤是配置依赖的,暂时可以不用管它,反正之后也可以通过手动配置maven的方式来添加修改。
创建好的项目结构如下,是一个标准的maven工程目录结构。
|---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的基本启动器和测试基本启动器。启动器是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的开发特性之一,注解。如果你用过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,然后输出正常的调试信息。
然后我们进入到浏览器,输入本地监听地址localhost:8080
,加上我们刚刚设置的/index.html
,应该可以看到如下内容:
那么我们就成功地搭建起了一个简单的SpringBoot Web应用了,是不是非常的简单呢?现在终于明白了为何这么多公司会想用这套框架了,学习和开发成本不高,同时比较规范,如果是像我之前一样自己编写代码解析HTTP报文,工作量大不说,而且容易出bug。
好了,本次教程就到这里,之后等我进一步地学习后也会不断地更新教程,感谢各位的阅读。如有错误之处还请各位留言指出~
Comments | NOTHING