1

嘿伙计们,我正在尝试使用 Embedded-jetty 和 jax-rs 配置和运行 Restful 服务,我找到了本教程,它运行良好,但是我的要求之一是通过 applicationContext.xml 文件中的 spring xml 尽可能多地进行配置。

我想在 xml 中做的部分是 AppConfig.java 类

    @Configuration
public class AppConfig { 
    @Bean( destroyMethod = "shutdown" )
    public SpringBus cxf() {
        return new SpringBus();
    }

    @Bean
    public Server jaxRsServer() {
        JAXRSServerFactoryBean factory = RuntimeDelegate.getInstance().createEndpoint( jaxRsApiApplication(), JAXRSServerFactoryBean.class );
        factory.setServiceBeans( Arrays.< Object >asList( peopleRestService() ) );
        factory.setAddress( '/' + factory.getAddress() );
        factory.setProviders( Arrays.< Object >asList( jsonProvider() ) );
        return factory.create();
    }

    @Bean 
    public JaxRsApiApplication jaxRsApiApplication() {
        return new JaxRsApiApplication();
    }

    @Bean 
    public StatsRestService peopleRestService() {
        return new StatsRestService();
    }

    @Bean 
    public StatsService peopleService() {
        return new StatsService();
    }

    @Bean
    public JacksonJsonProvider jsonProvider() {
        return new JacksonJsonProvider();
    }
}

以及在哪里使用

context.setInitParameter( "contextClass", AnnotationConfigWebApplicationContext.class.getName() );
context.setInitParameter( "contextConfigLocation", AppConfig.class.getName() );

不幸的是,我在网上找不到任何关于如何在 XML 中执行此操作的不错的帖子,我将不胜感激。

4

1 回答 1

1

如果您想通过 XML 配置 Spring,那么您需要将AppConfig类中的所有内容移入${project}/src/applicationContext.xml并引用它,如下所示:

context.setInitParameter("contextConfigLocation", "classpath:applicationContext.xml");

和一个工作的例子applicationContext.xml。您应该查看 Spring Framework 的网站以获取 API 参考。但是您可以从本教程开始。

于 2013-04-14T10:13:18.583 回答