前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >再看PetStore

再看PetStore

作者头像
全栈程序员站长
发布2021-05-19 11:05:01
2780
发布2021-05-19 11:05:01
举报
文章被收录于专栏:全栈程序员必看

Petstore 很早以前看过了的,听说是什么学JAVA必看,时间长了都没什么印象了,今天再看一篇,觉得又学了不少东西。。看来好东西还是得经常看啊。。 下面对Petstore的代码做一个简单的分析和梳理,以便下次看的时候更快捷。。

我把它分四了个部分,其实还可以分的更细,不过大体先这样分,更细的在这四个下面再分好来(按包名):

1.domain POJO部分

2.persistence 数据持久层

3.service 对持久层数据的操作

4.struts 业务逻辑与前端数据显示

Petstore 数据持久层用了iBatis ,扭转控制用的是Struts

iBatis 可以进行复杂的SQL语句查询,很简单,轻量,感觉也非常的灵活

Struts 这个么,有什么好处不用多说,呵呵。。

下面就分别说说各个部分:

1.domain POJO部分  这部分其实就是VO,感觉没什么好说的,里面也有些东西,以后发现什么奇妙的再加!

2.persistence 数据持久层  这部分的东西就多了,分为:iface(接口定义将对数据执行哪些操作),sqlmapdao(具体对数据的操作,这里使用的是iBatis) ,这里最值得学习的是它的结构思想,这样的结构很容易把实现和接口的定义分离开来。  service层不关心具体的实现,只用调用接口,如果要换掉实现方式,只用替换sqlmapdao即可。

3.service 对持久层数据的操作

  1. public class AccountService {
  2. /* Constants */
  3. private static final AccountService instance = new AccountService();
  4. /* Private Fields */
  5. private DaoManager daoManager = DaoConfig.getDaomanager();
  6. private AccountDao accountDao;//这里就是第二部分中说的到接口
  7. /* Constructors */
  8. public AccountService() {
  9.     accountDao = (AccountDao) daoManager.getDao(AccountDao.class);//这里的调用得到具体的实现类
  10.   }
  11. /* Public Methods */
  12. public static AccountService getInstance() {
  13. return instance;
  14.   }
  15. /* ACCOUNT */
  16. public Account getAccount(String username) {
  17. return accountDao.getAccount(username);
  18.   }
  19. public Account getAccount(String username, String password) {
  20. return accountDao.getAccount(username, password);
  21.   }
  22. public void insertAccount(Account account) {
  23.     accountDao.insertAccount(account);
  24.   }
  25. public void updateAccount(Account account) {
  26.     accountDao.updateAccount(account);
  27.   }
  28. public List getUsernameList() {
  29. return accountDao.getUsernameList();
  30.   }
  31. }

从代码中可以看到,对数据的操作是不关心具体实现的,这样就降低了服务层与操作层的耦合性,便于以后对操作层做更改!

4.struts 业务逻辑与前端数据显示 这里的看点有ActionContext这个类,它把所有应用程序要传送的数据放在了5个Map中(ApplicationMap,SessionMap,RequestMap,ParameterMap,CookieMap),对数据进行了集中管理。 还有BeanAction,这个类运用了对象反射机制,一个execute方法负责了所有的扭转动作! 业务逻辑层(presentation包)继承了Struts的ActionForm类,调用service层搞供的方法进行相关的数据操作。

iBatis 在其中的运用 待续。。。

Struts 在其中的运用  待续。。。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/100536.html原文链接:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年5月6日 a,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档