这两天没日没夜的在忙.net的工作~~连写个代码更新个bolg都没时间,总算利用午觉时间研究了会java 爽啊~~~
下面就开始做业务层了~先从主页入手 因为主页简单嘛~~主要就设计了2个登陆(管理员和用户) ,1个注册 算起来一共用了3 个接口 本来2个就可以了 然后就是贴出这三个接口吧~~再讲讲遇到的问题
MainManageLogin(管理员登陆)
/**
* 管理员登陆接口 * * @author ConDey * */ public interface MainManageLogin { /** * 验证管理员是否合法 * * @param user * 登陆管理员 * @return true 管理员合法 false 管理员不合法 */ public boolean checkManage(User user); public SessionFactory getSessionFactory(); public void setSessionFactory(SessionFactory sessionFactory); public UserDao getUserDao(); public void setUserDao(UserDao userDao); }
MainUserLogin 用户登陆
/** * 普通用户登陆接口 * * @author ConDey * */ public interface MainUserLogin { /** * 验证用户是否合法 * * @param user * 登陆用户 * @return true 用户合法 false 用户不合法 */ public boolean checkUser(User user); public SessionFactory getSessionFactory(); public void setSessionFactory(SessionFactory sessionFactory); public UserDao getUserDao(); public void setUserDao(UserDao userDao); }
MainRegister 用户注册
/**
* 用户注册接口 * * @author ConDey * */ public interface MainRegister { /** * 检测用户名是否可用 * * @param userName * @return true 该用户名未被注册 false 已存在 不可用 */ public boolean CheckName(String userName); /** * 新用户注册 * * @param newUser * 新用户注册 * @return true 注册成功 false 注册失败 */ public boolean RegisterUser(User newUser); public SessionFactory getSessionFactory(); public void setSessionFactory(SessionFactory sessionFactory); public UserDao getUserDao(); public void setUserDao(UserDao userDao); }
下面说一说到最近想到的问题吧
1. 数据库隔离级别 因为用户名是不能重复的吧 所以这里涉及到了虚读的问题 有两种方案 悲观锁和乐观锁 因为持久层已经写好的缘故 乐观锁太麻烦了 但是悲观锁又太影响效率 不知道怎么办 我在处理spring声明式事务的时候,发现spring的事务能定义隔离级别 因为涉及到的问题 我用了最高等级的隔离级别,这样损失的并发性,所以,这个问题教会了我一个道理...设计是很重要的。
2. hibernateDaoSupport的问题 又是spring的问题 本来想使用hibernateDaoSupport的,但是自己又犹豫了起来,到底用不用呢,google了一下,发现很多人都有这个烦恼,google之后,又观察了下源代码,发现hibernateDaoSupport只是简单的封装了一下,自己完全可以舍弃模板,一方面方便管理,另一方面可扩展性也强一些,最后还是自己生成session吧。
3. 声明式事务 话说这个东西大部分人在使用,和编程式事务最大的不同就是声明式事务完全不需要自己管理,方便安全。进而还是使用了注解形式的声明式事务吧。
4. 最后一个,spring多配置文件的问题,网上找了很多资料,但是都没有亲自去试,过一段时间再把这个问题的解决方法贴出来吧。
5. 代码肯定有很多地方有不足或者错误,因为并没有实际运行过,所以并不能作为参考,只能算记录下我做系统的一个流程与思想吧。