- 浏览: 103255 次
- 性别:
- 来自: 北京
博客专栏
-
自己动手写java 框架
浏览量:28748
最新评论
-
zh_harry:
线上demo已经上线http://www.sparrowzoo ...
高性能轻量级markdown 解析器java 版sparrow-markdown -
zh_harry:
sp42 写道演示地址 本地的? 代码 git clone 下 ...
自己动手写mvc框架SPARROW MVC -
sp42:
非常不错 赞一个
高性能轻量级markdown 解析器java 版sparrow-markdown -
sp42:
演示地址 本地的?
自己动手写mvc框架SPARROW MVC -
sp42:
我的框架也是用原生写,已弃坑。还是 MVVM 的爽,推荐 vu ...
SPARROW-JS 从0开始写 0依赖,原生JS框架
MVC-1
http://lizhizhang.iteye.com/blog/1912005
MVC-2
http://lizhizhang.iteye.com/blog/1913546
自己动手写MVC3,前两篇我们分析了MVC的基础,在这里大家对main函数有争论,接下来会有java多线程的文章,与大家分享。(这里会略带一些tomcat main函数的内容)。
第二篇介绍了为什么要用MVC以及MVC的概念,即什么是MVC。
通过以上的了解,我个人认为,对于开发者来讲,MVC的filter即我们在web.xml中配置的拦截器是不重要的,框架为我们写好了,我们做的事情就是配置一下就可以了,而我们更关注具体的业务逻辑和VIEW,而如果我们自己写一个MVC那么,我觉得关注点就是开发人员不关心的那部分。即filter。业务逻辑和VIEW要留给开发人员自己实现。
那么filter中具体要实现哪些功能呢?
1、action方法映射
2、拦截器
3、参数注入
4、模型驱动(模型参数注入)
5、路由跳转
6、action方法的执行
参考struts及spring mvc其实有两种实现方法,对比而言,spring mvc的方法更简单效率更高。
这里附参数注入代码
methodAccessor的思想是这样的
对于模型驱动而言,这里没有采用jdk反射或cglib字节码反射,而是生成一个代理类来变相反射(实际上是对象方法的直接调用)对于这部分思考有兴趣的朋友可以参考reflectasm。
其他代码可以在框架中下载
http://lizhizhang.iteye.com/blog/1896545
有什么意见或建意可以在这里拍砖。
MVC这部分比较简单,大家有什么好想法可以继续补充,接下来ORM....
我是这样考虑的,之前的疯子思考系统,如果你都看过的话,会感觉都是为这个框架的铺垫。
接下来是ORM
理论上从0讲起,以后会出框架的demo,和实践性项目。
个人感觉读了别人的代码,会把自己目标限制死。
中国人发明了一种计算工具,用了n年,甚至后来用它计算火箭升天,原子弹爆炸。它就是算盘。
西方人完全不参考这个工具,自己创造了一个计算工具,最初的时候,需要几十个人一起合作,用很多的点,才能计算,但经过不断改造,后来变的无所不能,这就是电子计算机
人啊,往往喜欢用一个极端去佐证另一个极端,读懂别人的代码,就能了解别人的想法和创意,这是基础,大部分是开发人员生存的工具,在此基础上做出自己的创新,也可以是微创新,别人已经造发了轮子,非常高效安全,你便便要重新造个轮子,那不是浪费生命吗?
站在巨人的肩膀上去思考创造,一定比闭门造车强。
是对的,我刚想回复这位同学,不知道怎么回复呢,你说得这个很对
突破传统的人才会有创新,陈规守旧的人才能守住文明,我们的观念是完全不同的,但不代表谁对谁错,
玩是吧
个人感觉读了别人的代码,会把自己目标限制死。
中国人发明了一种计算工具,用了n年,甚至后来用它计算火箭升天,原子弹爆炸。它就是算盘。
西方人完全不参考这个工具,自己创造了一个计算工具,最初的时候,需要几十个人一起合作,用很多的点,才能计算,但经过不断改造,后来变的无所不能,这就是电子计算机
人啊,往往喜欢用一个极端去佐证另一个极端,读懂别人的代码,就能了解别人的想法和创意,这是基础,大部分是开发人员生存的工具,在此基础上做出自己的创新,也可以是微创新,别人已经造发了轮子,非常高效安全,你便便要重新造个轮子,那不是浪费生命吗?
站在巨人的肩膀上去思考创造,一定比闭门造车强。
是对的,我刚想回复这位同学,不知道怎么回复呢,你说得这个很对
个人感觉读了别人的代码,会把自己目标限制死。
中国人发明了一种计算工具,用了n年,甚至后来用它计算火箭升天,原子弹爆炸。它就是算盘。
西方人完全不参考这个工具,自己创造了一个计算工具,最初的时候,需要几十个人一起合作,用很多的点,才能计算,但经过不断改造,后来变的无所不能,这就是电子计算机
人啊,往往喜欢用一个极端去佐证另一个极端,读懂别人的代码,就能了解别人的想法和创意,这是基础,大部分是开发人员生存的工具,在此基础上做出自己的创新,也可以是微创新,别人已经造发了轮子,非常高效安全,你便便要重新造个轮子,那不是浪费生命吗?
站在巨人的肩膀上去思考创造,一定比闭门造车强。
个人感觉读了别人的代码,会把自己目标限制死。
中国人发明了一种计算工具,用了n年,甚至后来用它计算火箭升天,原子弹爆炸。它就是算盘。
西方人完全不参考这个工具,自己创造了一个计算工具,最初的时候,需要几十个人一起合作,用很多的点,才能计算,但经过不断改造,后来变的无所不能,这就是电子计算机
很多人做过了,你做过吗?别人学会的东西,不代表你会了,自己做一个东西不是为了写代码,而是让自己掌握架构的能力
我个人觉得不管这个东西是否有人做过,或者做了多少次,但是不排除很多人都是对其有个简单的了解,看源码又觉得头痛,所以这样简单的分析是好的。个人见解
我也看了源码,个人感觉很头疼,应该是我本人的技术水平还很低,觉得框架里的逻辑都比较绕。
你的代码不绕是因为你考虑的因素太少了;学学基本可以;但如果也要成产品,考虑各种各样的因素;你的代码不绕才怪。
说的不错!!!!
补充一下:
MVC
很多人做过了,你做过吗?别人学会的东西,不代表你会了,自己做一个东西不是为了写代码,而是让自己掌握架构的能力
我个人觉得不管这个东西是否有人做过,或者做了多少次,但是不排除很多人都是对其有个简单的了解,看源码又觉得头痛,所以这样简单的分析是好的。个人见解
我也看了源码,个人感觉很头疼,应该是我本人的技术水平还很低,觉得框架里的逻辑都比较绕。
你的代码不绕是因为你考虑的因素太少了;学学基本可以;但如果也要成产品,考虑各种各样的因素;你的代码不绕才怪。
在学习,多谢指教
很多人做过了,你做过吗?别人学会的东西,不代表你会了,自己做一个东西不是为了写代码,而是让自己掌握架构的能力
我个人觉得不管这个东西是否有人做过,或者做了多少次,但是不排除很多人都是对其有个简单的了解,看源码又觉得头痛,所以这样简单的分析是好的。个人见解
我也看了源码,个人感觉很头疼,应该是我本人的技术水平还很低,觉得框架里的逻辑都比较绕。
你的代码不绕是因为你考虑的因素太少了;学学基本可以;但如果也要成产品,考虑各种各样的因素;你的代码不绕才怪。
你这玩意怎么 玩的,好神奇啊
同求咋玩的啊 有点神奇!
如果从MVC的实现角度来看,这确实是最简单的MVC实现了。不过,看楼主的意思,估计是想把MVC的东西写一遍,同时把一些框架都有的技术也整合到一起,更多是一种示例来理解。但是建议楼主在示例编写时,最好尽可能用最简单的方式去实现,不要过多的考虑旁的,否则这个教程就没完没了。
这是MVC的最后一篇了,大家感兴趣可以看我框架源码,非常简单。有什么好的建议请到回复,谢谢!
http://lizhizhang.iteye.com/blog/1896545
很多人做过了,你做过吗?别人学会的东西,不代表你会了,自己做一个东西不是为了写代码,而是让自己掌握架构的能力
我个人觉得不管这个东西是否有人做过,或者做了多少次,但是不排除很多人都是对其有个简单的了解,看源码又觉得头痛,所以这样简单的分析是好的。个人见解
我也看了源码,个人感觉很头疼,应该是我本人的技术水平还很低,觉得框架里的逻辑都比较绕。
http://lizhizhang.iteye.com/blog/1912005
MVC-2
http://lizhizhang.iteye.com/blog/1913546
自己动手写MVC3,前两篇我们分析了MVC的基础,在这里大家对main函数有争论,接下来会有java多线程的文章,与大家分享。(这里会略带一些tomcat main函数的内容)。
第二篇介绍了为什么要用MVC以及MVC的概念,即什么是MVC。
通过以上的了解,我个人认为,对于开发者来讲,MVC的filter即我们在web.xml中配置的拦截器是不重要的,框架为我们写好了,我们做的事情就是配置一下就可以了,而我们更关注具体的业务逻辑和VIEW,而如果我们自己写一个MVC那么,我觉得关注点就是开发人员不关心的那部分。即filter。业务逻辑和VIEW要留给开发人员自己实现。
那么filter中具体要实现哪些功能呢?
1、action方法映射
2、拦截器
3、参数注入
4、模型驱动(模型参数注入)
5、路由跳转
6、action方法的执行
参考struts及spring mvc其实有两种实现方法,对比而言,spring mvc的方法更简单效率更高。
这里附参数注入代码
private Object[] actionIoc(ServletRequest request, ActionEntity actionEntity) { // 参数名称列表 List<String> parameterList = actionEntity.getParameterNameList(); Class<?>[] parameterClass = actionEntity.getMethod() .getParameterTypes(); BeanFactory beanFactory = BeanFactory.getInstance(); // 参数列表 Object[] args = new Object[parameterList.size()]; for (int i = 0; i < parameterList.size(); i++) { String parameterName = parameterList.get(i); // 如果是基本数据类型 if (parameterClass[i].equals(String.class)) { args[i] = request.getParameter(parameterName); } else { Object entity = null; try { entity = parameterClass[i].newInstance(); } catch (Exception e) { Log.getInstance().error(e); return null; } MethodAccessor methodAccessor = beanFactory .getProxyBean(parameterClass[i].getSimpleName()); Method[] methods = parameterClass[i].getMethods(); for (Method method : methods) { if (method.getName().startsWith("set")) { String parameterName4Request = parameterName + "." + StringUtil.setFirstByteLowerCase(method .getName().substring(3)); methodAccessor.set(entity, method.getName(), request.getParameter(parameterName4Request)); } } args[i] = entity; } } return args; }
methodAccessor的思想是这样的
对于模型驱动而言,这里没有采用jdk反射或cglib字节码反射,而是生成一个代理类来变相反射(实际上是对象方法的直接调用)对于这部分思考有兴趣的朋友可以参考reflectasm。
其他代码可以在框架中下载
http://lizhizhang.iteye.com/blog/1896545
有什么意见或建意可以在这里拍砖。
MVC这部分比较简单,大家有什么好想法可以继续补充,接下来ORM....
评论
31 楼
zh_harry
2013-07-31
freezingsky 写道
博主,我刚才突发兴趣下载了你自己写的MVC框架。同时也花了十多分钟看了一下,发现代码和整个架构上感觉很是轻量,而且思路很好。我在想,你是否能跟着你现在的《疯子思考》系列,最后把自己的框架做一个详细的解说,以及各个部分划分的思路。这部分我想,意义更为重大。
我是这样考虑的,之前的疯子思考系统,如果你都看过的话,会感觉都是为这个框架的铺垫。
接下来是ORM
理论上从0讲起,以后会出框架的demo,和实践性项目。
30 楼
freezingsky
2013-07-31
博主,我刚才突发兴趣下载了你自己写的MVC框架。同时也花了十多分钟看了一下,发现代码和整个架构上感觉很是轻量,而且思路很好。我在想,你是否能跟着你现在的《疯子思考》系列,最后把自己的框架做一个详细的解说,以及各个部分划分的思路。这部分我想,意义更为重大。
29 楼
alvin198761
2013-07-31
zh_harry 写道
foible 写道
alvin198761 写道
tedeum 写道
我觉在写之前不要考虑太多的技术,什么action方法映射
2、拦截器
3、参数注入
4、模型驱动(模型参数注入)
5、路由跳转
6、action方法的执行,
MVC是什么?目标是什么先考虑清楚,因为我觉得不用上面这些东西也可能是MVC,先考虑技术这些东西就把目标限定死了,那么你写的这个MVC就没有超越别人的东西,还不如去读别人的代码,参与相关开源项目好一些。
2、拦截器
3、参数注入
4、模型驱动(模型参数注入)
5、路由跳转
6、action方法的执行,
MVC是什么?目标是什么先考虑清楚,因为我觉得不用上面这些东西也可能是MVC,先考虑技术这些东西就把目标限定死了,那么你写的这个MVC就没有超越别人的东西,还不如去读别人的代码,参与相关开源项目好一些。
个人感觉读了别人的代码,会把自己目标限制死。
中国人发明了一种计算工具,用了n年,甚至后来用它计算火箭升天,原子弹爆炸。它就是算盘。
西方人完全不参考这个工具,自己创造了一个计算工具,最初的时候,需要几十个人一起合作,用很多的点,才能计算,但经过不断改造,后来变的无所不能,这就是电子计算机
人啊,往往喜欢用一个极端去佐证另一个极端,读懂别人的代码,就能了解别人的想法和创意,这是基础,大部分是开发人员生存的工具,在此基础上做出自己的创新,也可以是微创新,别人已经造发了轮子,非常高效安全,你便便要重新造个轮子,那不是浪费生命吗?
站在巨人的肩膀上去思考创造,一定比闭门造车强。
是对的,我刚想回复这位同学,不知道怎么回复呢,你说得这个很对
突破传统的人才会有创新,陈规守旧的人才能守住文明,我们的观念是完全不同的,但不代表谁对谁错,
28 楼
zh_harry
2013-07-31
大家有真心觉得文章有用的请顶上来,谢谢了
27 楼
zaq369cde
2013-07-31
ฌููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููู็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็ ฏ๎๎๎๎๎๎๎๎๎ ๎๎๎๎๎๎ด้้้้้็็็็็้้้้็็็็็ฏ๎๎๎๎๎๎๎๎ ด้้้้้็ ฌููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููู
26 楼
zh_harry
2013-07-30
笨蕉xx 写道
ฌููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููู็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็ ฏ๎๎๎๎๎๎๎๎๎ ๎๎๎๎๎๎ด้้้้้็็็็็้้้้็็็็็ฏ๎๎๎๎๎๎๎๎ ด้้้้้็ ฌููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููู
玩是吧
25 楼
笨蕉xx
2013-07-30
ฌููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููู็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็ ฏ๎๎๎๎๎๎๎๎๎ ๎๎๎๎๎๎ด้้้้้็็็็็้้้้็็็็็ฏ๎๎๎๎๎๎๎๎ ด้้้้้็ ฌููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููู
24 楼
zh_harry
2013-07-30
foible 写道
alvin198761 写道
tedeum 写道
我觉在写之前不要考虑太多的技术,什么action方法映射
2、拦截器
3、参数注入
4、模型驱动(模型参数注入)
5、路由跳转
6、action方法的执行,
MVC是什么?目标是什么先考虑清楚,因为我觉得不用上面这些东西也可能是MVC,先考虑技术这些东西就把目标限定死了,那么你写的这个MVC就没有超越别人的东西,还不如去读别人的代码,参与相关开源项目好一些。
2、拦截器
3、参数注入
4、模型驱动(模型参数注入)
5、路由跳转
6、action方法的执行,
MVC是什么?目标是什么先考虑清楚,因为我觉得不用上面这些东西也可能是MVC,先考虑技术这些东西就把目标限定死了,那么你写的这个MVC就没有超越别人的东西,还不如去读别人的代码,参与相关开源项目好一些。
个人感觉读了别人的代码,会把自己目标限制死。
中国人发明了一种计算工具,用了n年,甚至后来用它计算火箭升天,原子弹爆炸。它就是算盘。
西方人完全不参考这个工具,自己创造了一个计算工具,最初的时候,需要几十个人一起合作,用很多的点,才能计算,但经过不断改造,后来变的无所不能,这就是电子计算机
人啊,往往喜欢用一个极端去佐证另一个极端,读懂别人的代码,就能了解别人的想法和创意,这是基础,大部分是开发人员生存的工具,在此基础上做出自己的创新,也可以是微创新,别人已经造发了轮子,非常高效安全,你便便要重新造个轮子,那不是浪费生命吗?
站在巨人的肩膀上去思考创造,一定比闭门造车强。
是对的,我刚想回复这位同学,不知道怎么回复呢,你说得这个很对
23 楼
foible
2013-07-30
alvin198761 写道
tedeum 写道
我觉在写之前不要考虑太多的技术,什么action方法映射
2、拦截器
3、参数注入
4、模型驱动(模型参数注入)
5、路由跳转
6、action方法的执行,
MVC是什么?目标是什么先考虑清楚,因为我觉得不用上面这些东西也可能是MVC,先考虑技术这些东西就把目标限定死了,那么你写的这个MVC就没有超越别人的东西,还不如去读别人的代码,参与相关开源项目好一些。
2、拦截器
3、参数注入
4、模型驱动(模型参数注入)
5、路由跳转
6、action方法的执行,
MVC是什么?目标是什么先考虑清楚,因为我觉得不用上面这些东西也可能是MVC,先考虑技术这些东西就把目标限定死了,那么你写的这个MVC就没有超越别人的东西,还不如去读别人的代码,参与相关开源项目好一些。
个人感觉读了别人的代码,会把自己目标限制死。
中国人发明了一种计算工具,用了n年,甚至后来用它计算火箭升天,原子弹爆炸。它就是算盘。
西方人完全不参考这个工具,自己创造了一个计算工具,最初的时候,需要几十个人一起合作,用很多的点,才能计算,但经过不断改造,后来变的无所不能,这就是电子计算机
人啊,往往喜欢用一个极端去佐证另一个极端,读懂别人的代码,就能了解别人的想法和创意,这是基础,大部分是开发人员生存的工具,在此基础上做出自己的创新,也可以是微创新,别人已经造发了轮子,非常高效安全,你便便要重新造个轮子,那不是浪费生命吗?
站在巨人的肩膀上去思考创造,一定比闭门造车强。
22 楼
alvin198761
2013-07-30
tedeum 写道
我觉在写之前不要考虑太多的技术,什么action方法映射
2、拦截器
3、参数注入
4、模型驱动(模型参数注入)
5、路由跳转
6、action方法的执行,
MVC是什么?目标是什么先考虑清楚,因为我觉得不用上面这些东西也可能是MVC,先考虑技术这些东西就把目标限定死了,那么你写的这个MVC就没有超越别人的东西,还不如去读别人的代码,参与相关开源项目好一些。
2、拦截器
3、参数注入
4、模型驱动(模型参数注入)
5、路由跳转
6、action方法的执行,
MVC是什么?目标是什么先考虑清楚,因为我觉得不用上面这些东西也可能是MVC,先考虑技术这些东西就把目标限定死了,那么你写的这个MVC就没有超越别人的东西,还不如去读别人的代码,参与相关开源项目好一些。
个人感觉读了别人的代码,会把自己目标限制死。
中国人发明了一种计算工具,用了n年,甚至后来用它计算火箭升天,原子弹爆炸。它就是算盘。
西方人完全不参考这个工具,自己创造了一个计算工具,最初的时候,需要几十个人一起合作,用很多的点,才能计算,但经过不断改造,后来变的无所不能,这就是电子计算机
21 楼
zh_harry
2013-07-30
http://lizhizhang.iteye.com/blog/1915601一篇关于log4j的文章,大家看一下
20 楼
gujian123456
2013-07-30
heroying 写道
zh_harry 写道
zhoujiangzi 写道
alvin198761 写道
foible 写道
我个人觉得没有意义了,5年前很多人都做过了,真不如读别人的源码或参与相关开源项目好些。
罗列下5年前做的:
1、在web.xml定义监听器,负责tomcat启动后的框架数据加载
2、定义统一的映射+不同的id参数,用于请求和响应,及权限方面的判断
3、定义抽象类,继承httpservlet,定义处理请求和跳转方法
4、所以开发者定义的类继承抽象类,实现处理请求和跳转方法。
最基本MVC搞定。
访问方式:mvc?id=1; mvc?id=2,根据定义的1,2对应的处理类路径反射和跳转页面.
罗列下5年前做的:
1、在web.xml定义监听器,负责tomcat启动后的框架数据加载
2、定义统一的映射+不同的id参数,用于请求和响应,及权限方面的判断
3、定义抽象类,继承httpservlet,定义处理请求和跳转方法
4、所以开发者定义的类继承抽象类,实现处理请求和跳转方法。
最基本MVC搞定。
访问方式:mvc?id=1; mvc?id=2,根据定义的1,2对应的处理类路径反射和跳转页面.
很多人做过了,你做过吗?别人学会的东西,不代表你会了,自己做一个东西不是为了写代码,而是让自己掌握架构的能力
我个人觉得不管这个东西是否有人做过,或者做了多少次,但是不排除很多人都是对其有个简单的了解,看源码又觉得头痛,所以这样简单的分析是好的。个人见解
我也看了源码,个人感觉很头疼,应该是我本人的技术水平还很低,觉得框架里的逻辑都比较绕。
你的代码不绕是因为你考虑的因素太少了;学学基本可以;但如果也要成产品,考虑各种各样的因素;你的代码不绕才怪。
说的不错!!!!
补充一下:
MVC
19 楼
zh_harry
2013-07-30
heroying 写道
zh_harry 写道
zhoujiangzi 写道
alvin198761 写道
foible 写道
我个人觉得没有意义了,5年前很多人都做过了,真不如读别人的源码或参与相关开源项目好些。
罗列下5年前做的:
1、在web.xml定义监听器,负责tomcat启动后的框架数据加载
2、定义统一的映射+不同的id参数,用于请求和响应,及权限方面的判断
3、定义抽象类,继承httpservlet,定义处理请求和跳转方法
4、所以开发者定义的类继承抽象类,实现处理请求和跳转方法。
最基本MVC搞定。
访问方式:mvc?id=1; mvc?id=2,根据定义的1,2对应的处理类路径反射和跳转页面.
罗列下5年前做的:
1、在web.xml定义监听器,负责tomcat启动后的框架数据加载
2、定义统一的映射+不同的id参数,用于请求和响应,及权限方面的判断
3、定义抽象类,继承httpservlet,定义处理请求和跳转方法
4、所以开发者定义的类继承抽象类,实现处理请求和跳转方法。
最基本MVC搞定。
访问方式:mvc?id=1; mvc?id=2,根据定义的1,2对应的处理类路径反射和跳转页面.
很多人做过了,你做过吗?别人学会的东西,不代表你会了,自己做一个东西不是为了写代码,而是让自己掌握架构的能力
我个人觉得不管这个东西是否有人做过,或者做了多少次,但是不排除很多人都是对其有个简单的了解,看源码又觉得头痛,所以这样简单的分析是好的。个人见解
我也看了源码,个人感觉很头疼,应该是我本人的技术水平还很低,觉得框架里的逻辑都比较绕。
你的代码不绕是因为你考虑的因素太少了;学学基本可以;但如果也要成产品,考虑各种各样的因素;你的代码不绕才怪。
在学习,多谢指教
18 楼
heroying
2013-07-30
zh_harry 写道
zhoujiangzi 写道
alvin198761 写道
foible 写道
我个人觉得没有意义了,5年前很多人都做过了,真不如读别人的源码或参与相关开源项目好些。
罗列下5年前做的:
1、在web.xml定义监听器,负责tomcat启动后的框架数据加载
2、定义统一的映射+不同的id参数,用于请求和响应,及权限方面的判断
3、定义抽象类,继承httpservlet,定义处理请求和跳转方法
4、所以开发者定义的类继承抽象类,实现处理请求和跳转方法。
最基本MVC搞定。
访问方式:mvc?id=1; mvc?id=2,根据定义的1,2对应的处理类路径反射和跳转页面.
罗列下5年前做的:
1、在web.xml定义监听器,负责tomcat启动后的框架数据加载
2、定义统一的映射+不同的id参数,用于请求和响应,及权限方面的判断
3、定义抽象类,继承httpservlet,定义处理请求和跳转方法
4、所以开发者定义的类继承抽象类,实现处理请求和跳转方法。
最基本MVC搞定。
访问方式:mvc?id=1; mvc?id=2,根据定义的1,2对应的处理类路径反射和跳转页面.
很多人做过了,你做过吗?别人学会的东西,不代表你会了,自己做一个东西不是为了写代码,而是让自己掌握架构的能力
我个人觉得不管这个东西是否有人做过,或者做了多少次,但是不排除很多人都是对其有个简单的了解,看源码又觉得头痛,所以这样简单的分析是好的。个人见解
我也看了源码,个人感觉很头疼,应该是我本人的技术水平还很低,觉得框架里的逻辑都比较绕。
你的代码不绕是因为你考虑的因素太少了;学学基本可以;但如果也要成产品,考虑各种各样的因素;你的代码不绕才怪。
17 楼
zh_harry
2013-07-30
http://vb2005xu.iteye.com/blog/849125
兄弟,我看了,咱俩臭味相投
vb2005xu 写道
此处贴一个几年前我关于这个想法的一个帖子 http://vb2005xu.iteye.com/blog/849125 呵呵
兄弟,我看了,咱俩臭味相投
16 楼
vb2005xu
2013-07-30
此处贴一个几年前我关于这个想法的一个帖子 http://vb2005xu.iteye.com/blog/849125 呵呵
15 楼
vb2005xu
2013-07-30
支持下 对个人而言 搞这个东西对理解框架结构会理解的够深,我也是这么过来的.建议lz在一定时刻可以阅读spring mvc的源码 再回过头来看你自己的,重复2次之后以后再接触其它的mvc框架就相当的轻松了 个人之见哈
14 楼
lian
2013-07-30
zh_harry 写道
bevis.cn 写道
ฌููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููู็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็ ฏ๎๎๎๎๎๎๎๎๎ ๎๎๎๎๎๎ด้้้้้็็็็็้้้้็็็็็ฏ๎๎๎๎๎๎๎๎ ด้้้้้็ ฌููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููููู
你这玩意怎么 玩的,好神奇啊
同求咋玩的啊 有点神奇!
13 楼
zh_harry
2013-07-30
freezingsky 写道
foible 写道
我个人觉得没有意义了,5年前很多人都做过了,真不如读别人的源码或参与相关开源项目好些。
罗列下5年前做的:
1、在web.xml定义监听器,负责tomcat启动后的框架数据加载
2、定义统一的映射+不同的id参数,用于请求和响应,及权限方面的判断
3、定义抽象类,继承httpservlet,定义处理请求和跳转方法
4、所以开发者定义的类继承抽象类,实现处理请求和跳转方法。
最基本MVC搞定。
访问方式:mvc?id=1; mvc?id=2,根据定义的1,2对应的处理类路径反射和跳转页面.
罗列下5年前做的:
1、在web.xml定义监听器,负责tomcat启动后的框架数据加载
2、定义统一的映射+不同的id参数,用于请求和响应,及权限方面的判断
3、定义抽象类,继承httpservlet,定义处理请求和跳转方法
4、所以开发者定义的类继承抽象类,实现处理请求和跳转方法。
最基本MVC搞定。
访问方式:mvc?id=1; mvc?id=2,根据定义的1,2对应的处理类路径反射和跳转页面.
如果从MVC的实现角度来看,这确实是最简单的MVC实现了。不过,看楼主的意思,估计是想把MVC的东西写一遍,同时把一些框架都有的技术也整合到一起,更多是一种示例来理解。但是建议楼主在示例编写时,最好尽可能用最简单的方式去实现,不要过多的考虑旁的,否则这个教程就没完没了。
这是MVC的最后一篇了,大家感兴趣可以看我框架源码,非常简单。有什么好的建议请到回复,谢谢!
http://lizhizhang.iteye.com/blog/1896545
12 楼
zh_harry
2013-07-30
zhoujiangzi 写道
alvin198761 写道
foible 写道
我个人觉得没有意义了,5年前很多人都做过了,真不如读别人的源码或参与相关开源项目好些。
罗列下5年前做的:
1、在web.xml定义监听器,负责tomcat启动后的框架数据加载
2、定义统一的映射+不同的id参数,用于请求和响应,及权限方面的判断
3、定义抽象类,继承httpservlet,定义处理请求和跳转方法
4、所以开发者定义的类继承抽象类,实现处理请求和跳转方法。
最基本MVC搞定。
访问方式:mvc?id=1; mvc?id=2,根据定义的1,2对应的处理类路径反射和跳转页面.
罗列下5年前做的:
1、在web.xml定义监听器,负责tomcat启动后的框架数据加载
2、定义统一的映射+不同的id参数,用于请求和响应,及权限方面的判断
3、定义抽象类,继承httpservlet,定义处理请求和跳转方法
4、所以开发者定义的类继承抽象类,实现处理请求和跳转方法。
最基本MVC搞定。
访问方式:mvc?id=1; mvc?id=2,根据定义的1,2对应的处理类路径反射和跳转页面.
很多人做过了,你做过吗?别人学会的东西,不代表你会了,自己做一个东西不是为了写代码,而是让自己掌握架构的能力
我个人觉得不管这个东西是否有人做过,或者做了多少次,但是不排除很多人都是对其有个简单的了解,看源码又觉得头痛,所以这样简单的分析是好的。个人见解
我也看了源码,个人感觉很头疼,应该是我本人的技术水平还很低,觉得框架里的逻辑都比较绕。
发表评论
-
零基础小白从0到1的spring cloud alibaba 全家桶项目
2022-10-18 02:15 2577零基础暖心计划课程内容 https://spar ... -
sparrow 支持JDK依赖注入功能
2022-08-02 15:28 2033麻雀虽小,但五脏俱全 sparrow 源自中国俗语 ... -
Sparrow js 框架开源上线
2019-06-29 21:28 1087sparraw 框架js 版开源上线 www.sparr ... -
SPARROW-JS 从0开始写 0依赖,原生JS框架
2018-03-15 19:52 1704SPARROW-JS 前端JS框架变幻莫测,但原生js 接口 ... -
Sparrow算法篇 从日期取交集到思维模式-2
2018-03-09 18:04 1597接上一篇 Sparrow算法篇 从日期取交集到思维模式 ... -
高性能轻量级markdown 解析器java 版sparrow-markdown
2018-02-24 17:17 4427动机 markdown 已成为网络博客最主要的排版格式。 ... -
Sparrow 算法篇 由日期取交集到思维模式
2018-02-06 23:46 1805日期交集 早在13年左右的时侯,做过一个系统,功能很简单 ... -
自己动手写mvc框架SPARROW MVC
2018-02-01 22:31 1629SPARROW-MVC SPARROW-MVC 是SPA ... -
REDIS客户端封装实践2
2018-01-30 13:32 1148接上一篇 [REDIS客户端封装意淫](https:// ... -
SPARROW 框架redis客户端封装实践
2018-01-25 21:41 1175redis 本身有客户端,先抛出来一个问题?为什么要对red ... -
SPARROW架构介绍
2018-01-24 22:02 1333sparrow 框架设计最大化解耦,理论上业务层只依赖SPA ... -
Sparrow 框架设计哲学
2018-01-24 13:21 1295sparrow 框架 麻雀虽小,但五脏俱全 为什么要写这 ... -
tomcat 日志那点事
2017-07-15 14:06 830tomcat 启动时使用的是java.util.logger ... -
疯子在思考之-异常与return 的差别
2013-10-14 14:46 1457程序异常会中断程序执行,所有所有的异常都需要捕获,否则会 ... -
MANIFEST.MF 文件内容完全详解
2013-09-02 14:49 1347打开Java的JAR文件我们经常可以看到文件中包含着一个ME ... -
疯子奉献-一个符号惹的祸
2013-08-30 14:14 1803程序员是严谨的,但是再严谨也容易出问题,这就叫做bug。 我 ... -
疯子在思考之-从日志想到的软件架构
2013-08-28 18:57 1964谈到架构是一个很泛的话题 这里我们讨论一下兼容性与扩展性 ... -
疯子在思考之java 线程的那点事儿
2013-08-14 15:13 3333很长时间没写博客了,最近事情比较多 之前在文章中提到过tomc ... -
linux 自动重启tomcat 脚本
2013-08-12 17:59 3030Tomcat作为开源的服务器 ... -
tomcat 优化及错误All threads (10) are currently busy, waiting. Increase maxThreads错误
2013-08-12 17:42 16191. 如何加大tomcat连接数 在tomcat配置文件se ...
相关推荐
在.NET(MVC)框架下,我们可以利用ASP.NET MVC库来构建这些功能模块。预订管理允许用户在线查询房间空闲情况并进行预订;房间管理涉及房间类型、状态、价格的设定和更新;客户管理则涵盖了入住、退房、客户信息的存储...
《天才在左疯子在右》的基本介绍和推荐理由[定义].pdf
疯子手机apk卸载工具疯子手机apk卸载工具疯子手机apk卸载工具疯子手机apk卸载工具疯子手机apk卸载工具疯子手机apk卸载工具疯子手机apk卸载工具疯子手机apk卸载工具疯子手机apk卸载工具疯子手机apk卸载工具疯子手机...
【疯子CMS-轻简小说系统】是一款专为小说网站设计的内容管理系统(CMS),它以简洁易用为核心理念,旨在让网站管理员能够快速搭建和管理自己的小说平台,无需复杂的操作和大量的技术背景。这款系统可能包含以下关键...
首先,疯子苹果助手的特性之一是其海量的正版软件和游戏资源。用户可以在该平台上找到众多官方认证的应用,涵盖娱乐、教育、工具、社交等多个领域,满足不同用户的个性化需求。每日更新的新增应用确保了用户始终能够...
在当今数字化时代,个人信息安全和网络隐私保护是广大网民最为关注的问题之一。尤其是对企业或个人电脑上的浏览器而言,防止未经授权的访问和修改就显得尤为重要。在众多浏览器中,尽管Internet Explorer(IE)已...
《天才在左,疯子在右》这本书以其独特的视角探讨了人类思维的边界,通过对话精神病人的经历,引发读者对自我认知和世界本质的深度思考。以下是对书中的几个核心观点的解读: 首先,作者通过描述吃苹果的过程,强调...
疯子助手是一款为苹果设备用户提供应用下载和游戏破解的软件,疯子助手里提供了海量不闪退应用和近千款极高有效度的ios热门游戏存档。 疯子助手完美支持不越狱的iPhone和iPad等iOS设备,是一款下载安装和管理软件、...
【描述】: 该文摘通过讲述一个看似疯子的人物,揭示了社会中某些不正常的现象,引发对正常与疯狂界限的思考。 【标签】: 资料 【正文】: 这篇文摘通过一个特殊的角色——"疯子",探讨了社会规范和个人行为之间的...
电脑疯子GHOST-WIN7-SP1旗舰版(64位).doc编程资料
《天才在左,疯子在右》这本书以其独特的视角揭示了人类思维的多样性和深度,让人重新审视何为正常,何为异常。书中的故事和人物让我们意识到,那些被我们视为“疯狂”的想法,也许正是创新和突破的源泉。以下是对书...
在网页抓取领域,"疯子页面采集器"凭借其易用性和强大的功能,成为众多用户的首选。它能够对未加密的网页站点进行有效的数据采集,这意味着用户可以从中获取到公开的网页内容,而不涉及网站的后台或私密数据。这种...
在MVC模式下,C#被用来创建动态、数据驱动的Web应用程序,其中模型负责业务逻辑,视图负责展示,控制器处理用户请求并协调模型和视图。 MVC(Model-View-Controller)是一种设计模式,旨在分离应用程序的业务逻辑、...
疯子ftp上传工具传送数据到服务器 ftp上传工具 ftp服务器上传 ftp客户端 ftp服务器客户端 2.0新功能 密码加密 在线更新 更新缓存错误
在这个"疯子ftp上传工具源码传送数据到服务器源码版.rar"压缩包中,包含的源码可能是一个实现了FTP协议的上传工具,允许用户将本地文件上传至远程服务器。 FTP上传工具的核心功能通常包括以下部分: 1. **连接建立...
在历史的长河中,常常有那么一些人物,他们或因独特的个性,或因与社会主流格格不入的行为而被人误解,甚至被冠以“疯子”的标签。然而,当我们在历史的尘埃中细细打捞这些人物的故事时,我们往往能够发现,这些所谓...
"推箱子疯子版"是一款基于经典益智游戏"推箱子"的升级版本,它在传统的游戏基础上增加了新的挑战和元素,旨在为玩家提供更为刺激和烧脑的游戏体验。在这个疯狂的版本中,关卡设计可能更为复杂,规则可能有所调整,...
【DELPHI 的仿QQ疯子 不完全】项目是一个基于DELPHI开发的软件,旨在模仿QQ疯子的部分特性。...通过不断学习和实践,开发者可以逐步提升自己的技能,完善这个不完全的仿QQ疯子应用,使其更加接近原版的功能和体验。
在数据扫描方面,疯子扫描器不仅能够读取文件内容,还可能包括文件属性、元数据和隐藏文件。这对于数据安全和隐私保护来说具有重要意义,因为许多敏感信息可能隐藏在这些不显眼的地方。同时,它可以帮助用户识别网络...
【疯子页面采集器教程】 疯子页面采集器是一款强大的网页数据抓取工具,它能够帮助用户快速、高效地从互联网上抓取所需信息。在本教程中,我们将深入探讨这款采集器的功能、使用方法以及如何利用它进行网页数据的...