Spring Boot Initilizr Web界面

时间:2020-02-23 14:35:48  来源:igfitidea点击:

在本文中,我们将讨论Spring Boot Initilizr Web Interface及其IDE或者IDE插件。
在阅读文章之前,请仔细阅读我以前的Spring Boot文章。

什么是Spring Boot Initilizr

除了Spring Boot 4组件之外,Spring Boot Framework还具有另一个重要的关键组件:Spring Boot Initilizr。

Spring团队在" https://start.spring.io/"处提供了用于Spring Boot Initilizr的Web界面,可以非常轻松地使用Maven/Gradle构建工具快速启动Spring Boot应用程序的开发。

为什么我们需要Spring Boot Initilizr

Spring Boot Initilizr的主要目的是立即开始新项目的开发。
它提供了所有必需的项目结构和基本的构建脚本文件,以快速启动Spring Boot应用程序而不会浪费时间。
它减少了开发时间。

Spring Boot Initilizr具有以下形式

  • 具有Web界面的Spring Boot Initilizr
  • 具有IDE/IDE插件的Spring Boot Initilizr
  • 使用Spring Boot CLI的Spring Boot Initilizr
  • 具有第三方工具的Spring Boot Initilizr

我们现在将通过一些示例研究"带有Web界面的Spring Boot Initilizr",并将在我的后续文章中讨论其余三个选项。

Spring Boot Initilizr Web界面

Spring团队在" https://start.spring.io/"处提供了用于Spring Boot Initilizr的Web界面。
我们可以使用它为Maven/Gradle构建工具创建新项目的基础结构。
它不仅生成Project Base结构,还提供所有必需的Spring Boot Jar文件。

Spring Boot Initilizr Web界面如下所示:

注意:-结合以上两个图像以获得完整的Spring Boot Initilizr Web界面图片。
我无法创建一个图像。

现在,我们将开发两个示例,一个用于Maven,另一个用于Gradle构建工具。

Spring Boot Initilizr Web界面Maven示例

请按照以下步骤为Maven Build工具和Spring STS Suite IDE(或者任何类似Eclipse,IntelliJ IDEA等的IDE)创建新的Spring Boot WebApplication。

  • 请通过" https://start.spring.io/"访问Spring Boot Initilizr。

  • 提供我们的项目所需的详细信息,然后单击"生成项目"按钮

我已经提供了所有Maven项目所需的详细信息,并选择了所需的技术复选框,如图所示。

我选择了H2数据库,然后单击"生成项目"按钮

  • 当我们单击"生成项目"按钮时,它将创建一个Maven项目并将其作为" SpringMVCMavenProject.zip"文件下载到我们的本地文件系统中。

  • 将" SpringMVCMavenProject.zip"复制到我们的Spring STS Suite工作区并解压缩该zip文件

  • 将此" SpringMVCMavenProject" Maven项目导入到Spring STS IDE中

  • 这个" SpringMVCMavenProject" Maven项目结构看起来像

如果观察该项目文件,它将生成pom.xml文件,两个Spring Boot Java文件和一个JUnit Java文件。

" pom.xml"

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="https://maven.apache.org/POM/4.0.0" 
           xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="https://maven.apache.org/POM/4.0.0 
           https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<groupId>com.theitroad</groupId>
	<artifactId>SpringMVCMavenProject</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>war</packaging>

	<name>SpringMVCMavenProject</name>
	<description>Demo project for Spring Boot</description>

	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.2.5.RELEASE</version>
		<relativePath <!-- lookup parent from repository -->
	</parent>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<java.version>1.8</java.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-data-jpa</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-ws</artifactId>
		</dependency>
		
		<dependency>
			<groupId>com.h2database</groupId>
			<artifactId>h2</artifactId>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-tomcat</artifactId>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>	
	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>
</project>

注意:-我们将在我的后续文章中讨论有关此Java源代码和此代码的执行,并讨论" SpringApplication"类。

ServletInitializer.java

package SpringMVCMavenProject;

import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.web.SpringBootServletInitializer;

public class ServletInitializer extends SpringBootServletInitializer {

	@Override
	protected SpringApplicationBuilder 
                      configure(SpringApplicationBuilder application) {
		return application.sources(SpringMvcMavenProjectApplication.class);
	}

}

SpringMvcMavenProjectApplication.java

package SpringMVCMavenProject;

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

@SpringBootApplication
public class SpringMvcMavenProjectApplication {

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

SpringMvcMavenProjectApplicationTests.java

package SpringMVCMavenProject;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.web.WebAppConfiguration;
import org.springframework.boot.test.SpringApplicationConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration
            (classes=SpringMvcMavenProjectApplication.class)
@WebAppConfiguration
public class SpringMvcMavenProjectApplicationTests {

	@Test
	public void contextLoads() {
	}

}

Spring Boot Initilizr Web界面Gradle示例

与Maven示例类似,请按照以下步骤为Gradle Build工具和Spring STS Suite IDE创建新的Spring Boot WebApplication。

  • 请通过" https://start.spring.io/"访问Spring Boot Initilizr。

  • 提供我们的项目所需的详细信息,然后单击"生成项目"按钮

我已经提供了所有Gradle项目的必需详细信息,并选择了必需的技术复选框,如图所示。

注意:-这里与以前的Maven项目唯一的区别是将"类型"从" Maven项目"更改为" Gradle项目"。
这样,我们可以选择Java版本,语言(Java,Groovy),必需的项目技术等,并非常容易地创建新项目。

我选择了H2数据库,然后单击"生成项目"按钮

  • 当我们单击" Generate Project"按钮时,它将创建Gradle Project并将其作为" SpringMVCGradleProject.zip"文件下载到我们的本地文件系统中。

  • 将" SpringMVCGradleProject.zip"复制到我们的Spring STS Suite工作区并解压缩该zip文件

  • 将此" SpringMVCGradleProject" Gradle项目导入到Spring STS IDE中

  • 除了将pom.xml文件更改为build.gradle外,此" SpringMVCGradleProject" Gradle项目结构类似于所示的Maven项目。

如果您观察到此项目文件,它将生成build.gradle文件,两个Spring Boot Java文件和一个JUnit Java文件(这3个Java文件类似于Maven Project)。

生成" build.gradle"文件内容:

buildscript {
 ext {
   springBootVersion = '1.2.5.RELEASE'
 }
 repositories {
   mavenCentral()
 }
 dependencies {
   classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") 
   classpath("io.spring.gradle:dependency-management-plugin:0.5.2.RELEASE")
 }
}

apply plugin: 'java'
apply plugin: 'eclipse-wtp'
apply plugin: 'idea'
apply plugin: 'spring-boot' 
apply plugin: 'io.spring.dependency-management' 
apply plugin: 'war'

war {
  baseName = 'SpringMVCGradleProject'
  version = '0.0.1-SNAPSHOT'
}
sourceCompatibility = 1.8
targetCompatibility = 1.8

repositories {
  mavenCentral()
}

configurations {
  providedRuntime
}

dependencies {
  compile("org.springframework.boot:spring-boot-starter-data-jpa")
  compile("org.springframework.boot:spring-boot-starter-web")
  compile("org.springframework.boot:spring-boot-starter-ws")
  runtime("com.h2database:h2")
  providedRuntime("org.springframework.boot:spring-boot-starter-tomcat")
  testCompile("org.springframework.boot:spring-boot-starter-test") 
}

eclipse {
  classpath {
       containers.remove('org.eclipse.jdt.launching.JRE_CONTAINER')
       containers 'org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8'
  }
}

task wrapper(type: Wrapper) {
  gradleVersion = '2.3'
}