Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >spring-boot-starter-parent在pom文件中到底做了什么?

spring-boot-starter-parent在pom文件中到底做了什么?
EN

Stack Overflow用户
提问于 2017-04-09 09:12:39
回答 3查看 16.6K关注 0票数 16

我正在开发一个项目,它不是Spring boot,而是spring mvc。我的意思是,我的项目中没有这个类:

代码语言:javascript
运行
AI代码解释
复制
@SpringBootApplication
public class Application extends SpringBootServletInitializer {

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

spring mvc的配置文件有以下三个类:

代码语言:javascript
运行
AI代码解释
复制
@Import(WebSocketConfig.class)
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "......")

public class MainConfiguration extends WebMvcConfigurerAdapter {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/Content/**")
                .addResourceLocations("/Content/");
        registry.addResourceHandler("/Scripts/**")
                .addResourceLocations("/Scripts/");


    }

    @Bean
    public InternalResourceViewResolver viewResolver() {
        InternalResourceViewResolver viewResolver
                = new InternalResourceViewResolver();
        viewResolver.setPrefix("/");
        viewResolver.setSuffix(".jsp");
        return viewResolver;
    }

}

第二:

代码语言:javascript
运行
AI代码解释
复制
public class MainInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
    public static HashMap<String, String> response_code = new HashMap<String, String>();


    @Override
    protected Class<?>[] getRootConfigClasses() {
        return new Class[] { MainConfiguration.class,
        WebSocketConfig.class};
    }

    @Override
    protected Class<?>[] getServletConfigClasses() {
        return null;
    }

    @Override
    protected String[] getServletMappings() {
        return new String[] { "/" };
    }

    @Override
    public void onStartup(ServletContext servletContext) throws ServletException {
        super.onStartup(servletContext);
        Security.addProvider(new BouncyCastleProvider());
        servletContext.addListener(new MainContextListener());
        System.out.println("MainInitializer.onStartup()");
}}

第三,

代码语言:javascript
运行
AI代码解释
复制
public class MainContextListener implements ServletContextListener {

    public void contextInitialized(ServletContextEvent servletContextEvent) {
        System.out.println("Context Initialized");
        Security.addProvider(new BouncyCastleProvider());
    }

    public void contextDestroyed(ServletContextEvent servletContextEvent) {
        System.out.println("Shutting down!");
    }
}

为什么连我的项目都不是spring boot项目,需要spring boot starter家长?我认为下面的代码与spring boot相关,因为我的项目不是spring boot,而是spring mvc,所以不需要它。但如果不在pom中添加以下代码,则会出现问题:

代码语言:javascript
运行
AI代码解释
复制
<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.1.RELEASE</version>
    </parent>
EN

回答 3

Stack Overflow用户

发布于 2018-06-01 05:38:56

Spring Boot提供了许多“启动器”,允许您将jars添加到类路径中。对于ex。spring-boot- starter -security,spring-boot-starter-web等。"spring-boot-starter-parent“是一个特殊的启动器,它提供了有用的Maven默认值,即它自动添加所有必需的jars和其他东西。它还提供了一个依赖项管理部分,以便您可以省略在pom.xml中使用的依赖项的版本标记。对于ex。假设你想创建带有spring boot的web应用程序,所以你需要添加以下内容。

代码语言:javascript
运行
AI代码解释
复制
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>

现在请注意这里省略了标记。所以最终"spring-boot-starter-parent“默认添加了这么多东西,所以我们不需要担心这些东西。

票数 6
EN

Stack Overflow用户

发布于 2017-04-10 08:05:18

它为CHILD POMs提供了通用配置的位置。

DependenciesProperties

对于e.g.,此处是父POM configuration 1.4.2.RELEASE spring-boot-dependencies,它是spring-boot-starter-parent的父项

代码语言:javascript
运行
AI代码解释
复制
<properties>
    <activemq.version>5.13.4</activemq.version>
    <antlr2.version>2.7.7</antlr2.version>
    <appengine.version>1.9.44</appengine.version>
    <artemis.version>1.3.0</artemis.version>
    <aspectj.version>1.8.9</aspectj.version>
    <assertj.version>2.5.0</assertj.version>
    <atomikos.version>3.9.3</atomikos.version>
    <bitronix.version>2.1.4</bitronix.version>
    <caffeine.version>2.3.4</caffeine.version>

child POM的通用属性

代码语言:javascript
运行
AI代码解释
复制
<dependencyManagement>
    <dependencies>
        <!-- Spring Boot -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot</artifactId>
            <version>1.4.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot</artifactId>
            <type>test-jar</type>
            <version>1.4.2.RELEASE</version>
        </dependency>
        <dependency>

儿童的常见依赖项

票数 3
EN

Stack Overflow用户

发布于 2017-12-26 10:44:17

如果你能提供更多的信息,比如你的pom完整性,我们可以进一步了解和帮助你。

另一方面,父pom spring-boot-starter-parent包含完整的依赖项(mvc、缓存、jpa)和commons属性,以保持依赖项版本的良好一致性,以便在项目或/和子模块中使用。

基本上,您可以根据需要在pom.xml中添加一些启动器(web、jpa、batch……)对于您的示例,您可以只将starter mvc添加到您的pom.xml中,而无需添加其他依赖项,因此您的pom.xml可以如下所示:

代码语言:javascript
运行
AI代码解释
复制
 <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.9.RELEASE</version>
</parent>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

<properties>
    <java.version>1.8</java.version>
</properties>


<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43305016

复制
相关文章
Python的绝对导入和相对导入
Python 相对导入与绝对导入,这两个概念是相对于包内导入而言的。包内导入即是包内的模块导入包内部的模块。
狼啸风云
2019/11/27
4.6K0
Image无法使用相对路径导入
不能是使用相对路径的原因在于,图片资源未导入dotnet程序,所以在程序外部,通过绝对路径的方式查找加载。
sofu456
2019/07/09
1.9K0
Image无法使用相对路径导入
Python相对、绝对导入浅析
这篇文章从另外一个不同的视角来分析一下Python的import机制,主要的目的是为了搞懂import中absolute、relative import遇到的几个报错。  这里不同的视角是指从Python import hooks这个方面来展开,当然本身关于Python import hooks有很多的文章,我这里不打算展开聊这个方面的内容,文章中主要会结合代码和PEP 302 – New Import Hooks这个PEP。  1. 几个跟import相关模块属性 首先我们需要了解几个跟import相关
庞小明
2018/03/09
1.2K0
【说站】python文件导入相对路径
python文件导入相对路径 说明 1、一个简单的文件名,比如memo.txt,也被视为路径,是相对路径。 2、因为是相对于当前目录的。相对路径是从当前目录开始的。 实例 >>> import os >>> os.getcwd()  # getcwd() 返回当前工作目录 'D:\\Python36' >>> os.chdir('C:\\Windows\\System32')  # chdir() 切换当前目录 >>> os.getcwd() 'C:\\Windows\\System32' >>> im
很酷的站长
2022/11/24
6570
【说站】python文件导入相对路径
web路径问题相对路径和绝对路径,计算机相对路径和绝对路径
**首先得明白相对路径和绝对路径的概念和区别:** **相对路径:** 相对路径就是指由这个文件所在的路径引起的跟其它文件(或文件夹)的路径关系。使用相对路径可以为我们带来非常多的便利。 **绝对路径:** 绝对路径是指目录下的绝对位置,直接到达目标位置,通常是从盘符开始的路径。
用户1289394
2021/10/26
2.4K0
[小知识点]绝对路径与相对路径.
1, 绝对路径与相对路径: 1.1 路径分为两种 第一种:绝对路径 (1)文件的完全路径, 比如:file:///C:/Users/asus/Desktop/1018/day01/code/图像标签.html 第二种:相对路径(*****) (1)一个文件相对于另外一个文件的位置 第一种情况:图片和html文件在一个文件夹下面 (1)在html中直接写图片的名称 第二种情况:图片在html的下层目录 (1)把html的完全路径和图片的完全路径写出来 html: C:\Users\
一枝花算不算浪漫
2018/05/18
2K0
(Java)路径问题(绝对路径、相对路径)
·以 “/” 开头的路径都是 绝对路径,不以当前文件的位置作为起始,而是以一个固定位置作为起始到达目标文件所经过的路径。
qubianzhong
2018/09/19
5.5K0
相对路径和绝对路径
根目录下有demo1和images/1.jpg,demo1下有index1.html文件和demo1.1文件夹。demo1.1下有index2.html和2.jpg图片文件。
狼啸风云
2019/10/26
5.2K0
相对路径与绝对路径
🎏顾名思义:相对路径是更侧重对于文件与文件之间的联系,就像是以当前文件路径,然后去找其他文件的位置,而绝对路径而是一个完整的路径。 🎏抽象:就是说相对路径,比如你要到终点,那么你在起点到达中点,中点对于终点就是相对路径,起点到重点就是绝对路径。 举个例子: 相对路径: 🎏"." :目前所在的目录,相对路径。 如:超链接<a href="./">文本</a> 🎏".." :上一层目录,相对路径。 如:<a href="../">文本</a> 🎏"../../" : 代表的是上一层目录的上一层目录,
计算机魔术师
2022/08/19
1.6K0
相对路径与绝对路径
关于"绝对路径"和"相对路径"
作为一个phper,一开始学习的时候,可能都接触过绝对路径和相对路径,但是也可能很多没学基础的人,直接撸tp去了,根本不了解路径,一遇到问题就两眼一抹黑瞎几把问,所以,今天就来讲讲关于路径的事吧.
仙士可
2019/12/18
3K0
Linux绝对路径和相对路径
只要我们告诉 Linux 系统某个文件存放的准确位置,那么它就可以找到这个文件。指明一个文件存放的位置,有 2 种方法,分别是使用绝对路径和相对路径。
芯动大师
2023/10/25
5830
Linux绝对路径和相对路径
绝对路径和相对路径(转)
1、相对路径-顾名思义,相对路径就是相对于当前文件的路径。网页中一般表示路径使用这个方法。
山河木马
2019/03/05
2.5K0
2.6 相对和绝对路径
每一个文件都会有一个从根开始的文件 所有的文件都有一个自己的路径 从根开始的都是绝对路径,不管你是在哪个目录下,都可以通过路径找到文件的路径为绝对路径 不是由根开头,相对于你所在位置的路径,叫相对路径,就相对于当前目录来说的 [root@aminglinux-01 ~]# pwd 查看当前路径 /root [root@aminglinux-01 ~]# ls .ssh/authorized_keys 这就是相对路径,相对于root .ssh/authorized_keys [root@aminglinux
运维小白
2018/02/06
1.5K0
相对路径和绝对路径的区别
在HTML里只要涉及文件的地方(如超级链接、图片等)就会涉及绝对路径与相对路径的概念。  1.绝对路径     绝对路径是指文件在硬盘上真正存在的路径。例如“bg.jpg”这个图片是存放在硬盘的“E:\book\网页布局代码\第2章”目录下,那么 “bg.jpg”这个图片的绝对路径就是“E:\book\网页布\代码\第2章\bg.jpg"。那么如果要使用绝对路径指定网页的背景图片就应该使用 以下语句: <body backround="E:\book\网页布局\代码\第2章\bg.jpg" >    2.使
猿人谷
2018/01/17
2.7K0
文件的相对路径和绝对路径以及根相对路径
  如果当前文档和目标文档所在的文件夹位置平行,则书写为:文件夹名称/目标文档全称;
阿豪聊干货
2018/08/09
2.9K0
【Python】对绝对导入与相对导入的理解的补充
在前一篇文章对相对导入的“相对”其实已经讲得比较清楚了,关键的一点是,“相对”是相对package的意思。相对导入的常用语法:
明月AI
2021/10/28
1.3K0
【Python】对绝对导入与相对导入的理解的补充
Python绝对路径和相对路径详解
每个运行在计算机上的程序,都有一个“当前工作目录”(或 cwd)。所有没有从根文件夹开始的文件名或路径,都假定在当前工作目录下。
用户8442333
2021/11/30
3.4K0
python3绝对路径,相对路径
from __future__ import absolute_import的作用: 
py3study
2020/01/19
9950
相对路径和绝对路径的区别
绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如: C:\xyz\test.txt 代表了test.txt文件的绝对路径。http://www.sun.com/index.htm也代表了一个 URL绝对路径。 相对路径:相对与某个基准目录的路径。包含Web的相对路径(HTML中的相对目录),例如:在 Servlet中,"/"代表Web应用的根目录。和物理路径的相对表示,例如:"./" 代表当前目录, "../"代表上级目录。这种类似的表示,也是属于相对路径。
狼啸风云
2020/07/06
6.5K0
点击加载更多

相似问题

如何使用iText将转换为pdf?

23

使用iText库将pdf转换为pdf/a

12

如何使用itext自由化将pdf转换为文本文件

10

在Android中使用iText将文本转换为PDF

20

使用itext库将图像转换为pdf文件

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档