现在很多spring boot都是用IDEA去开发,这里我们使用的是在Eclipse里使用SpringBoot,首先要安装下STS插件。
安装插件之前,我一般建议大伙开下 因为是下载国外的东西 用会很快,这个具体怎么玩我也没尝试过,有小伙伴有经验的可以交流下。
以及提前配置下Eclipse里的Maven插件,改成国内阿里云镜像,具体方式:http://www.jianshu.com/p/893d5f4351ed
后面新建springboot项目的时候,会下载jar包,用国内镜像会快很多;
打开Eclipse 菜单栏 Help -> Eclipse Marketplace…
选择Popular,然后下载。
之后点击confirm
下载完成后,会重启eclipse。
这时候我们可以开始创建我们第一个spring boot项目了,
我们看到是这样的,这里我们改几个参数。
改项目名,包名,点击next。
到了 配置依赖的界面,我们这里暂时不需要用到其他的,仅选择一个Web依赖即可;
然后点击Finish,这时候会下载很多Jar包,如果有小伙伴么有修改成国内镜像,那就可以好好体验下什么叫做龟速了;
生成的项目结构如下,HelloWorldApplication是启动类。
我们右击Run As 选择 Spring Boot app
这里我们不需要Tomcat 因为SpringBoot把Tomcat集成了,默认端口8080
Tomcat启动成功,端口8080,耗时7.984秒。
接着我们打开浏览器输入地址:http://localhost:8080,出现下面内容则表示项目启动成功。
spring boot项目创建成功,我们现在写我们第一个helloWorld。
接着我们写一个helloWorld的请求,现在我们项目下面建一个HelloWorldController类。代码如下:
package com.zznode.springBootDemo;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloWorldController {
@RequestMapping("/hello")
public String say(){
return "Spring Boot 你大爷!";
}
}
指定/hello请求 返回Spring Boot 你大爷
然后我们重新启动HelloWorldApplication类
请求 http://localhost:8080/hello
这样一个简单的Spring Boot的项目就完成了,是不是很简单。
没有比较就没有伤害,让我们先看看传统Spring MVC开发一个简单的Hello World Web应用程序,你应该做什么,我能想到一些基本的需求。
- 一个项目结构,其中有一个包含必要依赖的Maven或者Gradle构建文件,最起码要有Spring MVC和Servlet API这些依赖。
- 一个web.xml文件(或者一个WebApplicationInitializer实现),其中声明了Spring的DispatcherServlet。
- 一个启动了Spring MVC的Spring配置
- 一控制器类,以“hello World”相应HTTP请求。
- 一个用于部署应用程序的Web应用服务器,比如Tomcat。
最让人难以接受的是,这份清单里面只有一个东西是和Hello World功能相关的,即控制器,剩下的都是Spring开发的Web应用程序必需的通用模板。
根据上面的操作已经初始化了一个Spring Boot的框架了:
大家跟我一起移步pom.xml,看看Spring Boot的跟普通Spring MVC工程的Maven配置有啥不一样。
<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.0modelVersion>
<groupId>com.dudugroupId>
<artifactId>chapter1artifactId>
<version>0.0.1-SNAPSHOTversion>
<packaging>jarpackaging>
<name>chapter1name>
<description>Demo project for Spring Bootdescription>
<parent>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-parentartifactId>
<version>1.5.1.RELEASEversion>
<relativePath/>
parent>
<properties>
<project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8project.reporting.outputEncoding>
<java.version>1.8java.version>
properties>
<dependencies>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-testartifactId>
<scope>testscope>
dependency>
dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-maven-pluginartifactId>
plugin>
plugins>
build>
project>
可以看出,有几个配置是不大一样的,我们挑几个重要的说说,要是客观不想过早的了解这些,自行跳过这一知识点即可。
<parent>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-parentartifactId>
<version>1.5.1.RELEASEversion>
<relativePath/>
parent>
````
这块配置就是Spring Boot父级依赖,有了这个,当前的项目就是Spring Boot项目了,spring-boot-starter-parent是一个特殊的starter,它用来提供相关的Maven默认依赖,使用它之后,常用的包依赖可以省去version标签。关于Spring Boot提供了哪些jar包的依赖,可查看C:\Users\用户.m2\repository\org\springframework\boot\spring-boot-dependencies\1.5.1.RELEASE\spring-boot-dependencies-1.5.1.RELEASE.pom
这里我就贴一点点意思意思,如下:
<div class="se-preview-section-delimiter">div>
SpringBootApplication是一个很关键的启动类,程序的入口就是这里,为了演示简单,我们不再新建控制类,而是直接在这个入口类中编写,添加@RestController以及say方法,如下:
1.@SpringBootApplication是Sprnig Boot项目的核心注解,主要目的是开启自动配置。后续讲解原理的时候再深入介绍。
2.main方法这是一个标准的Java应用的main的方法,主要作用是作为项目启动的入口。
3.@RestController注解等价于@Controller+@ResponseBody的结合,使用这个注解的类里面的方法都以json格式输出。
虽然我上面讲解了那么多,但是实际开发步骤就是那么简单暴力,初始化一个Spring Boot,添加一个控制类,启动就能看到效果了。
本章作为入门Spring Boot的入门介绍,相关的需要理解的概念就只有这几点:
- Spring Boot父级依赖的概念
- 起步依赖 spring-boot-starter-xx的概念
- 应用入口类的作用
如果哪里写的不好或者写错了,大家可以在下方留言,一起交流。