锁定老帖子 主题:BS体系结构(二)a2之页面与数据层
精华帖 (0) :: 良好帖 (0) :: 新手帖 (7) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-01-01
最后修改:2010-01-01
因为直接在页面访问数据的系统基本上不存在了,所以直接从a2 页面与数据层开始说起.
这是我作的一个假设系统,系统只存在一个用户数据表,在页面上只使用登录,登出,查找等功能.uml如下:
数据层: 这是个基本的dao模式数据层, 缺少必须的接口分离,授权访问,Cache等能力.特点是只提供基本的数据访问 在properties或xml文件中保存模块类名信息, 这样,中央引擎不用保存相关模快信息, 方便扩展 所以在jsp中: 假设在系统中,用户可以随意增,删,查,改...当然这是不可能的 .. 并在它们之间建立编写相关的转发关系, add.jsp <%! Logger log = Logger.getLogger("XXX.jsp")%> <!--html code--> <% log.debug("show XXX.jsp page"); AppEngine app = AppEngine.getInstance(); User user = new User(); user.setUsername(request.getParameter("username")); ... UserDao dao = app.getModule("UserDao"); dao.add(user); request.getRequestDispatcher("index.jsp").farword(request,response); %>
扩展1:cache 如何把辛辛苦苦从数据库取出来的信息缓存下来呢? 因为我们可能会遇到大量相同的查询条件来,所以 缓存查询结果就成了一项很重要的开发内容了 看看Dao,一般有add,find,get,list等业务方法, 在其中,add,find,get与list是不相同的,随着数据库的不断被修改,list对象就会变的很不真实, 所以list得到的对象不应该被保存很长的时间, 而其他的单一元组的 获得方法则可以被保存很久, 这就存在了问题, 怎么解决 2中方法的不同缓存问题. uml:
在所有的find,get,等方法最前都执行一次查找缓存, 查找字符串 为: xxx.class().getName()+"method name" 然后在 所有查找结束前, 调用一次cache.put... 在相关的实现中, 根据配置 调用chooseCache选择 相关的缓存体系.... 缓存配置为:
<ehcache> ....
事实上,比如xyq.163.com的论坛系统中,帖子列表每次查询的时候 经常有第1 页列出的内容 在第2页 开头也列出 , 这就是使用了select缓存的原因
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
浏览 1692 次