现如今,互联网的热点已经成为微服务了,如果你到现在还没有听说过微服务,或者还不了解,那表示你已经out了,需要开始作准备了。现在主流的微服务框架包括早期阿里的Dubbo,以及现在热门的SpringCloud,所以我们开始要准备开始学习SpringCloud了,扯远了,因为SpringCloud是基于SpringBoot结构上去进行开发,所以我们也要学习SpringBoot,平时我们使用SSM,SSH等,是不是配置文件一大堆,而且经常不知道哪里配置错了,导致问题很多。SpringBoot就是为了解决这个问题的。使用起来非常简单。
1.1 SpringBoot简介
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
Spring Boot特点:
创建独立的Spring应用程序
嵌入的Tomcat,无需部署WAR文件
简化Maven配置
自动配置Spring
提供生产就绪型功能,如指标,健康检查和外部配置
绝对没有代码生成和对XML没有要求配置
二、 Hello World
2.1 建立Spring Boot工程
Eclipse建立Spring Boot工程,可以自行参考其它博客有介绍,请自行搜索
下边演示Intellij IDEA创建SpringBoot项目
选择Spring Initializr,选择一个jdk版本,这里我们选择1.8,Initializr Service URL地址默认就可以
2.如图页面,按照需要输入修改即可,Group,Artifact,Package等信息
3.这个页面选择的是项目依赖,这个是spring-boot集成其它框架的选项,可以勾选多个,spring-boot就会帮我们集成到项目里,非常简单方便,这里我就简单使用web
4.输入项目名称,选择项目存放的路径,下面的模块名称一般会随着上方的输入自动变化,如果只有一个模块保持默认即可。
意:启动前需要修改一下pom.xml文件 去掉<scope>provided</scope>,不然无法启动
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
改为
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>
假如不去掉<scope>provided</scope>,会出现如下错误,无法启动,我们右击Run As 选择 Spring Boot app,这里我们不需要Tomcat 因为SpringBoot把Tomcat集成了,默认端口8080
我们浏览器输入:http://localhost:8080/
出现这个 说明项目启动成功
package com.jd.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; //组合注解==>返回json数据,等同于@ReponseBody与@Controller public class HelloWorldController { ("/hello") public String say(){ return "spring boot hello world"; } }
注意,新建的类一定要在com.jd包下,即所有新建的包需要在SpringBoot的启动类(SpringbootDemoApplication)下,不然无法识别,会出现如下错误
Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback. Wed Dec 14 16:35:25 CST 2016 There was an unexpected error (type=Not Found, status=404). No message available
问题很像是没有访问地址不对,第一感觉以为url写的不对。
其实不是,真正的原因是【Application启动类放的位置不对】要将Application放在最外层,也就是要包含所有子包。springboot会自动加载启动类所在包下及其子包下的所有组件。
然后我们重新启动SpringbootDemoApplication类
请求
请求成功,我们第一个spring boot的项目就到这里了。