Spring Boot即是一个社区反馈推进的项目. Spring Boot能够说是至少近5年来Spring乃至整个Java社区最有影响力的项目之一。Spring Boot主要包含如下特性:直接嵌入Tomcat, Jetty或者Undertow做为Servlet container。今后以后不再用将应用程序打包成war而后上传到application server里面了。 提供了starter POM, 可以很是方便的进行包管理, 很大程度上减小了jar hell或者dependency hell 自动进行Spring框架的配置,节省程序员大量的时间和精力,可以让程序员专一在业务逻辑代码的编写上 不须要任何第三方系统,更不须要用xml来进行框架的配置,因此SpringBoot让java应用变的更简单。前端
打开idea,新建一个project,选择Mavenjava
继续点击next, 设置projectname为helloworld,最后点击finish以下,git
一个简单的java project创建好了。程序员
maven是一个出色的java构建工具,咱们经过maven来构建springboot的jar包与依赖,maven用法很是简单,本文不重点描述maven的用法,不熟悉maven的同窗能够自行去官网学习。github
打开pom.xml, 将如下内容拷贝进去,主要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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>helloWorld</groupId>
<artifactId>helloworld</artifactId>
<version>1.0-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.2.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<properties>
<java.version>1.8</java.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>spring-releases</id>
<url>https://repo.spring.io/libs-release</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-releases</id>
<url>https://repo.spring.io/libs-release</url>
</pluginRepository>
</pluginRepositories>
</project>
保存pom.xml后, idea经过maven完成构建,如今这个java project已经具有了SpringBoot的特性。ajax
这里面用了一个注解,SpringBoot特性的注解。spring
@RestControllerapache
它至关于SpringMVC的 @Controller与@ResponseBody的合体,你们先别急,咱们后面的文章会详细介绍,咱们先让程序运行起来,代码以下。json
package com.helloworld.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** * Created by fangxiao on 2017/3/24. */ @RestController public class Controller { @RequestMapping("/helloworld") public String helloWorld() { return "helloworld"; } }
SpringBoot是经过main方法直接将内置的tomcat启动的,你们仍是别急,咱们先让程序运行起来,程序以下
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * Created by fangxiao on 2017/3/25. */ @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
这里最神奇的时注解@SpringBootApplication, 它的原理是怎样的呢,在我后面的文章会讲到。
编码完毕,咱们要启动一个web服务了,启动的方法能够经过gradle或者maven命令,我习惯直接经过jar命令的方式启动,对于IEDA来讲,直接run这个Application类就Ok了
你们能够看到内置的tomcat(SpringBoot内置的应用服务器默认是tomcat)已经启动了,
咱们刚刚在controller里面作了一个路由/helloworld, 咱们打开浏览器直接输入localhost:8080/helloworld, 能够看到以下Response
自此,咱们已经搭建好了一个java web,可能有同窗会问,若是想response一个json接口应该怎么实现,这个也很easy,在controller再增长一个路由,代码以下,
@RequestMapping("/user") public Map getUsers() { Map map = new HashMap<>(); map.put("name","fangxiao"); map.put("age","15"); return map; }
咱们启动下服务器,访问localhost:8088/user,看到结果以下:
这就是个简单的接口服务了,前端经过ajax取到能够作相应的数据渲染。
到了这里你们也许会有些疑问,就这么几行代码就启动了一个web服务,不用配置web.xml,也不用配置spring其余的依赖注入,更不用专门维护一个tomcat和打war包,这些就是SpringBoot使人振奋的地方,约定大于配置,大大简化了配置成本,在后面的文章中我会逐步介绍它更多的特性与原理。
本文咱们经过SpringBoot的特性快速搭建了一个web,咱们只用了几行代码就启动了一个web而且访问了一个Restful的服务,经过约定大于配置的思想比SpringMVC简洁了很想,但愿个人这一系列能提供给你们一些思路和作一些尝试,全部的例子能够在https://github.com/fangxiao/springboot查看,如想了解更多技术,请关注个人微信公众号。