博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Octopus系列之HttpCustom2.0模板引擎的处理,一个bug的分析
阅读量:6417 次
发布时间:2019-06-23

本文共 697 字,大约阅读时间需要 2 分钟。

实现的目标是:

1.实现手机和PC模板请求的区分;使得来自两种不同设备请求的时候,各自路由到不同的目录中去

2.保持只有一个引擎实例对象

 

最后发现一个bug就是,当我从PC访问时初始化了PC的目录,呈现了PC模板,但是再去手机访问时,发现还是PC的样子

原因:NV引擎的实例设置为了静态实例,当第一次请求来的时候NV实例的属性进行了初始化,那么在此后

该静态实例将作为所有实例对象的公共成员存在,模板目录都指向同一个所以就导致了上面的结果

NV的模板目录属性在第一次初始化完成之后,在后面就不能进行动态的修改了

在2.0进化到3.0的时候 还有一个 中间版本 2.5

我将这个bug做了一个案例

请注意下面这个代码,体会静态和 非静态的区别

/// <summary>

/// 静态的引擎 用于数据的展示处理
/// </summary>
private static readonly VelocityEngine viewEngine = new VelocityEngine();
//private VelocityEngine viewEngine = new VelocityEngine();

如果是静态的话 就会有上述这个问题

实例的话是正常的

如何只保持一个静态实例同时实现不同设备请求的区分呢?

看4.0版本

将目录的初始化放在上面的那个层级

下载文件:http://files.cnblogs.com/files/Sky-cloudless/Test.zip

转载于:https://www.cnblogs.com/Sky-cloudless/p/4377253.html

你可能感兴趣的文章
SpringMvc中两个Controller类之间传递参数的方法
查看>>
.NET Core微服务之路:基于Consul最少集群实现服务的注册与发现(二)
查看>>
【WP7】转:Windows Phone 7 开发 31 日谈 目录
查看>>
6. datasource - mysql【从零开始学Spring Boot】
查看>>
编写病毒程序取款700余万,华夏银行一技术处长被捕受审
查看>>
阿里成立达摩院做基础科研 这是一家被电商掩盖的科技公司
查看>>
iPhone X降价跌破天际,国内网友:不在乎!
查看>>
商贩被保安打死?警方:初步认定系其自身疾病所致
查看>>
澳洲网:中国留学生成“香饽饽” 受澳顶尖高校青睐
查看>>
鄱阳湖上的“高空杂技人”
查看>>
甘肃宕昌中药材“入方”饲料 “药香鸡”山外飘香助脱贫
查看>>
郑杨:上交所设立科创板工作正稳步推进 “沪伦通”年内启动
查看>>
苏索轰世界波 米兰2:0热那亚重返意甲前四
查看>>
中瑞创新产业中心在杭揭牌 千万补助推动科技创新交流
查看>>
辽宁经济走出最困难时期 GDP增速稳中有进
查看>>
程序员牛人专访0012期|陪伴是对开发最长情的信任
查看>>
芝加哥略影 邂逅芝加哥!
查看>>
体素科技:2018年,算法驱动下的医学影像分析进展
查看>>
算法:什么是LRU算法?
查看>>
Vue 折腾记 - (8) 写一个挺靠谱的多地区选择组件
查看>>