【发布时间】:2017-06-07 14:12:07
【问题描述】:
我有一个使用 RESTEasy 的基于 JAX-RS 的现有 Maven 项目。效果很好!它创建了一个我部署到在 Ubuntu 上运行的 Tomcat 的 WAR。它很干净并遵循最新标准。 POM 很简单:
...
<packaging>war</packaging>
...
<dependencies>
...
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>javax.ws.rs-api</artifactId>
<version>2.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxrs</artifactId>
<version>3.1.0.Final</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-servlet-initializer</artifactId>
<version>3.1.0.Final</version>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jackson2-provider</artifactId>
<version>3.1.0.Final</version>
</dependency>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.0.0</version>
</plugin>
</plugins>
...
我不需要任何web.xml,因为我使用的是最新的 Java EE 注释:
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
@ApplicationPath("/")
public class MyRESTApplication extends Application {
final FooResource fooResource = new FooResourceService();
...
@Override
public Set<Object> getSingletons() {
return ImmutableSet.of(fooResource);
}
}
这一切都很简单,而且效果很好!现在我只想要一种基于配置文件轻松更改 FooResource 实现的方法 --- 换句话说,连接我的单例。那就是春天进来的地方,对吧?有人告诉我,Spring Boot 使 Spring 变得更加出色,您可以将它与任何东西一起使用,它为您提供了一个执行器,让您可以实时了解系统的运行状况。
不幸的是,所有 Spring Boot 书籍和教程似乎都认为我是从他们的快速启动应用程序之一开始的。但是我已经有了一个很棒的简单的应用程序。我只想:
- 通过 Spring 从外部配置文件(不是注释)获取基于配置文件的应用程序连接。
- 从 Spring Boot 中获得任何其他好处,因为它显然很棒并且会彻底改变我的应用程序。
如何将 Spring(或 Spring Boot)添加到这个简单的小型 JAX-RS 应用程序中?
【问题讨论】:
标签: spring maven tomcat spring-boot jax-rs