<mvc:resources>-它是否缓存到内存?春季4.0.5

阿提拉·内帕拉奇(AttilaNeparáczki)

让以下内容:

<mvc:resources mapping="/resources/**" location="/resources/" />

并说有2000个请求

/resources/script/app/myhax.js

如果我不进行任何配置,是否myhax.js以某种方式将缓存到RAM中,其余的请求从那里进行服务,还是全部2000个请求都从文件的真实路径(通常是HDD)得到服务?在直接从内存请求将来服务后,可以将Spring配置为将该文件保留在RAM中吗?

溶胶4

Spring不缓存任何资源。但是有可能为了允许资源被缓存。

您可以指定缓存时间(发送具有给定最大寿命值的缓存头),例如

<resources mapping="/resources/**" location="/resources/" cache-period="3600"/>

或者

mvc:resourcesResourceHttpRequestHandler支持,因此您可以创建自己的子类来扩展ResourceHttpRequestHandler和实现缓存逻辑,方法是重写适当的方法,例如writeContent(注意,可以参考文档或源代码以找到可用方法的列表),并在spring config中使用此新子类。

例如

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;

public class CacheResourceHandler extends ResourceHttpRequestHandler {

        private Map<URL, byte[]> cache = new HashMap<>();

        @Override
        protected void writeContent(HttpServletResponse resp, Resource rsc) throws IOException {
            byte[] buff = cache.get(rsc.getURL());

            //if not in cache
            if (buff == null) {
                //add to cache
                buff = StreamUtils.copyToByteArray(rsc.getInputStream());
                cache.put(rsc.getURL(), buff);
            }

            //return cache version
            StreamUtils.copy(buff, resp.getOutputStream());
        }

    }

XML配置

我们需要注释掉或删除以前的资源映射

 <!--<resources mapping="/resources/**" location="/resources/" />--> 

接下来,我们需要声明我们的缓存处理程序bean

  <bean id="staticResources" class="CacheResourceHandler">
          <property name="locations" value="/resources/"/> 
    </bean>

最后,我们将使用上面声明的SimpleUrlHandlerMapping来实现HandlerMapping接口,以便从URL映射到请求处理程序bean。我们需要做的就是传递我们的bean进行映射

   <bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
          <property name="mappings">
                 <value>/resources/**=staticResources</value>
          </property>
   </bean>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将asp.net mvc5缓存到硬盘驱动器?

来自分类Dev

如何将asp.net mvc5缓存到硬盘驱动器?

来自分类Dev

巨大的内存消耗(MVC 5 + EntityFramework 6.2.0)

来自分类Dev

Tkinter错误的#坐标:预期0或4,得到5

来自分类Dev

MVC模型未绑定,并且表单数据包含%5B0%5D

来自分类Dev

ASP.NET 5 MVC6 Angular 2(Beta 0)-重复承诺

来自分类Dev

在MVC 5中上传图片时,Request.Files.Count始终为0

来自分类Dev

具有外部登录的MVC 5身份具有userLogins始终为0

来自分类Dev

VB.NET从0舍入到4-> 0从5舍入到9-> 1

来自分类Dev

有没有一种方法可以在内存中缓存Spring <mvc:resources>文件?

来自分类Dev

VS2013 MVC 5模板:使用会话将声明从ExternalLoginCallback保存到ExternalLoginConfirmation是否错误

来自分类Dev

是否发布了ASP.NET MVC 5?

来自分类Dev

MVC 5是否存在控制器

来自分类Dev

春季4 mvc +休眠+批注配置堆内存问题

来自分类Dev

集成Spring MVC 4和Hibernate 5

来自分类Dev

MVC4 EF5更改未保存到数据库

来自分类Dev

消息响应发生错误代码为0xC0C01B4C和0xc0c016b5的僵尸

来自分类Dev

“ 5.5 | 0 === 5”如何工作?

来自分类Dev

BigDecimal舍入为0或5

来自分类Dev

数字以0或5结尾吗?

来自分类Dev

MVC 5:自定义AuthorizeAttribute和缓存

来自分类Dev

缓存部分视图Asp.net MVC 5

来自分类Dev

ASP.NET MVC 5数据缓存-行为异常

来自分类Dev

清除MVC 6 / ASP.NET 5中的输出缓存

来自分类Dev

每个用户和匿名来宾的MVC 5主页输出缓存

来自分类Dev

如何在ASP.NET 5 MVC中访问缓存?

来自分类Dev

为什么 int arr[]={0,3,2,4,5,6,7}; 给出错误和 int arr[7]={0,3,2,4,5,6,7}; 不是

来自分类Dev

在什么编码中编码是西班牙语“ñ”eñe 0xa4,大写的eñe 0xa5?

来自分类Dev

MVC“ UrlData [0]”

Related 相关文章

  1. 1

    如何将asp.net mvc5缓存到硬盘驱动器?

  2. 2

    如何将asp.net mvc5缓存到硬盘驱动器?

  3. 3

    巨大的内存消耗(MVC 5 + EntityFramework 6.2.0)

  4. 4

    Tkinter错误的#坐标:预期0或4,得到5

  5. 5

    MVC模型未绑定,并且表单数据包含%5B0%5D

  6. 6

    ASP.NET 5 MVC6 Angular 2(Beta 0)-重复承诺

  7. 7

    在MVC 5中上传图片时,Request.Files.Count始终为0

  8. 8

    具有外部登录的MVC 5身份具有userLogins始终为0

  9. 9

    VB.NET从0舍入到4-> 0从5舍入到9-> 1

  10. 10

    有没有一种方法可以在内存中缓存Spring <mvc:resources>文件?

  11. 11

    VS2013 MVC 5模板:使用会话将声明从ExternalLoginCallback保存到ExternalLoginConfirmation是否错误

  12. 12

    是否发布了ASP.NET MVC 5?

  13. 13

    MVC 5是否存在控制器

  14. 14

    春季4 mvc +休眠+批注配置堆内存问题

  15. 15

    集成Spring MVC 4和Hibernate 5

  16. 16

    MVC4 EF5更改未保存到数据库

  17. 17

    消息响应发生错误代码为0xC0C01B4C和0xc0c016b5的僵尸

  18. 18

    “ 5.5 | 0 === 5”如何工作?

  19. 19

    BigDecimal舍入为0或5

  20. 20

    数字以0或5结尾吗?

  21. 21

    MVC 5:自定义AuthorizeAttribute和缓存

  22. 22

    缓存部分视图Asp.net MVC 5

  23. 23

    ASP.NET MVC 5数据缓存-行为异常

  24. 24

    清除MVC 6 / ASP.NET 5中的输出缓存

  25. 25

    每个用户和匿名来宾的MVC 5主页输出缓存

  26. 26

    如何在ASP.NET 5 MVC中访问缓存?

  27. 27

    为什么 int arr[]={0,3,2,4,5,6,7}; 给出错误和 int arr[7]={0,3,2,4,5,6,7}; 不是

  28. 28

    在什么编码中编码是西班牙语“ñ”eñe 0xa4,大写的eñe 0xa5?

  29. 29

    MVC“ UrlData [0]”

热门标签

归档