Tag: 春季启动

如何在生产环境中运行一个spring引导可执行文件jar?

Spring Boot的首选部署方法是通过一个包含tomcat的可执行jar文件。 它是从一个简单的java -jar myapp.jar 。 现在,我想在EC2上将该jar部署到我的linux服务器上,我是否错过了一些东西,或者是否真的需要创build一个init脚本来正确启动应用程序作为后台进程? 如果我简单地调用java -jar则应用程序将在注销时死亡。 我可以在屏幕或nohup启动它,但是这不是很优雅,并在我的服务器重新启动将迫使我login并手动启动该过程。 那么,有没有什么东西在春季启动的任务?

build议部署战争文件vs可执行jar与embedded式容器

在java空间中似乎有一种趋势,就是从一个war文件(或ear文件)的forms,将java web应用程序部署到一个java servlet容器(或应用程序服务器),而不是将应用程序打包为一个可执行的jar像docker这样的embedded式servlet / HTTP服务器。 我的意思是,更新的框架影响了新应用程序的开发和部署方式,而不是如何将应用程序交付给最终用户(例如,我得到了为什么Jenkins使用embedded式容器,非常容易抓取和移动)。 采用可执行jar选项的框架示例: Dropwizard , Spring Boot和Play (它不能在servlet容器上运行,但是HTTP服务器被embedded)。 我的问题是,从我们已经将我们的应用程序(主要是Struts2)部署到单个tomcat应用程序服务器的环境中,如果我们计划使用embedded式容器方法,需要做出什么样的更改,最佳实践或考虑? 目前,我们在单个tomcat服务器上运行大约10个自主开发的应用程序,对于这些小型应用程序来说,共享资源并在一台服务器上pipe理的能力是非常好的。 我们的应用程序不打算分发给最终用户在其环境中运行。 然而,如果我们决定利用更新的Java框架,那么这种方法是否会改变呢? 越来越多的云部署(例如,Heroku)的使用促成了可执行jar的转变吗? 如果您在Play部署方式中pipe理多个应用程序的经验与在单个应用程序服务器上部署传统战争文件的经验相同,请分享您的洞察力。

mvnw和mvnw.cmd文件的目的是什么?

当我创build一个Spring Boot应用程序时,我可以在项目的根目录中看到mvnw和mvnw.cmd文件。 这两个文件的目的是什么?

如何在spring-boot中loggingsql语句

我是春季引导的新手。 我想在一个文件中loggingsql语句。 我在application.properties有以下属性 spring.datasource.url=… spring.datasource.username=user spring.datasource.password=1234 spring.datasource.driver-class-name=net.sourceforge.jtds.jdbc.Driver spring.jpa.show-sql=true spring.jpa.properties.hibernate.format_sql=true security.ignored=true security.basic.enabled=false logging.level.org.springframework.web=INFO logging.level.org.hibernate=INFO logging.file=c:/temp/my-log/app.log 当我运行我的应用程序 cmd>mvn spring-boot:run 我可以在控制台中看到sql语句,但它们不出现在文件app.log中。 该文件仅包含来自spring的基本日志。 我该怎么做才能在日志文件中看到sql语句?

Spring Boot:如何使用application.properties设置日志logging级别?

这是非常简单的问题,但我找不到信息。 (也许我对Java框架的知识严重缺乏) 我如何设置与application.properties日志logging级别? 和日志文件的位置等?

Spring Boot War部署到Tomcat

我正在尝试将Spring Boot应用程序部署到Tomcat,因为我想部署到AWS。 我创build了一个WAR文件,但它似乎没有在Tomcat上运行,尽pipe它是可见的。 细节: 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.0.xsd“> 4.0.0 <groupId>com.niewlabs</groupId> <artifactId>highlighter</artifactId> <version>1.0-SNAPSHOT</version> […]

java.lang.NoClassDefFoundError:org / springframework / core / env / ConfigurableEnvironment

我正在尝试使用Spring Boot编写一个简单的RESTful服务。 但是,有一个错误消息,我无法解决。 我一直在研究,它看起来像是SpringBoot版本之间的冲突,但我不知道如何摆脱它。 我有这个SpringBootApp: import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * REST Service application */ @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } 与这个pom.xml相关联: <?xml version="1.0"?> <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <modelVersion>4.0.0</modelVersion> <groupId>com.websystique.springmvc</groupId> <artifactId>Spring4MVCHelloWorldRestServiceDemo</artifactId> <packaging>war</packaging> <version>1.0.0</version> <name>Spring4MVCHelloWorldRestServiceDemo Maven Webapp</name> <properties> <springframework.version>4.3.0.RELEASE</springframework.version> <jackson.library>2.7.5</jackson.library> <spring.batch.version>2.1.9.RELEASE</spring.batch.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> […]

Spring Boot – 处理Hibernate SessionFactory

有谁知道如何获得由Spring Boot创build的Hibernate SessionFactory?

Spring Boot和多个外部configuration文件

我有多个属性文件,我想从类path加载。 在/src/main/resources下有一个默认设置,它是myapp.jar一部分。 我的springcontext期望文件在类path。 即 <util:properties id="Job1Props" location="classpath:job1.properties"></util:properties> <util:properties id="Job2Props" location="classpath:job2.properties"></util:properties> 我也需要用外部设置覆盖这些属性的选项。 我在cwd有一个外部configuration文件夹。 按照Spring引导文档config文件夹应该在classpath上。 但是从doc不清楚它是否只会覆盖来自那里的applicaiton.properties或者config中的所有属性。 当我testing它时,只有application.properties被拾取,剩下的属性仍然从/src/main/resources被拾取。 我已经尝试提供他们作为逗号分隔列表spring.config.location但默认设置仍然没有被覆盖。 我如何使多个外部configuration文件覆盖默认的? 作为解决方法我目前使用app.config.location (特定于应用程序的属性),我通过命令行提供。 即 java -jar myapp.jar app.config.location=file:./config 我改变了我的applicationcontext上下文 <util:properties id="Job2Props" location="{app.config.location}/job2.properties"></util:properties> 这就是我加载应用程序时如何分离文件和类path。 EDITS: //psuedo code if (StringUtils.isBlank(app.config.location)) { System.setProperty(APP_CONFIG_LOCATION, "classpath:"); } 我真的不想使用上面的解决方法,并popup覆盖类path上的所有外部configuration文件,就像它为application.properties文件。

Spring Boot Actuator应用程序不会在Ubuntu VPS上启动

我有一个使用Spring Boot Actuator的Java后端,但不会在Digitalocean Ubuntu VPS上启动。 同样的应用程序在我的Mac和其他Ubuntu PC上运行良好。 szabolcs@SmartUpProd:~/smartup$ java -Xmx1536m -jar build/libs/smartup-backend-0.1.0.jar 它开始初始化,但每次都停在同一点(没有例外,只是挂起)。 如果我试图用^C来阻止它,它不会带回壳。 这是最重要的: . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | […]