小编Tem*_*arV的帖子

Spring 4.1 @JmsListener配置

我想将Spring 4.1中提供的新注释和功能用于需要JMS侦听器的应用程序.

我仔细阅读了Spring 4.1 JMS改进帖子中的注释,但我仍然错过了我和设置应用程序之间的关系@JmsListener,DestinationResolver以及如何指示正确的DestinationEndpoint.

以下是@JmsListener的建议用法

@Component
public class MyService {

    @JmsListener(containerFactory = "myContainerFactory", destination = "myQueue")
    public void processOrder(String data) { ... }
}
Run Code Online (Sandbox Code Playgroud)

现在,我不能在我的实际代码中使用它,因为需要使用配置文件读取"myQueue" Environment.getProperty().

我可以设置一个合适的myContainerFactory DestinationResolver但主要是,DynamicDestinationResolver如果你不需要JNDI来查找app服务器中的队列而不需要做一些自定义的回复逻辑,你似乎只会使用它.我只是想了解Spring如何使用@JmsListener注释以参数化方式指示队列的名称.

在博客文章的下方,我找到了对此Configurer的引用:

@Configuration
@EnableJms
public class AppConfig implements JmsListenerConfigurer {

@Override
public void configureJmsListeners(JmsListenerEndpointRegistrar registrar) {
    registrar.setDefaultContainerFactory(defaultContainerFactory());

    SimpleJmsListenerEndpoint endpoint = new SimpleJmsListenerEndpoint();
    endpoint.setDestination("anotherQueue");
    endpoint.setMessageListener(message -> {
        // processing
    });
    registrar.registerEndpoint(endpoint);
}
Run Code Online (Sandbox Code Playgroud)

现在,这使得感一定量的,我可以看到,这将让我设定在一些外部串运行一个目标,但是这似乎是在冲突中使用@JmsListener,因为它似乎是压倒一切赞成注释endpoint.setMessageListener中上面的代码. …

spring spring-annotations spring-jms

12
推荐指数
3
解决办法
2万
查看次数

maven-resources-plugin 将资源副本中断到测试类

通常,我的 POM 文件工作正常,所有单元测试都通过,所有工件都正确打包。但是,一旦我添加了这个 maven-resources-plugin 来根据配置文件创建特定的配置,我的所有测试都会失败,因为“src/test/resources”中的任何内容都没有被复制到“test-classes”:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <version>2.7</version>
            <configuration>
                <overwrite>true</overwrite>
                <outputDirectory>${project.build.directory}/${config.dir}/${project.activeProfiles[1].id}</outputDirectory>
                <resources>
                    <filtering>true</filtering>
                    <resource>
                        <directory>src/main/resources</directory>
                    </resource>
                </resources>
            </configuration>
        </plugin>   
Run Code Online (Sandbox Code Playgroud)

我不明白为什么这会阻止测试资源的复制。有任何想法吗?

maven maven-resources-plugin

5
推荐指数
1
解决办法
1877
查看次数

使用Omnifaces <o:cache>使数据过期

我有一个大的应用程序作用域内容缓冲区,我想保留在内存中.使用Omnifaces让我们很容易做到这一点.

但是,如果我需要使缓存过期,似乎没有方法可以这样做.如果需要,我可以设置时间属性,但这似乎并不是这个难题的理想答案.

有关强制更新基础数据的任何建议吗?

谢谢,

Temar

jsf-2 omnifaces

4
推荐指数
1
解决办法
217
查看次数