首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WildFly 10,JCache -方法缓存

WildFly 10,JCache -方法缓存
EN

Stack Overflow用户
提问于 2016-09-07 15:58:30
回答 1查看 768关注 0票数 0

我有使用Spring的简单应用程序。我希望使用JSR107 - JCache进行允许方法缓存。因此,在教程的帮助下,我编写了以下代码:

代码语言:javascript
复制
@CacheResult(cacheName = "testpoc")
public Country getCountry(Integer id){
    System.out.println("---> Loading country with code '" + id + "'");
    return new Country(id, "X", "Title");
}

用这个POM文件

代码语言:javascript
复制
...
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <version>1.4.0.RELEASE</version>
    </dependency>
    <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-cache</artifactId>
         <version>1.4.0.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>javax.cache</groupId>
        <artifactId>cache-api</artifactId>
        <version>1.0.0</version>
    </dependency>
</dependencies>
...

(依赖“spring starter”用于简单的REST服务,该服务称为getCountry方法)

一切都像documentations那样工作--方法只被调用一次。

现在我想在WildFly 10应用服务器上试用它

我修改了pom文件:

  • 排除猫
  • 脱出弹簧-启动-启动-缓存
  • 添加了无穷大的jcache(因为我希望在独立/domain.xml中使用由通配符配置/管理的缓存)

检查pom文件在巴斯托上

问题是,我收到以下错误:找不到名为的缓存

(我已经尝试使用已分配的JNDI和在通配符中配置的无穷大缓存的名称)。

下面的代码创建了Cache对象(因此我可以使用它):

代码语言:javascript
复制
CacheManager cacheManager = Caching.getCachingProvider().getCacheManager();
Cache<String, String> cache = cacheManager.createCache("testpoc", new MutableConfiguration<String, String>());

问题:

  • 是否可以使用由JCache管理的Infinispan在WildFly 10上使用WildFly方法缓存?
  • 或者Infinispan应该用于像JCache这样的方法缓存,因此JCache比Infinispan具有“更多的功能”。

非常感谢

PS :这不是问题,我把整个代码放在github和post链接-这是几行代码.

EN

回答 1

Stack Overflow用户

发布于 2016-09-12 05:44:53

您的方法有几个问题,所以让我分步骤介绍一下。

首先,您需要使用正确的Infinispan设置。随WF装运的Infinispan位应视为内部或私有的。为了在应用程序中正确地使用Infinispan --要么将org.infinispan:infinispan-embedded添加到部署中,要么安装Infinispan野蝇模。您可以找到安装指南这里 (它有点过时,但是过程完全相同--将模块解压缩到WF并使用Dependencies MANIFEST.MF条目)。

一旦您成功安装了Infinispan (或将其添加到您的应用程序中),您需要考虑使用弹簧缓存还是JCache。如果您只对使用注释感兴趣--我建议使用前者,因为设置起来容易得多(只需将@EnableCaching添加到您的一个配置中)。最后,使用Spring,您将创建一个Infinispan。一个例子可以找到这里

最后注意--如果仍然需要使用JCache --使用本手册设置缓存提供程序。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39374556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档