首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >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

复制
相关文章
Amazon对接选EDI还是API
亚马逊为供应商提供EDI与API方式来进行数据的对接,供应商可通过上述两种方式与亚马逊平台进行集成,从而实现点对点自动接收订单,回传发票、ASN。
知行软件EDI
2022/05/25
7290
Amazon对接选EDI还是API
8个woocommerce支付网关插件推荐
当然您以前听说过WooCommerce吗?这是用WordPress建立在线商店的最简单方法之一。WooCommerce允许网站所有者添加产品,数字商品,甚至订​​阅(取决于您已安装的WooCommerce扩展)。但是,对于WooCommerce包含的所有强大功能,仅内置了一些默认付款选项。幸运的是,您可以添加大量免费的高级WooCommerce付款网关插件,为客户提供新的结帐选项。
Hoan外贸建站
2020/12/03
6.9K0
Serverless 时代,这才是Web应用开发正确的打开方式 | Q推荐
如同 iPhone 当年颠覆了诺基亚,Serverless 的出现也带来了一种全新的、颠覆式的云开发架构模式。在 Serverless 出现前,开发者们根本无法想象几分钟就能快速部署一个 Web 应用上线。近日,亚马逊云科技 Tech Talk 特别邀请了资深无服务器技术专家孙华带来分享《 如何高效、极简构造无服务器 Web 应用》。孙华以 Amazon Lambda 的视角介绍了无服务器 Web 应用的构造方式,并讲述了如何利用最新发布的 Lambda Function URLs 和 Lambda Adapter 进一步简化无服务器 Web 应用的开发和调试并且实现 Web 应用在 Lambda,Fargate 和 EC2 等计算平台之间平滑迁移。
深度学习与Python
2022/06/13
3.6K0
Serverless 时代,这才是Web应用开发正确的打开方式 | Q推荐
Woocommerce Trends 2020
Top Woocommerce Trends To Follow In 2020. If you have an online store and missed out on the last annual Woosesh virtual conference held a few months ago, then you’re short of information in updating yourself with the latest trends of Woocommerce.
用户4822892
2019/12/10
6030
Woocommerce Trends 2020
说说 WooCommerce 插件
玩儿过WordPress的估计都听说过WooCommerce插件吧?明月其实很早的时候就接触和体验过WooCommerce插件了,严格意义上来说WooCommerce应该是WordPress平台下开源电子商务解决方案才比较确切些,也就是说WordPress+WooCommerce就是一套电子商务解决方案了,也就是我们俗称的“在线商城”。
明月登楼的博客
2021/04/30
1.9K0
说说 WooCommerce 插件
Amazon DynamoDB 工作原理、API和数据类型介绍
DynamoDB 是 AWS 独有的完全托管的 NoSQL Database。它的思想来源于 Amazon 2007 年发表的一篇论文:Dynamo: Amazon’s Highly Available Key-value Store。在这篇论文里,Amazon 介绍了如何使用 Commodity Hardware 来打造高可用、高弹性的数据存储。想要理解 DynamoDB,首先要理解 Consistent Hashing。Consistent Hashing 的原理如下图所示:
goodspeed
2020/12/25
6K0
如何与亚马逊Amazon供应商平台集成?——EDI or API
亚马逊Amazon供应商平台支持通过EDI和API两种方式进行集成,不禁开始思考到底该选择哪种方式来集成?
知行软件EDI
2021/12/13
1.3K0
如何与亚马逊Amazon供应商平台集成?——EDI or API
woocommerce如何隐藏SKU
  有时我们不想在woocommerce网站前台显示SKU,如下图所示,因为sku一多整个排版可能会乱,那么要如何隐藏sku呢?随ytkah一起来看看
ytkah
2019/12/20
2.2K0
woocommerce如何隐藏SKU
Amazon DynamoDB
DynamoDB 是Amazon最新发布的NoSQL产品,那什么是DynamoDB呢?
阳光岛主
2019/02/19
3.1K0
禁用woocommerce默认样式stylesheet
  用woocommerce建站有时我们不想要它的默认样式,那要如何屏蔽呢?当然ytkah是不会告诉你去注释删除css代码的,默认情况下WooCommerce会嵌入3个样式表,我们可以通过在当前主题的function.php文件中添加以下代码禁用它们,
ytkah
2020/02/13
1.6K0
南桥和北桥
现代 PC 机主板主要使用 2 个超大规模芯片构成的芯片组或芯片集(Chipsets)组成:北桥(Northbridge)芯片和南桥(Southbridge)芯片。北桥芯片用于与 CPU、内存和 AGP 视频接口,这些接口具有很高的传输速率。北桥芯片还起着存储器控制作用,因此Intel 把该芯片标号为 MCH(Memory Controller Hub)芯片。南桥芯片用来管理低、中速的组件,例如,PCI 总线、IDE 硬盘接口、USB 端口等,因此南桥芯片的名称为 ICH(I/O Controller Hub)。之所以用“南、北”桥来分别统称这两个芯片,是由于在 Intel 公司公布的典型 PC 机主板上,它们分别位于主版的下端和上端(即地图上的南部和北部)位置,并起着与 CPU 进行通道桥接的作用。 --by《Linux内核完全注释》
zy010101
2020/08/20
1.7K0
woocommerce模板制作简易教程
  woocommerce是wordpress里比较好用的电商解决方案,但是制作woocommerce模板相对比较复杂,如果想用woocommerce来建一个展示型的网站,不带下单功能,我们可以很快就能把模板设计出来,下面就跟着ytkah一起来学习吧
ytkah
2019/06/24
2.8K0
woocommerce shortcode短代码调用
WooCommerce配备了很多shortcode短代码(简码),可以直接在post帖子和page页面内插入内容,方便展示产品、分类等。比如直接在文章编辑时直接插入[products],或者在php文
ytkah
2023/03/14
11.4K0
woocommerce shortcode短代码调用
woocommerce如何隐藏/显示product meta
  前面我们说了woocommerce如何隐藏SKU,那如果不想显示产品分类category和标签tag呢?我们知道SKU, Category list 和 Tag list在woocommerce产品页中统称为产品product meta,下图红框所示。1、如果想全部隐藏这些meta很简单,在当前主题function.php文件中加入下面的代码即可
ytkah
2019/12/19
3.4K0
woocommerce根据标题获取相关产品
  我们知道woocommerce的相关文章是根据分类category或标签tag来获取的,能不能实现根据标题来调取相关产品呢?get_posts() 函数可以根据库存、价格、自定义项、搜索条件等不同的标准来显示不同的相关产品,如何操作呢?随ytkah一起来看看
ytkah
2019/12/19
1.6K0
Amazon Aurora 深度探索(三)
serena
2017/08/09
3K0
Amazon Aurora 深度探索(三)
WordPress插件WooCommerce任意文件删除漏洞分析
近期,研究人员在WordPress的权限处理机制中发现了一个安全漏洞,而这个漏洞将允许WordPress插件实现提权。其中一个典型例子就是WooCommerce,该插件是目前最热门的一款电子商务插件,并且拥有400万+的安装量。简而言之,这个漏洞将允许商铺管理员删除目标服务器上的特定文件,并接管管理员帐号。
FB客服
2018/12/24
1.7K0
WooCommerce Elementor Addons – 商品页面编辑器插件
TFProduct是用于Elementor Page Builder的WooCommerce插件,帮助您在页面构建器Elementor中显示WooCommerce产品。 它是最灵活的小部件,可让您以网格,轮播,分页方式显示WooCommerce产品,并加载更多布局。它可以显示编号显示产品,最新产品,特色产品,畅销产品,销售产品,最高评分产品,混合订单产品,类别产品。此外,我们还提供了完全免费的Elementor Themesflat附加组件,以及YouTube窗口小部件。您可以完全创建带有完整的页眉页脚滑块,图像框,轮播框和所有Elementor Free小部件的专业视频网站。
小狐狸说事
2022/12/30
2.2K0
WooCommerce Elementor Addons – 商品页面编辑器插件
Amazon Dynamo系统架构
本文参考了网上众多文章,把 Amazon Dynamo 架构汇总成文,为后续源码分析奠定基础。
罗西的思考
2021/02/04
1.5K0
点击加载更多

相似问题

鼠标拖动的OpenGL翻译点

13

C++ OpenGL用鼠标拖动多个对象

14

如何用OpenGL绘制鼠标拖动上的连续点

12

用OpenGL在拖动鼠标上绘制不连续线

11

用C++和OpenGL拖动三维对象

15
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文