来源:https://www.tianmaying.com/tutorial/project-based-on-spring-boot

Spring Boot简介

接下来我们所有的Spring代码实例将会基于Spring Boot,因此我们先来了解一下Spring Boot这个大杀器。

Spring早期使用XML配置的方式来配置Spring Beans之间的关系,比如AOP和依赖注入的配置。随着功能以及业务逻辑的日益复杂,应用便会伴随大量的XML配置文件以及复杂的Bean依赖关系。随着Spring 3.0的发布,Spring团队逐渐开始摆脱XML配置文件,并且在开发过程中大量使用“约定优先配置”(convention over configuration)的思想来摆脱Spring框架中各类纷繁复杂的配置。Spring就是在这样一种背景下被抽象出来的一个在Spring之上的开发框架。

Spring Boot的设计目的是用来简化新Spring应用的创建以及开发过程。从它的名字可以看出,其作用在于创建和启动新的基于 Spring 框架的项目,它能够帮助开发人员很容易的创建出基于Spring的独立运行和产品级别的应用。它包含的特性如下:

  • 应用独立运行,对于Web应用直接嵌入应用服务器(Tomcat or Jetty)
  • 根据项目的依赖(Maven or Gradle中定义的依赖)自动配置Spring框架的特性
  • 提供生产环境中的监控功能——性能、应用状态信息等
  • 不会生成繁琐的Java代码以及XML配置文件

Spring Boot并不是用来替代Spring的解决方案,而是和Spring框架紧密结合用于提升Spring开发者体验的工具。Spring Boot应用通常只需要非常少量的配置代码,而且有内嵌的Web服务器,让开发者能够更加专注于业务逻辑。在后面的开发过程中,我们能够逐渐感受到Spring Boot这些优秀特性给我们带来的好处。

第一个Spring Boot项目

接下来我们通过创建一个简单的Spring Boot项目来建立对初步的印象。一开始可能会遇到一些不太理解的地方,没关系,我们会在学习过程中我们会逐一搞定。

  • 我们通过Maven来创建项目,【File】->【New】->【Others...】;
  • 弹出的对话框中包含了一系列的项目类型,我们选择Maven Project

    一个技巧是可以在type filter text中输入Maven进行搜索过滤,这样很快可以找到Maven Project

  • 选中后出现了新的对话框,勾选Create a simple project (skip archetype selection),点击Next >后,按照下图输入内容:

  • 输入完成后点击Finish,第一个项目就创建成功了。

项目创建成功后,在Eclipse IDE左边的Project Explorer中会出现我们刚刚创建的项目,其中有一个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>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.2.3.RELEASE</version>
</parent>
<groupId>com.tianmaying</groupId>
<artifactId>website</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>tmy-website</name> <dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
</project>

编辑完成后保存(可以使用Ctrl+S快捷键)。

编写Web应用程序

然后我们在src/main/java目录下新建一个Java文件:

在这里我们需要填写Package, Name两个字段就可以了,然后编辑这个java文件:

package com.tianmaying.webdev;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; @SpringBootApplication
@Controller
public class Application { @RequestMapping("/")
@ResponseBody
public String index() {
return "Hello World!";
} public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}

运行Web应用程序

经过以上步骤,一个简单的Web应用就已经开发完成了。接下来我们要将它运行起来:

  • Project Explorer中找到Application.java
  • 右键弹出菜单Run as...,选中Java Application

接下来就能看到在IDE下方的Console视图中出现运行信息,当你看到Started Application in 2.214 seconds (JVM running for 2.466)信息后,说明应用服务器启动成功。

接下来打开浏览器,在地址栏中输入[http://localhost:8080](http://localhost:8080),如果能够看到Hello World!出现在浏览器中,那说明环境配置大功告成!

Spring Boot初探

Maven的POM文件之间可以有继承关系,下面这段代码就表示我们的POM文件继承自groupIdorg.springframework.bootartifactIdspring-boot-starter-parentversion1.2.3.RELEASE的POM文件。

    <parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.2.3.RELEASE</version>
</parent>

这个文件是Spring Boot提供给我们的,里面定义了一些属性,比如Java编译级别,UTF-8编码,以及测试框架和一些插件的配置。这里我们只管引入就好。注意这个Parent POM中定义的Java编译级别为1.6,如果需要改变为1.8,只需要重新定义<java.version>属性即可覆盖,类似于类的方法重载。

<properties>
<java.version>1.8</java.version>
</properties>

在Maven依赖中引入了spring-boot-starter-web,它包含了Spring Boot预定义的一些Web开发的常用依赖:

  • spring-web, spring-webmvc: Spring Web Mvc框架
  • tomcat-embed-*: 内嵌Tomcat容器
  • jackson :处理json数据
  • spring-* :Spring框架
  • spring-boot-autoconfigure: Spring Boot提供的自动配置功能

Java代码中没有任何配置,和传统的Spring应用相比,多了一个@SpringBootApplication,这是是Spring Boot提供的注解,这个注解会告诉Spring去扫描类路径,初始化Spring Context以及启动内嵌Tomcat容器等一系列操作。我们没有看到一行配置代码,也没有web.xml。基于Spring Boot的应用在大多数情况下都不需要我们去显式地声明各类配置,而是将最常用的默认配置作为约定,在不声明的情况下也能适应大多数的开发场景。

小节

即使我们还没有使用Spring的惊讶,从这个简单的Spring Boot项目我们也可以发现开发上相比传统的JSP和Servlet开发已经具有了一些特点,比如:

  • 不需要再专门配置Web服务器,Web服务器已经被内嵌在应用中了,应用开发环境的建立更加简单了,从现在开始让我们可以和之前安装和配置过的Tomcat说再见了。

  • Spring Boot提供的依赖,比如spring-boot-starter-web,能够帮助我们引入大部分Web开发中需要用到的依赖,极大的简化了我们自己配置依赖的工作。

我们已经了解了创建Spring Boot应用的基本步骤,接下来我们要做的第一步就是讲博客应用通过Spring Boot来重写。

参考

版权声明 本文由David创作,转载需署名作者且注明文章出处 参考代码 要获取本文的参考代码,请访问:https://www.tianmaying.com/tutorial/project-based-on-spring-boot/repo

[转]通过Spring Boot三分钟创建Spring Web项目的更多相关文章

  1. [转]Spring Boot——2分钟构建spring web mvc REST风格HelloWorld

    Spring Boot——2分钟构建spring web mvc REST风格HelloWorld http://projects.spring.io/spring-boot/ http://spri ...

  2. Spring Boot——2分钟构建spring web mvc REST风格HelloWorld

    之前有一篇<5分钟构建spring web mvc REST风格HelloWorld>介绍了普通方式开发spring web mvc web service.接下来看看使用spring b ...

  3. spring boot 之 如何创建spring boot项目

    创建spring boot的方式有非常多,今天我们使用maven来进行创建spring boot项目,因为maven使用的非常广泛,也很好用,很多IDE也都支持maven. 1 创建maven项目 1 ...

  4. Spring Boot 框架 - 快速创建Spring Boot应用

    使用Spring的项目创建向导创建一个Spring Boot项目 创建完成目录 目录文件说明: 主启动程序已生成 resources文件夹中目录结构 static:保存所有的静态资源,例如js,css ...

  5. Spring Boot -- Idea搭建下搭建web项目

    最近公司准备使用Spring Boot框架,让小瑾先来学习一下,为了表示小瑾的办事效率,小瑾直接先学习用Idea搭建一个Spring Boot项目,哈哈哈,坐等领导夸. 废话不多说了,先来总结一下用I ...

  6. 使用Spring Boot和Gradle创建AngularJS项目

    Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的 ...

  7. [转] 使用Spring Boot和Gradle创建项目

    Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的 ...

  8. Spring Boot(十四):spring boot整合shiro-登录认证和权限管理

    Spring Boot(十四):spring boot整合shiro-登录认证和权限管理 使用Spring Boot集成Apache Shiro.安全应该是互联网公司的一道生命线,几乎任何的公司都会涉 ...

  9. Spring Boot (五)Spring Data JPA 操作 MySQL 8

    一.Spring Data JPA 介绍 JPA(Java Persistence API)Java持久化API,是 Java 持久化的标准规范,Hibernate是持久化规范的技术实现,而Sprin ...

随机推荐

  1. unity制作背景

  2. struts2框架之请求参数(参考第二天学习笔记)

    获取请求参数 请求参数:表单中的数据,或者是超链接中的数据. 1. 得到request,再通过request来获取.2. 属性驱动 在Action中提供与表单字段名称相同的属性即可. 而一个名为par ...

  3. [SCOI2014]方伯伯的OJ

    看到这道题的第一想法就是要用FHQ treap 过了这道题...于是至今尚未成功(华丽的 T 掉了 (╯‵□′)╯︵┻━┻ ).于是附个地址. 然后水一波博客. 题意简介 emmmm...方伯伯脑抽做 ...

  4. Java文件复制

    主要是工作代码,无解释. /** * 将文件或文件夹source复制到dest * <br>目标文件检测: * <br> a.当文件不存在时:需要创建文件 * <br&g ...

  5. $Django cookies与session--解决无连接无状态问题, session配置

    session作用: 会话保持,记住用户的登录状态(WEB网站,分布式架构) 作用(和cookie的区别) 避免了敏感信息保存在客户端,防止客户端修改cookie信息! -cookie:存储在客户端浏 ...

  6. Linux查看所有用户和组信息

    主要通过以下两个命令: cat /etc/passwd cat /etc/group 步骤一:cat /etc/passwd查看所有的用户信息,详情如下图: 步骤2:cat /etc/passwd|g ...

  7. [转]golang中defer的使用规则

    转载于:https://studygolang.com/articles/10167 在golang当中,defer代码块会在函数调用链表中增加一个函数调用.这个函数调用不是普通的函数调用,而是会在函 ...

  8. win2008 C盘清理

    需要在Windows Server 2008上安装“桌面体验”才能使用磁盘清理工具,安装“桌面体验的”的具体步骤如下:   1. 打开“服务器管理器”——在“功能摘要”下,单击“添加功能”.   2. ...

  9. MQ选型之RabbitMQ

    RabbitMQ是部署最广泛的开源消息代理.[官方原话] 前言: MQ 是什么?队列是什么,MQ 我们可以理解为消息队列(message queue),队列我们可以理解为管道.以管道的方式做消息传递. ...

  10. winform的水印TextBox

    public partial class WaterTextBox : TextBox { private readonly Label lblwaterText = new Label(); pub ...