项目稍后会上传到 GitHub上面.
1. 业务分层问题
以前一直不理解为什么要分层,还分很多层次,比如dao、service、servlet、view等等之类的,也不理解MVC到底有什么用,自己写完这个项目才真正明白了。
dao
层主要就是定义数据访问对象,最上面的接口的定义应该有哪些操作,但是不提供实现,然后会有一个基础dao
的实现,这里成为BaseDAO
,之所以这么做,是因为dao
接口可以通过不同的方式实现,比如:可以自己写,可以用工具类(甚至这两大类的实现方法不同项目可能实现也不同)。所以才有了dao
接口和它的实现BaseDAO
的存在。
请求来了后,如果没有使用过滤器Filter
,那么会到达Servlet
,这个时候,我以前一直疑惑怎么不直接在Servlet
写所有的逻辑,非要搞一个Service
层,但是现在明白了,因为在实际的项目中,业务操作是非常复杂的,都写在Servlet
中会发生臃肿,也不符合代码解耦规则。在这个项目中,我是利用反射在doPost
方法中调用不同的方法,而相应的方法又会调用不同的Service
层类的方法,这样达到Servlet
和Service
的调用联系。
另外,可能有人有疑惑,什么是业务?(我自己初接触时,也有这个疑惑)
后来四处查找资料,…
然后就是所有用到的包的作用了。如下:
dao
包:dao.impl
包db
包- ``
- ``
- ``
- ``
- ``
- ``
- ``
- ``
最后总结
编程还是要多做项目才能深刻理解所学到的那些概念,因为简单学习的时候无法理解为什么需要这个?为什么要加个这个?为什么不这么做?…主要就是因为平时学习的时候做的都是小练习,没有碰到真正的项目,不理解项目的复杂,也没有做项目的思维,所以才会有这些疑惑。因此,后续,本人也打算先停下Java EE
后续学习,先在Github
上面找一些项目看看源码先,等非常熟练业务逻辑思维及思考方式后再深入学习其他的,应该会更好!