具有IDE或者IDE插件的Spring Boot Initilizr

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

Spring Boot Initilizr用于快速启动新的Spring Boot Maven/Gradle项目。
它生成初始项目结构并构建脚本以减少开发时间。

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。
现在,我们将讨论"如何在IDE/IDE插件中使用Spring Boot Initilizr"。
几乎所有的Java IDE都提供Spring Boot插件。

我们将使用Spring STS Suite开发所有的Spring Boot程序。
默认情况下,Spring STS Suite附带有Spring Boot插件,无需安装/配置。

具有IDE/IDE插件的Spring Boot Initilizr

请按照以下步骤使用Spring STS Suite创建一个Spring MVC Maven项目(其他IDE几乎也是如此)。

  • 请从"文件>>新建"菜单中选择" Spring Stater项目"菜单选项,如下所示。

如果您不直接在"新建"菜单中对" Spring Stater Project"选项进行优化,则从" Spring"类别下的"文件>>新建>>其他"中选择此选项。

  • 我们将获得以下" New Spring Stater Project"向导,以提供与项目相关的信息
  • 请提供我们的Spring MVC Maven WebApplication项目详细信息,如下所示,然后单击"下一步"按钮

其中我们可以选择项目类型:Maven项目或者Gradle项目,语言:Java或者Groovy,Java版本,包装:Jar或者War等。

  • 选择我们与项目相关的技术堆栈,如下所示,然后单击"完成"按钮以创建我们的新Spring Boot项目。

其中我们可以选择Spring Boot Framework Version:1.2.5以及我们所有项目所需的技术堆栈。

  • 现在,Spring STS Suite将创建一个Maven项目,并将所有必需的Jar下载到我们的Maven本地存储库中。

  • 如果我们观察这个项目结构pom.xml和Java Source文件,它们都类似于我们使用"带有Web界面的Spring Boot Initilizr"创建的文件。

注意:-以相同的方式,我们可以创建JAR,Gradle项目,Spring Web Services,Spring REST API,Spring Cloud等。

执行Spring Boot应用程序

我们已经使用Spring STS IDE创建了Spring Boot WebApplication。
现在该运行该应用程序并观察结果了。

  • 鼠标右键单击" SpringMvcMavenIdeProjectApplication.java"文件,然后从"运行方式"菜单中选择" Spring Boot应用程序"选项以将该程序作为Spring Boot应用程序运行,如下所示

注意:-为什么我们需要运行" SpringMvcMavenIdeProjectApplication.java"程序?因为" SpringMvcMavenIdeProjectApplication.java"程序具有Java的main()方法。
我们将很快看到" SpringApplication.run()"方法的重要性。

  • 当我们执行" SpringMvcMavenIdeProjectApplication.java"程序时,Spring Boot自动执行以下操作:
  • 创建一个Spring MVC应用程序
  • 使用默认端口号8080启动嵌入式Tomcat服务器
  • 将我们的Spring MVC应用程序部署到Tomcat Sever中
  • 使用" https://localhost:8080/SpringMVCMavenIDEProject"或者" https://localhost:8080/*"访问我们的Spring MVC应用程序,并观察结果

此处*表示任何URI或者上下文路径

由于我们不提供任何映射或者视图页面(例如:-JSP),因此我们看到了默认错误页面。

注意:

  • 使用这个基本的Spring Boot WebApplication项目并根据您的项目需求对其进行增强。

  • 我们还可以使用Spring STE IDE生成的" SpringMvcMavenIdeProjectApplicationTests.java"类来执行和测试我们的Spring Boot应用程序

  • 鼠标右键单击" SpringMvcMavenIdeProjectApplicationTests.java"类,然后选择"运行方式>> JUnit测试"选项。

" SpringApplication"类的内部和重要性

现在,我们将讨论什么是SpringApplication?为什么我们需要这个? SpringApplication的重要性? SpringApplication的内部?

  • " SpringApplication"是Spring Boot API类之一。

  • SpringApplication类用于引导将从" main()"方法启动的Spring应用程序

示例:-Spring STS IDE生成的类:" SpringMvcMavenIdeProjectApplication"

package com.theitroad.springboot.sample;

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

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

我们正在从SpringMvcMavenIdeProjectApplication类的main()方法调用SpringApplication.run()。

  • SpringMvcMavenIdeProjectApplication类使用@SpringBootApplication注释进行注释

@SpringBootApplication = @配置+ @EnableAutoConfiguration + @ComponentScan

@SpringBootApplication执行以下操作:

  • 由于有@Configuration批注,因此它将扫描@Bean方法以创建bean。

  • 由于使用@ComponentScan批注,因此它可以进行组件扫描(Components意味着使用@ Component,@ Service,@ Repository,@ Controller等进行批注的Bean)。

  • 由于@EnableAutoConfiguration注释,它将触发Spring Boot自动配置。

  • 默认情况下,SpringApplication类创建" AnnotationConfigEmbeddedWebApplicationContext"实例

  • " AnnotationConfigEmbeddedWebApplicationContext"实例在我们的项目类路径中搜索JAR文件。
    基于在Classpath上找到的JAR,它创建" EmbeddedServletContainerFactory"接口的已实现类之一的实例。

示例:默认情况下,Spring STS IDE将所有必需的Tomcat容器JAR添加到我们新创建的Spring Boot Project Classpath中。
这就是为什么" AnnotationConfigEmbeddedWebApplicationContext"实例创建" TomcatEmbeddedServletContainerFactory"类的实例的原因。

  • " EmbeddedServletContainerFactory"(" JettyEmbeddedServletContainerFactory"或者" TomcatEmbeddedServletContainerFactory")用于创建" EmbeddedServletContainer"实现的实例。

示例:默认情况下,Spring STS IDE创建一个" TomcatEmbeddedServletContainerFactory"类的实例。
该工厂用于创建" TomcatEmbeddedServletContainer"类的实例。

  • 当我们运行SpringMvcMavenIdeProjectApplication类main()方法时,它将调用" SpringApplication.run()"方法。

Spring STS IDE中的" SpringApplication.run()"方法

  • 该调用用于创建" AnnotationConfigEmbeddedWebApplicationContext"。

  • 此" AnnotationConfigEmbeddedWebApplicationContext"实例用于创建" TomcatEmbeddedServletContainerFactory"类的实例。

  • 此" TomcatEmbeddedServletContainerFactory"用于创建" TomcatEmbeddedServletContainer"类的实例。

  • " TomcatEmbeddedServletContainer"实例在默认端口号8080上启动Tomcat容器,并部署我们的Spring Boot WebApplication。