当前位置: 首页 > 知识库问答 >
问题:

Redis with jHipster-尚未指定默认配置

巫马泰
2023-03-14

我使用jhipster版本7.6.0,这是我的CacheConfiguration类。

@Configuration
@EnableCaching
public class CacheConfiguration {

private GitProperties gitProperties;
private BuildProperties buildProperties;

@Bean
public javax.cache.configuration.Configuration<Object, Object> jcacheConfiguration(JHipsterProperties jHipsterProperties) {
    MutableConfiguration<Object, Object> jcacheConfig = new MutableConfiguration<>();

    URI redisUri = URI.create(jHipsterProperties.getCache().getRedis().getServer()[0]);

    Config config = new Config();
    if (jHipsterProperties.getCache().getRedis().isCluster()) {
        ClusterServersConfig clusterServersConfig = config
            .useClusterServers()
            .setMasterConnectionPoolSize(jHipsterProperties.getCache().getRedis().getConnectionPoolSize())
            .setMasterConnectionMinimumIdleSize(jHipsterProperties.getCache().getRedis().getConnectionMinimumIdleSize())
            .setSubscriptionConnectionPoolSize(jHipsterProperties.getCache().getRedis().getSubscriptionConnectionPoolSize())
            .addNodeAddress(jHipsterProperties.getCache().getRedis().getServer());

        if (redisUri.getUserInfo() != null) {
            clusterServersConfig.setPassword(redisUri.getUserInfo().substring(redisUri.getUserInfo().indexOf(':') + 1));
        }
    } else {
        SingleServerConfig singleServerConfig = config
            .useSingleServer()
            .setConnectionPoolSize(jHipsterProperties.getCache().getRedis().getConnectionPoolSize())
            .setConnectionMinimumIdleSize(jHipsterProperties.getCache().getRedis().getConnectionMinimumIdleSize())
            .setSubscriptionConnectionPoolSize(jHipsterProperties.getCache().getRedis().getSubscriptionConnectionPoolSize())
            .setAddress(jHipsterProperties.getCache().getRedis().getServer()[0]);

        if (redisUri.getUserInfo() != null) {
            singleServerConfig.setPassword(redisUri.getUserInfo().substring(redisUri.getUserInfo().indexOf(':') + 1));
        }
    }
    jcacheConfig.setStatisticsEnabled(true);
    jcacheConfig.setExpiryPolicyFactory(
        CreatedExpiryPolicy.factoryOf(new Duration(TimeUnit.SECONDS, jHipsterProperties.getCache().getRedis().getExpiration()))
    );
    return RedissonConfiguration.fromInstance(Redisson.create(config), jcacheConfig);
}

以下是redisson的依赖关系:

<dependency>
    <groupId>org.redisson</groupId>
    <artifactId>redisson</artifactId>
</dependency>

这是我的应用程序dev.yml:

一切都是由jHipster生成的,在安装redis 3.2.100版后,我遇到了以下异常:

顺便说一下,项目正在成功编译。

提前感谢您的帮助!

共有1个答案

谭翔
2023-03-14

这似乎与Redis works有关。您可以签出文档:https://www.baeldung.com/hibernate-second-level-cache移至“什么是二级缓存”。不幸的是,Jhipster中的Redis并没有为每个实体模型初始化缓存,所以您必须为域包中的每个模型初始化缓存。

首先,在CacheConfiguration中启用bean“hibernatePropertiesCustomizer”。java enable bean hibernatePropertiesCustomizer

之后,必须使用bean“cacheManagerCustomizer”中的@Cache注释为每个实体和字段定义所有createCache。例如:我有一些实体使用@Cache实体使用@Cache

在bean“cacheManagerCustomizer”中定义缓存

最后,让我们使用@Cache检查所有实体和字段,以确保它没有丢失。祝你好运!

 类似资料:
  • 问题内容: 我正在尝试将我的应用程序升级到新版本的Firebase。我仔细阅读了设置指南,并编辑了所有代码以匹配新语法。但是,当我运行该应用程序时,出现了这两个错误。 我 在AppDelegate中,并将GoogleServices- Info.plist导入到我的项目中。plist也具有所有正确的信息。其他人遇到这个问题或知道如何解决? 问题答案: 这是您的问题的答案: 要配置Firebase,

  • 我在运行项目时遇到错误: 环境: 请求方法:发布请求URL:http://127.0.0.1:8000/ Django版本:1.8。4 Python版本:2.7。6个已安装的应用程序:('django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','djang

  • 我正在使用node.js和引擎设置超文本传输协议服务器。然而,我不断遇到的问题,我有很少的信息如何解决,我将不胜感激一些帮助解决这个问题。 下面是我启动这个引擎的设置。

  • 问题内容: 我正在通过映射配置文件配置Hibernate。 如何设置为可为空,默认为null? 问题答案:

  • 在MVC Java编程配置方式下,如果你想对默认配置进行定制,你可以自己实现WebMvcConfigurer接口,要么继承WebMvcConfigurerAdapter类并覆写你需要定制的方法: @Configuration @EnableWebMvc public class WebConfig extends WebMvcConfigurerAdapter { // Override

  • 问题内容: 有没有一种方法可以指定与struct一起使用的默认dtype ? 我特别想成为和成为。相反,我得到和 问题答案: 默认值取决于您的系统。在64位系统上,默认类型为64位。在32位系统上,默认类型为32位。无法使用其他系统C标头更改默认值,即重新编译numpy。 您当然可以明确指定dtype,例如 编辑:正如kazemakase在下面提到的,以上内容仅适用于int32 / int64。在