一步步学习SpringBoot(一) 快速搭建一个web

摘要:
SpringBoot便是一个社区反馈推动的项目.SpringBoot可以说是至少近5年来Spring乃至整个Java社区最有影响力的项目之一。SpringBoot主要包含以下特性:直接嵌入Tomcat,Jetty或者Undertow作为Servletcontainer。SpringBoot环境准备jdk1.8orlatermaven3.0+orgradle2.3+,本文使用maven。通过maven构建SpringBoot的jar包与依赖包maven是一个出色的java构建工具,我们通过maven来构建springboot的jar包与依赖,maven用法非常简单,本文不重点描述maven的用法,不熟悉maven的同学可以自行去官网学习。写一个controller这里面用了一个注解,SpringBoot特性的注解。

适应读者

  • 前端工程师(java系的公司)
  • 前端架构师(java系的公司)
  • java工程师
  • 测试工程师(java系的公司)

什么是SpringBoot?

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应用变的更简单。

一步步学习SpringBoot(一) 快速搭建一个web第1张

SpringBoot环境准备

  • jdk1.8 or later (去java官网下载,记得要1.8或以上)
  • maven3.0+ or gradle2.3+, 本文使用maven。
  • 你喜欢的一个ide,本文的demo是用 idea。

通过idea新建一个java project

打开idea,新建一个project,选择Maven

一步步学习SpringBoot(一) 快速搭建一个web第2张

继续点击next, 设置projectname为helloworld,最后点击finish如下,

一步步学习SpringBoot(一) 快速搭建一个web第3张

一个简单的java project建立好了。

通过maven构建SpringBoot的jar包与依赖包

maven是一个出色的java构建工具,我们通过maven来构建springboot的jar包与依赖,maven用法非常简单,本文不重点描述maven的用法,不熟悉maven的同学可以自行去官网学习。

打开pom.xml, 将以下内容拷贝进去,主要

<?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的特性。

写一个controller


这里面用了一个注解,SpringBoot特性的注解。

@RestController

它相当于SpringMVC的 @Controller与@ResponseBody的合体,大家先别急,我们后面的文章会详细介绍,我们先让程序运行起来,代码如下。

packagecom.helloworld.controller;

importorg.springframework.web.bind.annotation.RequestMapping;
importorg.springframework.web.bind.annotation.RestController;

/*** Created by fangxiao on 2017/3/24.
 */@RestController
public classController {

    @RequestMapping("/helloworld")
    publicString helloWorld() {
        return "helloworld";
    }
}

写一个Application启动main方法

SpringBoot是通过main方法直接将内置的tomcat启动的,大家还是别急,我们先让程序运行起来,程序如下

importorg.springframework.boot.SpringApplication;
importorg.springframework.boot.autoconfigure.SpringBootApplication;

/*** Created by fangxiao on 2017/3/25.
 */
@SpringBootApplication
public classApplication {
    public static voidmain(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

这里最神奇的时注解@SpringBootApplication, 它的原理是怎样的呢,在我后面的文章会讲到。

启动服务

编码完毕,我们要启动一个web服务了,启动的方法可以通过gradle或者maven命令,我习惯直接通过jar命令的方式启动,对于IEDA来说,直接run这个Application类就Ok了

一步步学习SpringBoot(一) 快速搭建一个web第4张

大家可以看到内置的tomcat(SpringBoot内置的应用服务器默认是tomcat)已经启动了,

一步步学习SpringBoot(一) 快速搭建一个web第5张

我们刚刚在controller里面做了一个路由/helloworld, 我们打开浏览器直接输入localhost:8080/helloworld, 可以看到如下Response

一步步学习SpringBoot(一) 快速搭建一个web第6张

自此,我们已经搭建好了一个java web,可能有同学会问,如果想response一个json接口应该怎么实现,这个也很easy,在controller再增加一个路由,代码如下,

   @RequestMapping("/user")
    publicMap getUsers() {
        Map map = new HashMap<>();
        map.put("name","fangxiao");
        map.put("age","15");
        returnmap;
    }

我们启动下服务器,访问localhost:8088/user,看到结果如下:

一步步学习SpringBoot(一) 快速搭建一个web第7张

这就是个简单的接口服务了,前端通过ajax取到可以做相应的数据渲染。

到了这里大家也许会有些疑问,就这么几行代码就启动了一个web服务,不用配置web.xml,也不用配置spring其他的依赖注入,更不用专门维护一个tomcat和打war包,这些就是SpringBoot令人振奋的地方,约定大于配置,大大简化了配置成本,在后面的文章中我会逐步介绍它更多的特性与原理。

总结

本文我们通过SpringBoot的特性快速搭建了一个web,我们只用了几行代码就启动了一个web并且访问了一个Restful的服务,通过约定大于配置的思想比SpringMVC简洁了很想,希望我的这一系列能提供给大家一些思路和做一些尝试,所有的例子可以在https://github.com/fangxiao/springboot查看,如想了解更多技术,请关注我的微信公众号。

一步步学习SpringBoot(一) 快速搭建一个web第8张

免责声明:文章转载自《一步步学习SpringBoot(一) 快速搭建一个web》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【转】关于Bootmgfw.efi、Bootx64.efi的详解Something-Summary下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

spring cloud fegin 原理解析

一、 SpringCloud 中 Feign 核心原理 如果不了解 SpringCloud 中 Feign 核心原理,不会真正的了解 SpringCloud 的性能优化和配置优化,也就不可能做到真正掌握 SpringCloud。 本章从Feign 远程调用的重要组件开始,图文并茂的介绍 Feigh 远程调用的执行流程、Feign 本地 JDK Proxy...

SpringBoot启动过程中涉及到了扩展接口

SpringApplicationRunListener接口 1、ApplicationListener接口 是ApplicationContext的事件监听器 2、EnvironmentPostProcessor接口 上下文环境后置处理器,事件中调用 3、PropertySourceLoader接口 自定义配置文件加载器,自己解析配置文件属性...

SpringBoot整合Mybatis,TypeAliases配置失败的问题

SpringBoot整合Mybatis,TypeAliases配置失败的问题 问题描述 在应用MyBatis时,使用对象关系映射,将对象和Aliase映射起来。 在Mybatis的文档明确写出,如果你没有明确定义实体类的Aliase,框架会自动将Class Name自动 作为别名。 那么问题来了,当使用java -jar xxx.jar&启动的时候...

SpringBoot 学集 (第三章) 日志框架

写在前面:分享技术,共同进步,有不足请见谅,相关意见可评论告知 ~ 编程路漫漫,学习无止尽! 目录 日志框架 SLF4j使用 统一日志记录 SpringBoot日志关系总结 日志框架的使用; 日志的级别 SpringBoot修改日志的默认配置 日志输出格式: 指定配置 常见错误及其异常①log4j中Logger.getLogger(...

Spring MVC-学习笔记(4)数据绑定流程

1、请求数据在到达处理方法前这段时间。 spring MVC还会做请求信息转换、数据转换、数据格式化、数据校验。 2、数据转换 1》ConversionService: Spring类型转换体系的核心接口,在其中定义了一下4个方法: 可以在spring上下文中注册一个ConversionServiceFactoryBean,用以定义一个Conversio...

转:理解 IntelliJ IDEA 的项目配置和Web部署

1、项目配置的理解 IDEA 中最重要的各种设置项,就是这个 Project Structre 了,关乎你的项目运行,缺胳膊少腿都不行。最近公司正好也是用之前自己比较熟悉的IDEA而不是Eclipse,为了更深入理解和使用,就找来各种资料再研究一下,这里整理后来个输出。   1.1 Project Project name:定义项目的名称; Pr...