ramostear.comramostear.com 谭朝红的技术分享博客

格言 编程是一门技术,也是一门艺术 !

(第一讲)Spring Initializr-快速入门Spring Boot的最好选择

(第一讲)Spring Initializr-快速入门Spring Boot的最好选择

Spring Initializr [http://start.spring.io/]是引导你快速构建Spring Boot项目的不二选择。

它允许你通过简单的操作步骤,就可以构建出一个完整的Spring Boot应用程序。你可以通过Spring Initializr引导界面构建如下类型的Spring Boot应用:

  • Web应用程序

  • Restful 应用程序

  • Batch应用程序

Spring Boot对很多第三方框架提供了良好的支持,可以通过对应的artifactId获得他们,这里列举其中的一部分供参考:

  • spring-boot-starter-web-services:用于构建可与外界交互的SOAP Web服务应用程序
  • spring-boot-starter-web:可用于构建Web应用程序或者基于Restful风格的应用程序
  • spring-boot-starter-test:可用于构建并编写单元测试和集成测试
  • spring-boot-starter-jdbc:构建基于JDBC的应用程序
  • spring-boot-starter-hateoas:通过引入HATEOAS功能,让你轻松实现RESTful服务
  • spring-boot-starter-security:使用Spring Security对系统用户进行身份验证和鉴权
  • spring-boot-starter-data-jpa:基于Hibernate实现的Spring Data JPA
  • spring-boot-starter-cache:开启基于Spring Framework的缓存支持
  • spring-boot-starter-data-rest:使用Spring Data REST提供REST服务

在本讲中,我将通过使用Spring Initializr来演示如何快速创建一个简单的Web应用程序。

使用Spring Initializr构建Web应用程序

使用Spring Initializr构建Web应用程序是一件非常简单快速的事情。

如上图所示,我们需要执行如下的几个操作:

  • 通过浏览器访问Spring Initializr官网 ,然后再执行下面的几个选择项
    • 设置groupId : com.ramostear.spring.boot
    • 设置artifactId: spring-boot-quick-start
    • 项目名称:默认为spring-boot-quick-start
    • 基础包名:默认即可(你也可以选择修改)(通过点击More options展开)
    • 在搜索框中分别检索并选择如下几个组件:Web,Actuator,DevTools
  • 最后,点击“Generate Project”生成并下载项目
  • 将项目导入到IntelleJ IDEA中

Spring Boot项目目录结构

下图显示了在IDEA中导入刚才下载的项目目录结构:

  • SpringBootQuickStartApplication.java:Spring Boot运行的主文件,它负责初始化Spring Boot自动配置和Spring应用程序上下文
  • application.properties : 应用程序配置文件
  • SpringBootQuickStartApplicationTests : 用于单元测试的简单启动器
  • pom.xml : Maven构建项目的配置文件,包括了Spring Boot Starter Web等相关依赖项。特别指出,它会自动将Spring Boot Starter Parent作为整个工程的父依赖。

核心的代码

src/main/java 包下放置我们主要的逻辑代码,src/test/java包下放置项目的测试代码,src/main/resources包下放置项目的配置文件以及一些静态资源文件,如页html文件,css文件和js文件等。我们从上到下依次进行介绍。

SpringBootQuickStartApplication.java

package com.ramostear.spring.boot.springbootquickstart;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class SpringBootQuickStartApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringBootQuickStartApplication.class, args);
    }

}
  • @SpringBootApplication : 负责初始化Spring Boot 自动化配置项和Spring应用程序上下文
  • SpringApplication.run() : 负责启动Spring Boot应用程序的静态方法

application.properties

Spring Boot应用程序的配置文件,这里我们简单的设置一下项目启动的端口为8080(默认端口8080)和应用名称为Spring Boot Quick Start

server.port= 8080
spring.application.name= Spring Boot Quick Start

SpringBootQuickStartApplicationTests

package com.ramostear.spring.boot.springbootquickstart;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringBootQuickStartApplicationTests {

   @Test
   public void contextLoads() {
   }

}
  • 集成了对Spring Boot应用程序进行单元测试所需要的全部环境

运行应用程序

如上如所示,点击运行按钮一键运行Spring Boot应用程序,成功启动后你将看到控制台中输出的如下日志信息:

"C:\Program Files\Java\jdk1.8.0_144\bin\java" ...

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.1.4.RELEASE)

 ...
 2019-04-21 16:44:16.784  INFO 2320 --- [  restartedMain] o.s.b.a.e.web.EndpointLinksResolver      : Exposing 2 endpoint(s) beneath base path '/actuator'
2019-04-21 16:44:16.849  INFO 2320 --- [  restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2019-04-21 16:44:16.852  INFO 2320 --- [  restartedMain] .r.s.b.s.SpringBootQuickStartApplication : Started SpringBootQuickStartApplication in 3.526 seconds (JVM running for 5.448)

总结

现在,你已经掌握了如何通过Spring Initializr来快速构建Spring Boot Weby9应用程序,你可以在Github上获取本次内容的全部源码。

(转载本站文章请注明作者和出处:谭朝红-ramostear.com,未经允许请勿做任何商业用途)

发表评论