Jersey 2 + Spring 4没有web.xml / applicationContext.xml

时间:2016-01-18 18:46:44

标签: spring dependency-injection jersey jersey-2.0

我有2个Maven项目:

  • 包含我的实体/服务/ DAO的project1,带有Java Spring(4.2.4)配置(无XML)
  • project2是我使用Jersey(2.22.1)的RESTful API,它包含资源(控制器),Java配置(扩展ResourceConfig,没有web.xml)

我想在我的泽西资源中注入我的服务,这就是我所做的:

  1. 我将maven依赖项添加到project2
  2. 中的project1
  3. 我将依赖项jersey-spring3添加到project2
  4. 我没有更改Jersey配置类中的任何内容。

    我运行jetty(Maven插件,没有public static void main或任何类来运行服务器。) 第一次尝试:需要a​​pplicationContext.xml 第二次尝试:在添加空的applicationContext.xml(到project2)后,找不到我的服务 第三次尝试:在将<context:component-scan base-package="com.xxx.project1"/>添加到a​​pplicationContext.xml(我的project1 Java Spring配置所在的包)之后,注入了服务。

    我的问题是如何摆脱applicationContext.xml文件?
    我希望自动检测来自project1的Spring配置......

    一些代码:
    Spring配置

    @Configuration
    @ComponentScan("com.xxx.project1.service")
    public class SpringConfig {
    
    }
    

    泽西岛配置

    @ApplicationPath("/v1")
    public class Application extends ResourceConfig {
    
        public Application() {
            packages("com.xxx.project2.filter",
            "com.xxx.project2.resource");
            register(RolesAllowedDynamicFeature.class);
        }
    }
    

1 个答案:

答案 0 :(得分:1)

使用Spring jsfiddle来引导Spring组件。您可以在WebApplicationInitializer中看到一个示例。