码头+;泽西岛+;没有web.xml的Spring DI
我正在尝试使用嵌入式Jetty 9服务器和Jersey(2.18)servlet编写一个小型REST应用程序。我想使用Spring4进行依赖注入,但在Jersey资源中注入SpringBean时遇到了问题。 我以编程方式配置服务器,因此没有web.xml 我的资源配置是:码头+;泽西岛+;没有web.xml的Spring DI,spring,servlets,jersey,jetty,jax-rs,Spring,Servlets,Jersey,Jetty,Jax Rs,我正在尝试使用嵌入式Jetty 9服务器和Jersey(2.18)servlet编写一个小型REST应用程序。我想使用Spring4进行依赖注入,但在Jersey资源中注入SpringBean时遇到了问题。 我以编程方式配置服务器,因此没有web.xml 我的资源配置是: public class ApplicationConfig extends ResourceConfig { public static final String ROOT_PACKAGE = "com.example
public class ApplicationConfig extends ResourceConfig {
public static final String ROOT_PACKAGE = "com.example";
public ApplicationConfig() {
packages(true, ROOT_PACKAGE);
// Features
register(JacksonFeature.class);
property(METAINF_SERVICES_LOOKUP_DISABLE, true);
}
}
主类(我在其中配置和启动Jetty)是:
弹簧配置为:
@Configuration
@ComponentScan("com.example")
public class ProductionSpringConfig {}
我在扫描包中添加了一个简单的Spring组件,我可以看到它在服务器启动时正确实例化:
@Component
public class BeanExample {
public void doSomething(){
System.out.println("HelloWorld");
}
}
但是,当我尝试将其注入Jersey资源时,它总是空的。我尝试使用自动连线和注入注释。
我很确定我误解了什么,我没有正确配置所有的部件
有人能帮忙吗?我看不到您在这里注册
SpringComponentProvider
,因为您是以SE方式注册的,您可能需要自己注册。您的示例对我很有用。您是否有一个小的Github项目可以共享,以演示问题?给你。我想可能是由于METAINF\u服务\u查找\u禁用
导致找不到SpringComponentProvider
,但即使使用该属性,它似乎仍能工作。@peeskillet我查看了您在github上发布的代码,我注意到您将jersey-spring3作为依赖项的一部分导入。我也这么做了,现在它工作得很好。感谢您的帮助我在这里没有看到您注册SpringComponentProvider
,因为您是以SE方式注册的,您可能需要自己注册。您的示例对我很有用。您是否有一个小的Github项目可以共享,以演示问题?给你。我想可能是由于METAINF\u服务\u查找\u禁用
导致找不到SpringComponentProvider
,但即使使用该属性,它似乎仍能工作。@peeskillet我查看了您在github上发布的代码,我注意到您将jersey-spring3作为依赖项的一部分导入。我也这么做了,现在它工作得很好。感谢您的帮助我在这里没有看到您注册SpringComponentProvider
,因为您是以SE方式注册的,您可能需要自己注册。您的示例对我很有用。您是否有一个小的Github项目可以共享,以演示问题?给你。我想可能是由于METAINF\u服务\u查找\u禁用
导致找不到SpringComponentProvider
,但即使使用该属性,它似乎仍能工作。@peeskillet我查看了您在github上发布的代码,我注意到您将jersey-spring3作为依赖项的一部分导入。我也这么做了,现在它工作得很好。谢谢你的帮助
@Component
public class BeanExample {
public void doSomething(){
System.out.println("HelloWorld");
}
}