所以我的问题是我想在部署应用程序时缓存一些表数据。在这种情况下,我想在服务器(可能是jboss或tomcat服务器)上部署应用程序时,从一个表的数据中创建一个哈希映射。
我知道如何使用hibernate,JDBC等,并且正常获取数据没有问题,但是在构建/部署应用程序时如何让我的数据检索代码自行运行?
这可能是一件非常简单的事情,但我不确定我怎么也找不到任何好的指南。
非常感谢任何帮助。
答案 0 :(得分:0)
您可以从servlet构建中为此目的调用它。然后,在web.xml中,使用runOnStartup设置servlet,然后设置为0.这使得Web服务器在加载应用程序时启动servlet。
答案 1 :(得分:0)
在上面提到的3个中,我对Spring很熟悉。关于如何用弹簧实现这一目标的任何建议?
Spring beans默认为singleton范围,并在ApplicationContext初始化时生成(在部署时发生)。你可以让Spring在用@PostConstruct
创建bean或实现InitializingBean
时调用方法:
@Component
public class CategoriesCache {
@Inject
CategoryRepositoy repo;
private List<Category> cachedCategories;
@PostConstruct
void init() {
cachedCategories = repo.findAll();
}
}
如果您不想使用依赖注入容器,则可以使用ServletContextListener
通知部署,并执行必要的初始化。