将Spring Boot启动程序项目用于启动程序项目是不好的做法吗?

时间:2019-08-29 05:27:15

标签: spring spring-boot spring-boot-starter

Spring Boot Starter项目提供了自动配置的广泛功能集。但是对于我们的应用程序,我们只希望功能的一部分。可能只是spring boot starter项目中的一项功能。因此,建议在Spring Boot的顶部提供自定义的启动程序项目,以提供启动程序项目来掩盖某些功能或直接从较低层的库中编写新的启动程序项目吗?

1 个答案:

答案 0 :(得分:0)

  

Spring Boot Starter项目提供了广泛的功能集   自动配置

您正在谈论两个独立的问题。

我认为自动配置的部分是Spring Boot认为的配置方式。例如,如果在类路径中找到内存数据库库(如H2),它将自动创建一个数据源(指向嵌入式内存数据库),该数据源可自动装配,而无需在Java配置中编写配置类。当然,您可以通过为该数据库包括适当的驱动程序jar来创建自己的数据源。类似地,默认情况下,通过类路径扫描和某些jar和类的可用性来完成许多其他配置。

第二部分-通常更多是依赖问题。假设您想在Spring Boot中使用Web MVC部分。这也将需要一组一致的依赖性和传递性依赖性。与其在选择的构建工具(maven,gradle等)中找到并声明依赖项,它创建了启动程序项目的概念,您只需提及父项,所有正确的依赖项都将被保留。这提供了一种正确锁定依赖项的好方法。但是,如果要包括与启动启动程序提供的版本不同的任何版本(如果这些不同版本不存在兼容性问题),则仍可以在构建工具中显式添加。例如,当maven解析工件的依赖关系时,默认情况下,它将通过传递依赖关系包括所有特定依赖关系的最高版本。