【问题标题】:Java cache on JBossJBoss 上的 Java 缓存
【发布时间】:2021-09-05 05:07:04
【问题描述】:

我有一个在 JBOSS 上运行的 Java 应用程序。 此应用程序从多个 API 获取数据并将其显示在网页上。

我想缓存数据,这样就不需要每次有人打开我的网页时都调用 API。

我想将 5 个列表或字符串缓存 5 分钟。没有数据库有什么办法吗?

【问题讨论】:

  • 你用的是什么框架?

标签: java caching jboss


【解决方案1】:

您可以使用http会话来持久化信息

例子

HttpSession misession= request.getSession(true);
Producto miproducto= new Producto(1,"telefono",300);
misession.setAttribute("producto",miproducto);

链接

HttpSession JBoss

文档

Jbos

如果你使用的是springboot

您可以使用带有应用注释的单例

@Configuration
public class AppConfig {

    @Bean
    @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
    public PrototypeBean prototypeBean() {
        return new PrototypeBean();
    }

    @Bean
    public SingletonBean singletonBean() {
        return new SingletonBean();
    }
}

public class SingletonBean {

    // ..

    @Autowired
    private PrototypeBean prototypeBean;

    public SingletonBean() {
        logger.info("Singleton instance created");
    }

    public PrototypeBean getPrototypeBean() {
        logger.info(String.valueOf(LocalTime.now()));
        return prototypeBean;
    }
}


public static void main(String[] args) throws InterruptedException {
    AnnotationConfigApplicationContext context 
      = new AnnotationConfigApplicationContext(AppConfig.class);
    
    SingletonBean firstSingleton = context.getBean(SingletonBean.class);
    PrototypeBean firstPrototype = firstSingleton.getPrototypeBean();
    
    // get singleton bean instance one more time
    SingletonBean secondSingleton = context.getBean(SingletonBean.class);
    PrototypeBean secondPrototype = secondSingleton.getPrototypeBean();

    isTrue(firstPrototype.equals(secondPrototype), "The same instance should be returned");
}

如果你使用底漆面,你可以使用@ApplicationScoped

@ApplicationScoped

应用程序范围的托管 bean 实例与 Web 应用程序本身的生命周期相关联。在整个 Web 应用程序中只有一个应用程序范围的托管 bean 实例。它与 Singleton EJB 不同但相似。

Singleton

【讨论】:

  • 但是这里每个用户都有自己的Session。我希望所有用户使用相同的数据。
  • 喂?你能帮助我吗?请!
  • 是的,我要更新代码@Arnold2080
猜你喜欢
  • 2017-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-16
  • 2012-09-17
  • 1970-01-01
  • 2012-06-29
相关资源
最近更新 更多