繁体   English   中英

每个Spring WebApp仅加载一次图像

[英]Loading images only one time per spring webapp

我需要将一堆图像加载到我的Spring Webapp中。 出于性能原因,仅应在启动webapp之后执行此操作。 图片应单独保存,以供多个用户,会话等访问

我已经用初始化器构建了一个Java Bean来加载图像,在控制器中,我注入了这个Bean并获取了图像。 可行,但是注入不是正确的选择。

如何构建单例bean来保存图像,并且每个Web应用程序仅加载一次图像?

您是否考虑过使用EhCache内置的Web缓存 只需将其添加到您的web.xml

<filter>
    <filter-name>pageCachingFilter</filter-name>
    <filter-class>net.sf.ehcache.constructs.web.filter.SimpleCachingHeadersPageCachingFilter</filter-class>
</filter>

<filter-mapping>
    <filter-name>pageCachingFilter</filter-name>
    <url-pattern>*.htm</url-pattern>
    <url-pattern>*.js</url-pattern>
    <url-pattern>*.png</url-pattern>
    <url-pattern>*.gif</url-pattern>
    <url-pattern>*.jpg</url-pattern>
    <url-pattern>*.css</url-pattern>
</filter-mapping>

并在ehcache.xml配置SimplePageCachingFilter缓存:

<cache name="SimplePageCachingFilter"
       maxElementsInMemory="1000"
       eternal="false"
       timeToIdleSeconds="31536000"
       timeToLiveSeconds="31536000"
       overflowToDisk="false"
       memoryStoreEvictionPolicy="LRU"
       statistics="true"
        />

EhCache现在将拦截所有客户端对静态资源的请求,读取一次,将其放入缓存中并返回给用户。 为了使它更好,它甚至会添加HTTP Expiry标头,以便客户端不再为相同的资源调用您。

与单例中手动编写的加载和缓存相比,这种方法难道不是更好吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM