Spring Boot学习之旅:(一)HELLO WORLD

前言

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

优缺点 先说缺点吧

  1. 坑有些多, 文档略少, 特别是一些JavaConfig相关的东西, 比如上面某个答案说的加载逻辑抽风的问题, 用 @DependsOn注解应该就能搞定 (但就是网上死活搜不到)2. 版本迭代速度很快(大雾, 这个其实算是优点, 说明很火), 一些模块改动很大, 比如 springboot-test的1.3.5 vs 1.4. 优点
  2. 不用看那么一坨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 就完成了 项目的创建目录如下图: 这里写图片描述 如你所见,项目里面基本没有代码,除了几个空目录外,还包含如下几样东西。

  1. pom.xmlMaven构建说明文件。
  2. App.java:一个带有main()方法的类,用于启动应用程序(关键)。
  3. application.properties:一个空的properties文件,你可以根据需要添加配置属性。

下面填写pom .xml 给项目添加相应的依赖

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  3. <modelVersion>4.0.0</modelVersion>
  4. <groupId>com.wen</groupId>
  5. <artifactId>boot</artifactId>
  6. <version>0.0.1-SNAPSHOT</version>
  7. <packaging>jar</packaging>
  8. <name>boot</name>
  9. <url>http://maven.apache.org</url>
  10. <parent>
  11. <groupId>org.springframework.boot</groupId>
  12. <artifactId>spring-boot-starter-parent</artifactId>
  13. <version>1.5.6.RELEASE</version>
  14. </parent>
  15. <properties>
  16. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  17. <!-- jdk 版本 -->
  18. <java.version>1.8</java.version>
  19. </properties>
  20. <dependencies>
  21. <dependency>
  22. <groupId>org.springframework.boot</groupId>
  23. <artifactId>spring-boot-starter-web</artifactId>
  24. <!-- 由于在上面指定了parent 再引入springboot 相关jar
  25. 会自动引入合适的版本不需要 version-->
  26. </dependency>
  27. </dependencies>
  28. </project>

接下来写一个controller 测试一下helloword

  1. package com.wen.boot.controller;
  2. import org.springframework.web.bind.annotation.RequestMapping;
  3. import org.springframework.web.bind.annotation.RestController;
  4. /**
  5. * @author 作者 cxhc
  6. * @version 创建时间:2017年9月21日 下午10:05:49
  7. */
  8. @RestController
  9. @RequestMapping("/hello")
  10. public class HelloContreller {
  11. @RequestMapping("/index.do")
  12. public String helloPage() {
  13. return "hello world!!!";
  14. }
  15. }

RestController 可以理解为 Controller和responseBody 的合体。 接来下编写启动类代码如下:

  1. import org.springframework.boot.SpringApplication;
  2. import org.springframework.boot.autoconfigure.SpringBootApplication;
  3. /**
  4. * Hello world!
  5. */
  6. @SpringBootApplication//标注这个是一个springboot 的引用程序
  7. public class App
  8. {
  9. public static void main( String[] args )
  10. {
  11. SpringApplication.run(App.class,args);
  12. System.out.println( "Hello World!" );
  13. }
  14. }

点击绿色播放按钮启动程序 这里写图片描述 当我们看到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

posted on 2018-03-27 09:31  cxhc  阅读(121)  评论(0)    收藏  举报

导航