![](/img/trans.png)
[英]Setup Zookeeper to deliver configuration one time only per application instance [Spring]
[英]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.