Coffee
Coffee
从接触Spring 到现在已经差不多2年多了,期间用它做过几个项目,从个人使用角度来说,Spring无疑是非常的成熟和方便的,但是知道怎么用,却不知道原理是码农和攻城师的区别,现在准备自己动手编写一个类似Spring的框架,当然它是非常小的,只包括一些基本的特性,但是这些基本特性已经满足一个项目的需求了。问问自己是否使用了很多Spring的功能? 无疑就是Hibernate+事务处理+JDBC+IoC+MVC+一些额外的小插件(上传,视图)+以及陌生的AOP了,这些基本的功能都会在Coffee项目中被实现。
最终Coffee的特性如下:
1. @Autowired, @Component(basic) , @Transaction(事务), @RequestMapping(),@RequestParam, @Vaild (MVC) 的注解支持
2. 基于类的配置方式, 不采用XML的配置方式,而是使用基于类定义的方式,这有助于重构软件, 而且代码量刷的一下减小了很多.
3. IoC功能和Spring基本类似,Bean的生命周期和Spring一致(除了afterProperty(),感觉init已经完成了afterProperty的功能,不必重复),
3. 数据层会兼容Hibernate和JDBC两种模式,以及一个数据源,和事务管理
4. 支持AOP编程,应该实现会比较简陋。
5. MVC支持基本参数验证,参数自动注入,URL映射, 大体功能和Spring 3.x的注解配置类似,砍掉了restful的功能(实现起来比较麻烦, 神马/path/{a}/{b}, 如果有时间的话,可以实现,尽量先把整体的框架搭出来), 而视图这块, 个人认为完全采用JSON渲染的方式,把jsp的功能可以移交给浏览器来处理,比如说使用artTemplate之类的模版工具都是不错的选择,所以视图解析就直接为把一个Object转换为JSON报文交给浏览器了,基本思想为:MVC为功能点,浏览器为数据渲染点。
6.MVC也支持表单验证,当然不会是JSR系列的,但是会尽量的模仿JSR规范来编写。
上述的特性应该可以支撑起一个基本的网站的后端了,虽然有点简陋,但是大家平时开发的时候,应该也只用到这么多功能把。忘记了 , 还有文件上传,这个就扔到最后面把。
Coffee项目已经基本实现了IoC功能(一个月前,干的事情,现在直接拿过来,当然代码还需要重构,变得更加精简点),代码地址如下:
https://github.com/y2k0103/coffee.git
Coffee的更多相关文章
- 支付宝WAP支付接口开发(Node/Coffee语言)
此博客不更新很久了, 更新的文档在这, 有兴趣到这里围观: http://neutra.github.io/2013/%E6%94%AF%E4%BB%98%E5%AE%9DWAP%E6%94%AF%E ...
- nssm在windows服务器上部署nodejs,coffee启动方式
本想用forever / pm2 来部署nodejs, 百度后发现只能在Linux系统上使用,window上没法使用,兜一圈后又转nssm了.... 在Linux上,可以轻松的使用forever或者p ...
- Coffee Script 笔记 1
安装node 虽然官网提供了单文件bin的版本 但是并不知道怎么安装npm 于是乎还是得安装msi (坑 当使用 coffee -w -c . 监视文件改变 即时编译的时候会 提示 Error: T ...
- 【Mood-20】滴滤咖啡做法 IT工程师加班必备 更健康的coffee 项目经理加班密鉴
Drip Coffee
- HER COFFEE夜场代金券【1折】_北京美食团购_360团购导航
HER COFFEE夜场代金券[1折]_北京美食团购_360团购导航 HER COFFEE夜场代金券
- B. Karen and Coffee
B. Karen and Coffee time limit per test 2.5 seconds memory limit per test 512 megabytes input standa ...
- CodeForces 816B Karen and Coffee(前缀和,大量查询)
CodeForces 816B Karen and Coffee(前缀和,大量查询) Description Karen, a coffee aficionado, wants to know the ...
- 新概念英语(1-47)A cup of coffee
新概念英语(1-47)A cup of coffee How does Ann like her coffee? A:Do you like coffee, Ann? B:Yes, I do. A:D ...
- codeforces round #419 B. Karen and Coffee
To stay woke and attentive during classes, Karen needs some coffee! Karen, a coffee aficionado, want ...
随机推荐
- JavaEE(10) - Session EJB的依赖注入、引用及任务调度
1. EJB依赖注入 #1. EJB开发(Net Beans创建EJB Module, 项目名称:CallHello) Hello.java package org.crazyit.service; ...
- UNIX网络编程卷1 server编程范式0 迭代server
本文senlie原版的.转载请保留此地址:http://blog.csdn.net/zhengsenlie 1.迭代 TCP server总是在全然处理某个客户的请求后才转向下一个客户. 2.从进程控 ...
- PHP MVC自己主动RBAC自己主动生成的访问路由
使用的关键点: ReflectionClass class Rbac extends MY_Controller { public function index() { $arr = glob( __ ...
- java基金会成立
在java在,数据收集的操作,应使用非常.最近看了零星收集的小知识,在这里,一点点排序. 它基本上是四个常用的类操作点总结集合. 首先.集合大致分为两个方向.一种是普通的集合类型,通过接口collec ...
- docker study
Author:Hyphen 同步公布在个人博客中:http://yanheven.github.io/docker-study/ 參考章宇兄的开源项目学习ABC的方法来对docker进行简单的学习与分 ...
- HDU 2048 号码塔(DP)
号码塔 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...
- PHP课程十大 PHP图像处理功能和实现的验证码
假如你喜欢这个博客,访问这个博客地址:http://blog.csdn.net/junzaivip 总结: gd绘图库: 数学函数 PHP图片处理函数 图片处理函数使用场景 1.验证码 2.缩放 3. ...
- springmvc4
web项目(使用html视图解析器) 完整配置springmvc4,最终视图选择的是html,非静态文件. 最近自己配置spring的时候,遇到很多问题,由于开发环境和版本的变化导致网友们给出的建 ...
- ASP.NET上传文件的几种方法
//上传文件实例 if (fileDealer.HasFile)//判断文件是否存在 { string filepath = ""; ...
- oracle_根据ID(字符型)建立分区表
方案思路:有一张暴增的数据表(10亿级别),以后需求需要提高单条查询性能, 这个表有个唯一ID, 假设是UUID,采用区分首字母的方法,不同字母的数据入到不同的物理文件中. 第一步: 查找数据库服务器 ...