2
我需要將一堆圖片加載到我的Spring webapp中。出於性能原因,這應該只在啓動webapp後完成。圖像應該保存在一個單身人士訪問從多個用戶,會話等每張圖片只有一次加載圖片webapp
我已經建立一個Java Bean與initalizer加載圖像,在我的控制器我注入這個bean,並獲取圖像。工程,但注射是不正確的事情。
我怎樣才能建立一個單身bean保存圖像,並只加載圖像每個Web應用程序一次?
我需要將一堆圖片加載到我的Spring webapp中。出於性能原因,這應該只在啓動webapp後完成。圖像應該保存在一個單身人士訪問從多個用戶,會話等每張圖片只有一次加載圖片webapp
我已經建立一個Java Bean與initalizer加載圖像,在我的控制器我注入這個bean,並獲取圖像。工程,但注射是不正確的事情。
我怎樣才能建立一個單身bean保存圖像,並只加載圖像每個Web應用程序一次?
您是否考慮過使用EhCache內置web caching?只需將它添加到您的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>
而且在配置SimplePageCachingFilter
緩存您ehcache.xml
:
<cache name="SimplePageCachingFilter"
maxElementsInMemory="1000"
eternal="false"
timeToIdleSeconds="31536000"
timeToLiveSeconds="31536000"
overflowToDisk="false"
memoryStoreEvictionPolicy="LRU"
statistics="true"
/>
的Ehcache現在將截取靜態資源的所有客戶端的請求,一旦閱讀它們,把它們放在緩存並返回給用戶。爲了使它更好,它甚至會添加HTTP Expiry
headeres,以便客戶端不會再次爲同一資源調用您。
是不是這種方法好於手工編寫的加載和緩存的單?
聽起來不錯,而且使用ist是它配置過濾器的唯一必要條件嗎?不錯。在哪裏放置'ehcache.xml'?和web.xml一樣的路徑?以前從未使用過ehcache。 – Nils
您需要將'ehcache.xml'放入'CLASSPATH'的根目錄(例如'/ src/main/resources')。他們有非常廣泛的文件,檢查出來看看其他功能。 –
我按照你所說的配置了所有的東西,把''-Tags添加到'ehcache.xml',並通過文檔中的maven-snippet添加了ehcache。但tomcat無法啓動應用程序,'失敗 - 上下文路徑/ webapp應用程序無法啓動',看起來像tomcat無法解決web xml正確的方式..找不到具有細節的日誌條目。任何想法,是什麼造成的? –
Nils