前言
Spring一直是很火的一个开源框架,在过去的一段时间里,Spring Boot在社区中热度一直很高,所以决定花时间来了解和学习,为自己做技术储备。
正文
首先声明,Spring Boot不是一门新技术,所以不用紧张。从本质上来说,Spring Boot就是Spring,它做了那些没有它你也会去做的Spring Bean配置。它使用“习惯优于配置”(项目中存在大量的配置,此外还内置了一个习惯性的配置,让你无需手动进行配置)的理念让你的项目快速运行起来。使用Spring Boot很容易创建一个独立运行(运行jar,内嵌Servlet容器)、准生产级别的基于Spring框架的项目,使用Spring Boot你可以不用或者只需要很少的Spring配置。
**Spring Boot精要
**
Spring将很多魔法带入了Spring应用程序的开发之中,其中最重要的是以下四个核心。
自动配置:针对很多Spring应用程序常见的应用功能,Spring Boot能自动提供相关配置
起步依赖:告诉Spring Boot需要什么功能,它就能引入需要的库。
命令行界面:这是Spring Boot的可选特性,借此你只需写代码就能完成完整的应用程序,无需传统项目构建。
Actuator:让你能够深入运行中的Spring Boot应用程序,一套究竟。
详细的我们就不展开,等你爱上后自然会去深入的了解,后续章节我们会一一展开介绍。接下来让我们开搞吧。我已经迫不及待的要尝尝Spring Boot的味道了。
系统要求
目前Spring Boot正式版为1.5.6.RELEASE默认情况下,Spring Boot 1.5.6.RELEASE 需要Java 7和Spring Framework 4.3.11.RELEASE或更高版本,你也可以使用Spring Boot with Java 6和一些额外的配置(不建议),使用Maven(3.2+)或Gradle 2(2.9或更高版本)和3来构建。
虽然你可以使用Java 6或7的Spring Boot,但我们通常推荐Java 8。
所以本博客系列统一使用Java 1.8,Spring Boot 1.5.1.RELEASE以及Maven3.3.9版本。开发工具使用eclipse
优缺点
先说缺点吧
- 坑有些多, 文档略少, 特别是一些JavaConfig相关的东西, 比如上面某个答案说的加载逻辑抽风的问题, 用 @DependsOn注解应该就能搞定 (但就是网上死活搜不到)2. 版本迭代速度很快(大雾, 这个其实算是优点, 说明很火), 一些模块改动很大, 比如 springboot-test的1.3.5 vs 1.4.
优点 - 不用看那么一坨xml真的很神清气爽啊。。用javaconfig可以让你很容易明白一些框架的关键2. springboot 要解决的问题, 精简配置是一方面, 另外一方面是如何方便的让spring生态圈和其他工具链整合(比如redis, email, elecsearch)
光速入门-开发一个Web服务
没有比较就没有伤害,让我们先看看传统Spring MVC开发一个简单的Hello World Web应用程序,你应该做什么,我能想到一些基本的需求。
1.一个项目结构,其中有一个包含必要依赖的Maven或者Gradle构建文件,最起码要有Spring MVC和Servlet API这些依赖。
2.一个web.xml文件(或者一个WebApplicationInitializer实现),其中声明了Spring的DispatcherServlet。
3.一个启动了Spring MVC的Spring配置
4.一控制器类,以“hello World”相应HTTP请求。
5.一个用于部署应用程序的Web应用服务器,比如Tomcat。
最让人难以接受的是,这份清单里面只有一个东西是和Hello World功能相关的,即控制器,剩下的都是Spring开发的Web应用程序必需的通用模板。
接下来看看Spring Boot如何搞定?
很简单,我仅仅只需要非常少的几个配置就可以迅速方便的搭建起来一套web项目具体步骤如下打开eclipse 创建一个maven project 如下图:
这里写图片描述点击next 下一步填写groupId artifactId 如下图:
这里写图片描述
点击finish 就完成了 项目的创建目录如下图:
这里写图片描述
如你所见,项目里面基本没有代码,除了几个空目录外,还包含如下几样东西。
pom.xml:Maven构建说明文件。
App.java:一个带有main()方法的类,用于启动应用程序(关键)。
application.properties:一个空的properties文件,你可以根据需要添加配置属性。
下面填写pom .xml 给项目添加相应的依赖
<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>com.wen</groupId>
<artifactId>boot</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>boot</name>
<url>http://maven.apache.org</url>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.6.RELEASE</version>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- jdk 版本 -->
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 由于在上面指定了parent 再引入springboot 相关jar
会自动引入合适的版本不需要 version-->
</dependency>
</dependencies>
</project>
接下来写一个controller 测试一下helloword
package com.wen.boot.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author 作者 cxhc
* @version 创建时间:2017年9月21日 下午10:05:49
*/
@RestController
@RequestMapping("/hello")
public class HelloContreller {
@RequestMapping("/index.do")
public String helloPage() {
return "hello world!!!";
}
}
RestController 可以理解为 Controller和responseBody 的合体。
接来下编写启动类代码如下:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* Hello world!
*/
@SpringBootApplication//标注这个是一个springboot 的引用程序
public class App
{
public static void main( String[] args )
{
SpringApplication.run(App.class,args);
System.out.println( "Hello World!" );
}
}
点击绿色播放按钮启动程序
当我们看到hello world 代码启动成功了
这里写图片描述
打开浏览器输入 http://localhost:8080/hello/index.do
这里写图片描述
总结:
总体来说创建一个工程 填写依赖,添加一个控制类,启动就能看到效果了。
博客地址:http://www.haha174.top/article/details/259962
项目源码:https://github.com/haha174/boot
推荐一篇文章: http://mp.weixin.qq.com/s/fEfeYffkHkA_RzPOg8P76Q
网友评论