当前位置: 首页 > 软件库 > Web应用开发 > Web框架 >

coody-icop

纯代码模拟 IOC+AOP+MVC 体系
授权协议 GPL
开发语言 Java
所属分类 Web应用开发、 Web框架
软件类型 开源软件
地区 国产
投 递 者 督飞羽
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

coody-icop,纯代码模拟 IOC+AOP+MVC 体系。

1. 项目背景:

由于笔者近期参与的一些项目体系未使用到任何框架,而笔者对spring体系特别向往,故此研发本项目。

2. 功能说明:

本项目实现注解形式的bean加载、依赖注入、切面等功能。简单实现mvc。

3. 项目特点:

本项目使用cglib。秉承轻量、易用、简单、高效等原则。依赖jar:cglib-nodep-3.1.jar fastjson-1.2.31.jar log4j-1.2.17.jar  依赖jar包其余版本自行测试。

4. 环境说明:

JDK1.8+

5.目录结构: 

6. 程序架构:

由于在撰写本文背景下无作图环境,故此略去架构图。以下提供一些结构说明

1、包说明

org.coody.framework.entity常用实体包。

org.coody.framework.util  常用工具包

org.coody.framework.box  核心实现包

org.coody.framework.box.adapt 适配器包

org.coody.framework.box.annotation 注解包

org.coody.framework.box.container 容器包

org.coody.framework.box.constant 常量包

org.coody.framework.box.iface 接口包

org.coody.framework.box.init 初始化入口包

org.coody.framework.box.mvc MVC实现包

org.coody.framework.box.proyx 动态代理包

org.coody.framework.box.wrapper 包装类

2、类说明-注解

org.coody.framework.box.annotation.Around环绕通知注解标识,用于切面实现

org.coody.framework.box.annotation.InitBean初始化Bean。类似于spring的Service等注解,标记一个bean类

org.coody.framework.box.annotation.JsonSerialize序列化JSON输出,用于controller方法标识。类似于spring的ResponseBody注解

org.coody.framework.box.annotation.OutBean 输出Bean。类似于Resource/AutoWired注解

org.coody.framework.box.annotation.PathBinding 输出Bean。类似于Resource/AutoWired注

3、类说明-适配器

org.coody.framework.box.adapt.ParamsAdapt  参数适配器,用于MVC下参数的装载(目前只实现request、response、session三个参数的自动装载)

4、类说明-容器

org.coody.framework.box.container.BeanContainer 容器,用于存储bean,类似于spring的application

org.coody.framework.box.container.MappingContainer  Mvc映射地址容器

5、类说明-接口

org.coody.framework.box.iface.InitFace 初始化接口,凡是实现该接口的bean需实现init方法。在容器启动完成后执行。

6、类说明-启动器

org.coody.framework.box.init.BoxRute 容器入口。通过该类的init(packet)方法指定扫描包路径

org.coody.framework.box.init.BoxServletListen 监听器,配置在webxml用于引导容器初始化

7、类说明-mvc分发器

org.coody.framework.box.mvc.DispatServlet 类似于spring的DispatServlet

8、类说明-代理工具

org.coody.framework.box.proyx.CglibProxy 基于cglib字节码创建子类的实现

9、类说明-包装类

org.coody.framework.box.wrapper.AspectWrapper 本处命名可能不尽规范。本类用于多切面的调度和适配  

7. 实现效果:

 

8. 版权说明:

在本项目源代码中,已有测试demo,包括mvc、切面等示例

作者:Coody

反馈邮箱:644556636@qq.com

 相关资料
  • 本文向大家介绍C#模拟MSN窗体抖动的实现代码,包括了C#模拟MSN窗体抖动的实现代码的使用技巧和注意事项,需要的朋友参考一下 基于C#实现窗体的抖动是件很有意思的事情,原理并不难,其实是生成随机数,然后改变Form的左上角的坐标即可。 这里用的是循环来实现的,其实还可以用timer来控制. 我把抖动分成了两种抖动: 1.生成随机数,改变窗体左上角坐标,然后立即把窗体的坐上角坐标还原,继续循环。

  • 问题内容: 我正在使用Selenium编写一些UI测试,并且使用Dojo工具箱具有一个JavaScript Tree控件。 我已经使用Dojo提供的示例为树的每个节点实现了一个上下文菜单,但是我需要Selenium测试来“调用”树节点上的右键,但是我无法使其正常工作。这些测试根本不会通过JavaScript模拟右键单击事件,并且不会显示上下文菜单。 是否有人在使用Dojo和Selenium调用上下

  • 我正试图在模拟器中运行一个应用程序,但收到以下错误消息: 我以前在谷歌搜索时没有看到任何关于这一点的参考。 该应用程序使用Xcode6测试版,在Swift中链接到一个Obj-C静态库。在设备上运行良好。 有什么想法吗?

  • simple-edbc 一个简单易用的ORM框架。集成hibernate与mybatis部分特征于一身 支持原生SQL语句、支持各种弹性装载 支持注解控制表名、字段名 支持注解控制数据源与数据源继承关系 可配合Spring事物管理 简化模型与数据库对应关系,提供默认驼峰与下划线命名规则 文档地址:https://shimo.im/doc/Gd6NqYolg7wfEAHJ/ 注意事项: 在系统开发中

  • simple-cache说明文档 1、注意事项: 建议系统各项业务以层的形式使用缓存,大弧度缓解数据库压力 2、面向问题: 1) 缓解数据库压力,提升服务端并发上限,提升业务代码执行效率。 3、核心对象(注解): 1) @CacheWrite 写缓存,方法执行后,将结果写入缓存。 2) @CacheWipe: 清理单个缓存,方法执行后,清理缓存 4、功能特色: 1) 弱化缓存“层”的概念 2) 支

  • 1、面向问题 1.1 测试环境或正式环境下接口监控 当我们项目发布后,往往碰到由测试或用户触发的各种BUG,由不同的情况而产生不同的结果。然而人力有时穷有时弱,再资深的工程师也不能保证所有问题均考虑到,由此在业务出现问题的情况下对日志进行排查,排查难度取决于日志量,方法触发频率和方法调试的成本,同时某些特殊的业务可能出现一片茫然(本人碰到过招不到问题的情况)。故此研发此功能,用于时间段对某方法的监