如何在Spring Boot中配置主类

如何在Spring Boot中选择不同的主类运行

我们在使用SpringBoot时,都会在某个类的main方法中写下SpringApplication.run(Classname.class, args)从而引导spring应用程序作为独立的应用程序运行。它创建一个适当的应用上下文实例并加载beans。

默认情况下,如果没有明确指定主类,Spring将在编译时在类路径中搜索一个主类,如果找不到或找不到多个主类,将无法启动。

让我们看看如何在Spring Boot中配置一个主类。

<code> 1. `@SpringBootApplication` 2. `public class SpringBootMainClassApplication {` 3. `public static void main(String[] args) {` 4. `SpringApplication.run(SpringBootMainClassApplication.class, args);` 5. `}` 6. `}` /<code>

这是我们的应用程序的主要类,Spring Boot应用程序将在其中执行。现在让我们创建一个controller 来打开应用程序的主页。

<code> 1. `@Controller` 2. `public class HomeController {` 3. `@RequestMapping("/")` 4. `@ResponseBody` 5. `public String goToHomePage () {` 6. `return "

This is the Home page

";` 7. `}` 8. `}` /<code>

POM.xml文件我们省略不看,用缺省的即可。

现在,使用运行应用程序时mvn spring-boot:run 命令,Spring Boot应用程序将在端口8080中启动。

现在,让我们在应用程序中创建一个新的Spring Main类。创建这个类后,我们将有两个新的主类都拥有public static void main(String args[])方法:

正如我们从Java基础知识中所知道的,在一个Java应用程序中我们只能有一个主要的方法。当我们试图构建这个应用程序时,它会抛出如下异常:

我们如何解决这个问题?

当应用程序中声明了多个主类时,Spring Boot允许我们在配置中定义主类。当我们使用MAVEN构建时,我们必须为Spring Boot配置POM.xml来识别应用程序的主要类。

以下是POM.xml文件中需要的更改:


这样我们可以选择任何一个主类作为我们SpringBoot程序的启动主类。

使用命令行界面配置主类

我们还可以通过命令行界面指定一个主类。

Spring Boot的 org.springframework.boot.loader.PropertiesLauncher中 附带了一个JVM参数,允许我们指定运行的主类是哪一个:

结论

因此有多种方法可以指定Spring Boot应用程序的入口点,利用好了,可以在不同的环境下运行我们同一个SpringBoot程序的不同版本。


最后,给大家分享一份通往架构师的进阶宝典《Java核心知识点整理.pdf》,全文覆盖了JVM、锁、高并发、反射、Spring原理、微服务、Zookeeper、数据库、数据结构等等这些内容。

获取方式:后台私信回复【资料】即可获取资料免费领取方式!