天道酬勤,学无止境

Spring Boot: Use different Tomcat Version

In Spring Boot Documentation there is a section Use Tomcat 7.x or 8.0 with Gradle This works great with Maven as shown in some spring-boot-samples, but unfortunately not for Gradle.

Is there a easier solution than excluding all tomcat dependencies form tomcat-starter and add them separately with another version?

To Reproduce: If you convert the sample project spring-boot-sample-tomcat80-ssl into a Gradle project with following dependencies:

dependencies {
    compile("org.springframework.boot:spring-boot-starter:1.4.2.RELEASE")
    compile("org.springframework.boot:spring-boot-starter-tomcat:1.4.2.RELEASE")
    compile("org.springframework:spring-webmvc:4.3.4.RELEASE")
    compile("org.apache.httpcomponents:httpclient:4.5.2")
    compile("org.apache.tomcat:tomcat-juli:8.0.36")
    compile("org.yaml:snakeyaml:1.17")
    testCompile 'org.springframework.boot:spring-boot-starter-test:1.4.2.RELEASE'
}

The output from gradlew dependencies looks like this:

compile - Dependencies for source set 'main'.
+--- org.springframework.boot:spring-boot-starter:1.4.2.RELEASE
|    +--- org.springframework.boot:spring-boot:1.4.2.RELEASE
|    |    +--- org.springframework:spring-core:4.3.4.RELEASE
|    |    |    \--- commons-logging:commons-logging:1.2
|    |    \--- org.springframework:spring-context:4.3.4.RELEASE
|    |         +--- org.springframework:spring-aop:4.3.4.RELEASE
|    |         |    +--- org.springframework:spring-beans:4.3.4.RELEASE
|    |         |    |    \--- org.springframework:spring-core:4.3.4.RELEASE (*)
|    |         |    \--- org.springframework:spring-core:4.3.4.RELEASE (*)
|    |         +--- org.springframework:spring-beans:4.3.4.RELEASE (*)
|    |         +--- org.springframework:spring-core:4.3.4.RELEASE (*)
|    |         \--- org.springframework:spring-expression:4.3.4.RELEASE
|    |              \--- org.springframework:spring-core:4.3.4.RELEASE (*)
|    +--- org.springframework.boot:spring-boot-autoconfigure:1.4.2.RELEASE
|    |    \--- org.springframework.boot:spring-boot:1.4.2.RELEASE (*)
|    +--- org.springframework.boot:spring-boot-starter-logging:1.4.2.RELEASE
|    |    +--- ch.qos.logback:logback-classic:1.1.7
|    |    |    +--- ch.qos.logback:logback-core:1.1.7
|    |    |    \--- org.slf4j:slf4j-api:1.7.20 -> 1.7.21
|    |    +--- org.slf4j:jcl-over-slf4j:1.7.21
|    |    |    \--- org.slf4j:slf4j-api:1.7.21
|    |    +--- org.slf4j:jul-to-slf4j:1.7.21
|    |    |    \--- org.slf4j:slf4j-api:1.7.21
|    |    \--- org.slf4j:log4j-over-slf4j:1.7.21
|    |         \--- org.slf4j:slf4j-api:1.7.21
|    +--- org.springframework:spring-core:4.3.4.RELEASE (*)
|    \--- org.yaml:snakeyaml:1.17
+--- org.springframework.boot:spring-boot-starter-tomcat:1.4.2.RELEASE
|    +--- org.apache.tomcat.embed:tomcat-embed-core:8.5.6
|    +--- org.apache.tomcat.embed:tomcat-embed-el:8.5.6
|    \--- org.apache.tomcat.embed:tomcat-embed-websocket:8.5.6
|         \--- org.apache.tomcat.embed:tomcat-embed-core:8.5.6
+--- org.springframework:spring-webmvc:4.3.4.RELEASE
|    +--- org.springframework:spring-aop:4.3.4.RELEASE (*)
|    +--- org.springframework:spring-beans:4.3.4.RELEASE (*)
|    +--- org.springframework:spring-context:4.3.4.RELEASE (*)
|    +--- org.springframework:spring-core:4.3.4.RELEASE (*)
|    +--- org.springframework:spring-expression:4.3.4.RELEASE (*)
|    \--- org.springframework:spring-web:4.3.4.RELEASE
|         +--- org.springframework:spring-aop:4.3.4.RELEASE (*)
|         +--- org.springframework:spring-beans:4.3.4.RELEASE (*)
|         +--- org.springframework:spring-context:4.3.4.RELEASE (*)
|         \--- org.springframework:spring-core:4.3.4.RELEASE (*)
+--- org.apache.httpcomponents:httpclient:4.5.2
|    +--- org.apache.httpcomponents:httpcore:4.4.4
|    +--- commons-logging:commons-logging:1.2
|    \--- commons-codec:commons-codec:1.9
+--- org.apache.tomcat:tomcat-juli:8.0.36
\--- org.yaml:snakeyaml:1.17

Executing the SampleTomcatSslApplicationTests you can see the wrong Tomcat Version in Logs:

2016-12-21 10:20:36.713  INFO 11368 --- [           main] o.apache.catalina.core.StandardService   : Starting service Tomcat
2016-12-21 10:20:36.714  INFO 11368 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/8.5.6

SOLUTION

  • use spring boot gradle plugin -> here comes the magic
  • set ext['tomcat.version'] = '8.0.36' in build script

评论

I already replied you on the issue you've created. After you've told us our documentation was wrong, I took the time to build a sample that does exactly what is referenced in the doc.

If that does not work for you, you'll have to be more specific and explain what is wrong in the documentation.

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • Spring Boot —— 数据源
    Spring Boot —— 数据源 背景 从jdbc到spring-boot-starter-jdbc jdbc 是一种用于执行SQL语句的API,可以为多种关系数据库提供统一访问,它是由一组用Java语言编写的类和接口。是Java访问数据库的标准规范。 严格来说,JDBC是Java提供的一种标准规范,具体的实现由各个数据库厂商去实现。对开发者来说屏蔽了不同数据库之间的区别,可以使用相同的方式(Java API)去操作不同的数据库。两个设备之间要进行通信需要驱动,不同数据库厂商对JDBC的实现类就是去连接数据库的驱动。如mysql-connector-java连接mysql数据库的驱动,ojdbc6连接Oracle数据库的驱动。 数据库连接池 在使用JDBC进行数据库操作过程中,每次使用都要创建连接,同时使用完毕还必须得关闭连接,解决这个问题的方法就是连接池。连接池就是事先取得一定数量的Connection,程序执行处理的时候不是新建Connection,而是取得预先准备好的Connection。 DataSource 提供连接池机能的技术叫做DataSource。DataSource是JDK提供一个标准接口在javax.sql.DataSource包下。常见的DBCP、C3P0、druid等。 springboot内部默认使用的dataSource是com.zaxxer
  • Spring Boot打包成jar与war的区别
    Spring Boot 中jar包和war包 博客大全集合 普通Jar包和war包之间的区别 jar包: 直接通过内置tomcat运行,不需要额外安装tomcat。如需修改内置tomcat的配置,只需要在spring boot的配置文件中配置。内置tomcat没有自己的日志输出,全靠jar包应用输出日志。但是比较方便,快速,比较简单。 war包: 传统的应用交付方式,需要安装tomcat,然后放到waeapps目录下运行war包,可以灵活选择tomcat版本,可以直接修改tomcat的配置,有自己的tomcat日志输出,可以灵活配置安全策略。相对打成jar包来说没那么快速方便。 小结 我个人比较偏向打成jar包的方式发布应用,因为spring boot已经内置了tomcat,无需额外配置。其实可以搜索下spring boot的特点,有个非常重要的特性就是spring boot把市面优秀的开源技术,都集合起来,方便快速应用。技术没有百分百这种好,也没有百分百那种不好,存在即合理,最主要还是看个人习惯和业务场景需求了。暂时了解到两种打包方式的区别作用只有这些,欢迎指正补充。 SpringBoot项目打包(jar和war) 一、修改pom.xml文件 需要修改的地方有: 1、打包方式,jar或者war 2、忽略内嵌tomcat 3、引入tomcat依赖 4、定义打包后的项目名 5
  • Java笔试面试-SpringBoot核心
    Spring Boot   Spring Boot 来自于 Spring 大家族,是 Spring 官方团队(Pivotal 团队)提供的全新框架,它的诞生解决了 Spring 框架使用较为繁琐的问题。Spring Boot 的核心思想是约定优于配置,让开发人员不需要配置任何 XML 文件,就可以像 Maven 整合 Jar 包一样,整合并使用所有框架。 Spring Boot 特性 秒级构建一个项目;便捷的对外输出格式,如 REST API、WebSocket、Web 等;简洁的安全集成策略;内嵌容器运行,如 Tomcat、Jetty;强大的开发包,支持热启动;自动管理依赖;自带应用监控。 Spring Boot 2 对系统环境的要求 Java 8+Gradle 4+ or Maven 3.2+Tomcat 8+ Spring Boot 使用 在开始之前,我们先来创建一个Spring Boot 项目。Spring Boot 有两种快速创建的方式:Spring 官网在线网站创建和 IntelliJ IDEA 的 Spring Initializr 创建,下面分别来看。 创建 Spring Boot 项目 1.在线网站创建 在浏览器输入 https://start.spring.io,页面打开如下图所示: 填写相应的项目信息,选择对应的 Spring Boot 和 Java 版本点击
  • Spring Boot Tomcat访问日志(Spring boot tomcat access logs)
    问题 我根据Spring Boot参考文档启用了tomcat访问日志。 但是它不能正常工作。 启用它后,便创建了访问日志文件,并且可以看到当天记录在其中的请求。 但是在第二天开始时,我看不到任何新文件。 它从21小时开始记录。 第三天,它从02小时开始记录。 从第4天开始,没有创建访问日志。 这是我使用的属性。 server.tomcat.access-log-enabled=true server.tomcat.access-log-pattern=%h %l %u %t "%r" %s %b %D server.tomcat.basedir=/var/lib/org_name/tracking_server 在tracking_server文件夹日志下创建了工作文件夹。 如果我缺少什么,请告诉我。 根据logback.xml中指定的配置,常规日志记录可以正常运行 感谢您的帮助。 回答1 该配置在Spring Boot版本1.2.3RELEASE中对我有效。 但是,如果您使用的是当前版本的spring boot,则这些参数略有不同,请在此处参考: server.tomcat.accesslog.directory=logs # Directory in which log files are created. Can be relative to the tomcat base
  • Spring Boot面试的终极指南
    在本文中,我们探讨了针对经验丰富或新手的Spring Boot面试问答。我们正在尝试分享经验和知识,以帮助您提升作为Spring Boot Developer的职业。 问:什么是Spring Boot?问:Spring Boot的优点/好处是什么?问:Spring Boot的功能是什么?问:如何使用Spring Initializr创建Spring Boot应用程序?问:什么是Spring Boot依赖管理?问:什么是Spring Boot Starters?问:Spring和Spring Boot有什么区别?问:为什么将Spring Boot用于微服务?问:Tomcat如何在Spring Boot中嵌入工作?问:Spring Boot是否使用Spring MVC?问:Spring MVC(@Controller和Spring RESTful(@RestController)Web服务)之间有什么区别?问:Spring中的@autowire是什么?问:Spring Boot中的@ResponseBody是什么?问:Spring Boot中的@RequestMapping是什么?问:Spring的@qualifier是什么?问:什么是Spring Profiles?如何使用Spring Boot实施它? 问:什么是Spring Boot? 答: Spring
  • Spring Boot War部署到Tomcat(Spring Boot War deployed to Tomcat)
    问题 我想将Spring Boot应用程序部署到Tomcat,因为我想部署到AWS。 我创建了一个WAR文件,但是即使它可见,它似乎也不能在Tomcat上运行。 细节: 0.这是我的应用程序: @Configuration @ComponentScan @EnableAutoConfiguration public class App { public static void main(String[] args) { SpringApplication.run(SampleController.class, args); } } @Controller @EnableAutoConfiguration public class SampleController { @RequestMapping("/help") @ResponseBody String home() { String input = "Hi! Please use 'tag','check' and 'close' resources."; return input; } } application.properties具有以下内容: server.port=${port:7777} 阅读了许多页面和问题后,我在POM中添加了以下内容: http://maven.apache.org/xsd/maven-4.0
  • SpringBoot:SpringBoot2.0中数据库数据源及连接池的配置方式
    目录 一、数据源配置方式 1、选择数据库驱动的库文件 2、配置数据库连接 二、连接池配置方式 1、选择数据库连接池的库文件 2、配置数据库连接池属性 一、数据源配置方式 1、选择数据库驱动的库文件 在maven中配置数据库驱动 <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.17</version> </dependency> 2、配置数据库连接 在application.properties中配置数据库连接 # datasource spring.datasource.url=jdbc:mysql://127.0.0.1:3306/testdb?useUnicode=true&characterEncoding=UTF-8&useSSL=false spring.datasource.username=testuser spring.datasource.password=12345678 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver 二、连接池配置方式 1、选择数据库连接池的库文件 SpringBoot提供了三种数据库连接池: HikariCPCommons
  • Spring Boot面试题(2021最新版)
    前言 在微服务理念席卷程序界的今天,作为最主流语言 Java 的一名 Coder,如何能正确的、系统的、快速的掌握 Spring Boot是至关重要的。接下来,让我们一起走进 Spring Boot的世界,一起感受 Spring Boot 的魅力。我坚信,机会永远属于有准备的人,我们与其羡慕他人的成功,不如从此刻起,积累足够多的知识和面试经验,为将来进入更好的公司做好充分的准备! 想让面试官在短短的几十分钟内认可你的能力?想在最短的时间内收获 Java 技术栈最核心的知识点?想要更全面更深入的了解 Java 技术?这篇文章给你想要的所有答案。 小编分享的这份金三银四Java后端开发面试总结包含了JavaOOP、Java集合容器、Java异常、并发编程、Java反射、Java序列化、JVM、Redis、Spring MVC、MyBatis、MySQL数据库、消息中间件MQ、Dubbo、Linux、ZooKeeper、 分布式&数据结构与算法等26个专题技术点,都是小编在各个大厂总结出来的面试真题,已经有很多粉丝靠这份PDF拿下众多大厂的offer,今天在这里总结分享给到大家!【持续更新中!】 完整版Java面试题地址:2021最新面试题合集集锦。 序号 专题 内容 链接 1 中间件 Java中间件面试题(2021最新版) ​ https://blog.51cto.com
  • Springboot基础入门
    Springboot基础入门 1.Spring生态圈:1.1.spring能做什么?1.2.Spring的生态1.3.Spring5重大升级1.3.1、响应式编程1.3.2.内部源码设计 1.4.为什么用SpringBoot1.5.SpringBoot优点1.6.SpringBoot缺点 2.Springboor的大时代背景2.1.微服务2.2.分布式分布式的困难分布式的解决 3.如何学习SpringBoot3.1、官网文档架构 4.SpringBoot2入门系统要求Maven配置文件编写helloword需求创建maven工程创建主程序编写业务运行测试打包部署 5.了解自动配置原理依赖管理特性父项目做依赖管理无需关注版本号,自动版本仲裁可以修改版本号开发导入starter场景启动器 自动配置特性自动配置好Tomcat自动配置好SpringMVC自动配置好Web常见工程,如字符编码问题默认的包结构各种配置拥有默认值按需加载所有自动配置项 1.Spring生态圈: 1.1.spring能做什么? 比如我们spring做容器的IOC,做切面的AOP和用springMVC开发web应用,这些都是spring框架给我们带来的基本功能。 我们可以浏览一下官网,看看能做什么 Microservices:即微服务开发:在一些大型应用开发的时候,如果我们将所有模块代码写在一个项目里面
  • SpringBoot(一)快速入门,你的第一个SpringBoot程序
    文章目录 SpringBoot快速入门1、概述2、编写第一个SpringBoot程序2.1、使用IDEA构建一个SpringBoot项目2.2、填写Maven项目基本信息2.3、勾选启动器(Spring Web) 如果你勾选了这个,相当于帮你自动配置好了Spring和SpringMVC!包括Tomcat~2.4、项目构建完成2.5、写一个程序测试一下 3、理解研究SpringBoot原理3.1、小彩蛋:不一样的Logo3.2、==它怎么启动的?==不一样的依赖 SpringBoot快速入门 1、概述 SpringBoot为什么出来:简化配置文件,就好像Spring的升级版,原来很多东西需要手动配置,现在只需要自动配置! 以前SSM框架中需要配置好多文件,太麻烦了,而SpringBoot梳理了SSM框架中麻烦的地方,所有东西都不用自己去配置,自动生成 有种半自动换成全自动的感觉~ 各种.xml配置文件tomcat 都要配置lib依赖 也需要管理 SpringBoot中以上统统不用配置即可运行! 2、编写第一个SpringBoot程序 2.1、使用IDEA构建一个SpringBoot项目 2.2、填写Maven项目基本信息 2.3、勾选启动器(Spring Web) 如果你勾选了这个,相当于帮你自动配置好了Spring和SpringMVC!包括Tomcat~ 2.4、项目构建完成
  • Spring Boot:如何将另一个WAR文件添加到嵌入式tomcat?(Spring Boot: How to add another WAR files to the embedded tomcat?)
    问题 Spring Boot的嵌入式tomcat非常便于开发和部署。 但是,如果应该添加另一个(第三方)WAR文件(例如GeoServer)怎么办? 也许以下是正常过程: 安装普通的Tomcat服务器。 将Spring Boot应用程序构建为WAR文件,并将其添加到Tomcat的webapps文件夹中。 还将另一个(第三方)WAR文件添加到webapps文件夹中。 但是,如果可以进行以下配置,那将是很好的。 将Spring引导应用程序构建为独立的Jar,其中包括嵌入式Tomcat。 部署Spring引导应用程序Jar。 将另一个(第三方)WAR文件添加到嵌入式Tomcat可以识别的文件夹中。 使用嵌入式Tomcat服务Spring引导应用程序内容和其他WAR内容。 如何做呢? 更新 当spring boot应用程序由胖jar(=可执行jar)组成时,答案中的代码是不够的。 修改后的内容如下: @Bean public EmbeddedServletContainerFactory servletContainerFactory() { return new TomcatEmbeddedServletContainerFactory() { @Override protected TomcatEmbeddedServletContainer
  • Spring Boot:如何向嵌入式 tomcat 添加另一个 WAR 文件?(Spring Boot: How to add another WAR files to the embedded tomcat?)
    问题 Spring Boot 的嵌入式 tomcat 非常好用,无论是开发还是部署。 但是,如果应该添加另一个(第 3 方)WAR 文件(例如 GeoServer)怎么办? 也许以下是正常程序: 安装一个普通的Tomcat服务器。 将 Spring Boot 应用程序构建为 WAR 文件,并将其添加到 Tomcat 的 webapps 文件夹中。 还将另一个(第 3 方)WAR 文件添加到 webapps 文件夹。 但如果以下配置是可能的,那就太好了。 将 Spring boot 应用程序构建为独立的 Jar,其中包括嵌入式 Tomcat。 部署 Spring Boot 应用程序 Jar。 将另一个(第 3 方)WAR 文件添加到嵌入式 Tomcat 可识别的文件夹中。 使用嵌入式 Tomcat 提供 Spring boot 应用程序内容和另一个 WAR 的内容。 如何做呢? 更新 当spring boot应用是用fat jar(=executable jar)做的时候,答案里面的代码是不够的。 修改后的内容如下: @Bean public EmbeddedServletContainerFactory servletContainerFactory() { return new TomcatEmbeddedServletContainerFactory() { @Override
  • SpringBoot项目打成jar包和war包部署在Tomcat服务器上的区别
    本文所使用的 SpringBoot 版本:1.5.19.RELEASE java 版本:1.8 tomcat版本:7.0.91 一、jar包 pom.xml <groupId>com.weimo</groupId> <artifactId>demo</artifactId> <version>0.0.1-SNAPSHOT</version> <name>demo</name> <description>jar包部署</description> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <finalName>demo</finalName> </configuration> </plugin> </plugins> </build> SpringBoot 打成 jar 包,内嵌了自带的 tomcat 配置,可以直接执行 java -jar *.jar 的命令运行。该命令只是启动一个执行 jar mian 的 jvm 进程,当 spring-boot-starter-web 包含嵌入式 tomcat 服务器依赖项时,执行 java -jar 则会启动
  • ApplicationContextException:由于缺少ServletWebServerFactory bean而无法启动ServletWebServerApplicationContext(ApplicationContextException: Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean)
    问题 我已经使用Spring Boot编写了Spring Batch应用程序。 当我尝试在本地系统上使用命令行和类路径运行该应用程序时,它运行良好。 但是,当我尝试在linux服务器上运行它时,出现以下异常 Unable to start web server; nested exception is org.springframework.context.ApplicationContextException: Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean. 下面是我的运行方式: java -cp jarFileName.jar; lib\* -Dlogging.level.org.springframework=DEBUG -Dspring.profiles.active=dev -Dspring.batch.job.names=abcBatchJob com.aa.bb.StartSpringBatch > somelogs.log 回答1 情况1: 您的Spring Boot Starter类中缺少@SpringBootApplication批注。 情况2: 对于非Web应用程序,请在属性文件中禁用web application
  • SpringBoot 有哪些优点?它和 Spring 有什么区别?
    目录 Spring Boot 特性一:更快速的构建能力 Spring Boot 特性二:起步依赖 Spring Boot 特性三:内嵌容器支持 Spring Boot 特性四:Actuator 监控 Spring Boot 启动源码分析 作为 Java 开发人员对 Spring 框架都很熟悉,Spring 为 Java 程序提供了全面的基础架构支持,包含了很多非常实用的功能,如 Spring JDBC、Spring AOP、Spring ORM、Spring Test 等,这些模块的出现,大大的缩短了应用程序的开发时间,同时提高了应用开发的效率。 Spring Boot 本质上是 Spring 框架的延伸和扩展,它的诞生是为了简化 Spring 框架初始搭建以及开发的过程,使用它可以不再依赖 Spring 应用程序中的 XML 配置,为更快、更高效的开发 Spring 提供更加有力的支持。Spring Boot 具体的特性如下。 Spring Boot 特性一:更快速的构建能力 Spring Boot 提供了更多的 Starters 用于快速构建业务框架,Starters 可以理解为启动器,它包含了一系列可以集成到应用里面的依赖包,你可以一站式集成 Spring 及其他技术,而不需要到处找依赖包。例如在 Spring 中如果要创建 Web 应用程序的最小依赖项为:
  • 临时上传位置[/tmp/tomcat.4296537502689403143.5000/work/Tomcat/localhost/ROOT]无效(The temporary upload location [/tmp/tomcat.4296537502689403143.5000/work/Tomcat/localhost/ROOT] is not valid)
    问题 我使用的是 Spring Boot 1.5.13 版本。 我收到如下异常消息。 Could not parse multipart servlet request; nested exception is java.io.IOException: The temporary upload location [/tmp/tomcat.4296537502689403143.5000/work/Tomcat/localhost/ROOT] is not valid 我在 Spring Github Issues 中发现了这个问题。 https://github.com/spring-projects/spring-boot/issues/9616 但我对此仍有疑问。 我没有在我的应用程序中使用文件上传的东西。 但是日志说“无法解析多部分 servlet 请求”为什么会这样? (当我的应用程序使用 RestTemplate(Post 方法)时出现异常为了解决异常,我重新启动了我的应用程序,但它没有立即工作。 虽然我重新启动了我的应用程序,但它引用了不存在的 tomcat 目录。 重新启动后一天后,它起作用了。 我猜这个目录被缓存在 Spring 的某个地方,或者其他..? 请帮帮我! 回答1 http POST 方法将使用这些临时位置来存储发布数据。 一些操作系统如centOS
  • SpringBoot基础面试题
    ​1、什么是SpringBoot? SpringBoot是Spring开源组织下的子项目,是Spring组件一站式解决方案,主要是简化了使用Spring的难度,简省了繁重的配置,提供了各种启动器,开发者能快速上手。 SpringBoot已经建立在现有的spring框架之上。使用spring启动,我们避免了之前我们必须做的所有样板代码和配置。因此,SpringBoot可以帮助我们以最少的工作量,更加健壮地使用现有的Spring功能。 2、SpringBoot有哪些优点? SpringBoot上手简单,实现了开箱即用。只需继承spring-boot-start-parent依赖,实现了版本的统一管理,避免了maven的各种版本冲突。此外,现在很多技术组件都提供了启动器,能更方便地集成。 3、SpringBoot运行项目的几种方式? 1)打包用命令或者放到容器中运行 ①打成jar包,使用java -jar xxx.jar运行 ②打成war包,放到tomcat里面运行 2)直接用maven插件运行 maven spring-boot:run 3)直接执行main方法运行 4、SpringBoot的核心注解是哪个?它主要由哪几个注解组成的? 启动类上面的注解是@SpringBootApplication,它也是SpringBoot的核心注解,主要组合包含了以下3个注解: ①
  • Maven package error: An attached artifact must have a different ID than its corresponding main artifact
    Geting this error on: mvn package It fails to build every time with the same error, I've tried renaming the artifact, as well as changing dependencies for build in the pom file. Please see more details below: Any help would be very much appreciated. error: [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 2.599 s [INFO] Finished at: 2014-09-29T14:49:45+01:00 [INFO] Final Memory: 33M/379M [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.springframework.boot
  • Maven 包错误:附加的工件必须具有与其对应的主工件不同的 ID(Maven package error: An attached artifact must have a different ID than its corresponding main artifact)
    问题 出现此错误:mvn package 每次都无法构建并出现相同的错误,我尝试重命名工件,以及更改 pom 文件中构建的依赖项。 请参阅下面的更多详细信息: 任何帮助将不胜感激。 错误: [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 2.599 s [INFO] Finished at: 2014-09-29T14:49:45+01:00 [INFO] Final Memory: 33M/379M [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:1.1.7.RELEASE:repackage (default) on project compiled: Execution default of goal org.springframework.boot:spring-boot-maven-plugin:1.1.7
  • Howto use JNDI database connection with Spring Boot and Spring Data using embedded Tomcat?
    When I try to use a JNDI datasource with Spring Boot and Spring Data JPA using an embedded Tomcat server, I get the following error message when running the application with SpringApplication.run: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.class]: Instantiation of bean failed; nested exception is org.springframework.beans.factory.BeanDefinitionStoreException: Factory method [public org.springframework.orm.jpa