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的更多相关文章

  1. 支付宝WAP支付接口开发(Node/Coffee语言)

    此博客不更新很久了, 更新的文档在这, 有兴趣到这里围观: http://neutra.github.io/2013/%E6%94%AF%E4%BB%98%E5%AE%9DWAP%E6%94%AF%E ...

  2. nssm在windows服务器上部署nodejs,coffee启动方式

    本想用forever / pm2 来部署nodejs, 百度后发现只能在Linux系统上使用,window上没法使用,兜一圈后又转nssm了.... 在Linux上,可以轻松的使用forever或者p ...

  3. Coffee Script 笔记 1

    安装node 虽然官网提供了单文件bin的版本 但是并不知道怎么安装npm 于是乎还是得安装msi  (坑 当使用 coffee -w -c . 监视文件改变 即时编译的时候会 提示 Error: T ...

  4. 【Mood-20】滴滤咖啡做法 IT工程师加班必备 更健康的coffee 项目经理加班密鉴

    Drip Coffee

  5. HER COFFEE夜场代金券【1折】_北京美食团购_360团购导航

    HER COFFEE夜场代金券[1折]_北京美食团购_360团购导航 HER COFFEE夜场代金券

  6. B. Karen and Coffee

    B. Karen and Coffee time limit per test 2.5 seconds memory limit per test 512 megabytes input standa ...

  7. CodeForces 816B Karen and Coffee(前缀和,大量查询)

    CodeForces 816B Karen and Coffee(前缀和,大量查询) Description Karen, a coffee aficionado, wants to know the ...

  8. 新概念英语(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 ...

  9. codeforces round #419 B. Karen and Coffee

    To stay woke and attentive during classes, Karen needs some coffee! Karen, a coffee aficionado, want ...

随机推荐

  1. spring框架内置笔记本

    ◆基本介绍 目的:解决企业应用开发的复杂性 特征:使用主JavaBean更换EJB,它提供了许多其他的企业应用 范围:随你Java应用 Spring 框架是一个分层架构.由 7 个定义良好的模块组成. ...

  2. TreeMap cannot be cast to java.lang.Comparable

    /** * Constructs a new, empty tree map, using the natural ordering of its * keys. All keys inserted ...

  3. 朴素贝叶斯算法(Naive Bayes)

    朴素贝叶斯算法(Naive Bayes) 阅读目录 一.病人分类的例子 二.朴素贝叶斯分类器的公式 三.账号分类的例子 四.性别分类的例子 生活中很多场合需要用到分类,比如新闻分类.病人分类等等. 本 ...

  4. 检测ORACLE方法汇总数据块损坏

    1:使用初始化参数 使用初始化参数db_block_checksum\db_block_checking能够设置数据库对块的物理一致性和逻辑一致性检查. Db_block_checksum:物理一致性 ...

  5. 交易应用-运行多个SQL声明

    事务具有原子性.要么不运行.要么全运行.一旦成功运行永久保存.而这些正是因为事务的原子性和对数据库的持久性形成的.下面是一个关于统一给数据库中的数据改动的批量操作,利用到事务. TODO:批量改动数据 ...

  6. poj 2449 Remmarguts' Date 【SPFA+Astar】【古典】

    称号:poj 2449 Remmarguts' Date 意甲冠军:给定一个图,乞讨k短路. 算法:SPFA求最短路 + AStar 以下引用大牛的分析: 首先,为了说话方便,列出一些术语: 在启示式 ...

  7. 第16章 观察者模式(Oberver Pattern)

    原文  第16章 观察者模式(Oberver Pattern) 观察者模式  概述:   在软件构建过程中,我们需要为某些对象建立一种“通知依赖关系” ——一个对象(目标对象)的状态发生改变,所有的依 ...

  8. HTML5 画一张图

    笔者:本笃庆军 原文地址:http://blog.csdn.net/qingdujun/article/details/33344289 一.绘制图像 使用drawImage()方法绘制图像. 画图环 ...

  9. LeetCode——Flatten Binary Tree to Linked List

    Given a binary tree, flatten it to a linked list in-place. For example, Given 1 / \ 2 5 / \ \ 3 4 6 ...

  10. 杭电dp题集,附链接还有解题报告!!!!!

    Robberies 点击打开链接 背包;第一次做的时候把概率当做背包(放大100000倍化为整数):在此范围内最多能抢多少钱  最脑残的是把总的概率以为是抢N家银行的概率之和- 把状态转移方程写成了f ...