开源国产IOC框架,主打轻简快特征CoodyFramework
[微笑]:人生充满着期待,梦想连接着未来。
大家好,我是码农的炉灶社,今天给大家推荐一款开源国产IOC框架:Coody Framework。 基本介绍:
一名野生的民间技术爱好者,早期活跃于各网络安全论坛,而后由白帽转战编程。因谋生于14年3月就职于CMGE。
在从业生涯中,本项目自2018年发布后,后续更新也是改改停停,这些年JDK已经更新了N多个版本,而本框架至今未发布正式版。
自古闲人出金货,也许有一天笔者自由了,会回过头来完善这套框架。
目前本项目存在如下挑战:
1、Java9之后屏蔽了unsafe,会使得底层框架对创建对象场景性能下降
2、Java9之后反射技术部分操作空间被阉割,需要针对阉割部分进行调整
3、需兼容javax,无缝兼容各种模板引擎、各种应用服务器
4、Cson json序列化&反序列化插件,需修复特定场景下兼容性问题 前言:Coody Framework 是由笔者业余时间编写的一套Ioc框架。由最初立项到发布jar到Maven中央仓库。历时4个月有余。用途与优势:Coody Framework框架包含以下模块 coody-core :框架核心包,包括Ioc+Aop的实现,包括相关工具和超类 coody-web :框架web-mvc的实现包,实现了mvc功能体系 coody-cache :框架缓存的实现,实现了基础缓存,切面缓存,并提供相关切面技术的支持 coody-jdbc :框架orm的实现,实现了基于mysql下基础操作的封装,实现了各种简易操作,拓展了切面事务 coody-task :框架定时任务的实现,基于cron实现了定时任务,提供了注解定时任务的支持 coody-rcc :框架分布式的实现,提供注册中心、序列化、通信协议等接口。字节码创建子类的实现(分布式功能未完成) coody-elock :框架分布式锁的实现,通过redis订阅实现的高性能分布式锁 coody-mail :基于TCP的邮件发送工具 coody-minicat :基于TCP的Http服务器 coody-cson :JSON序列化 & 反序列化插件 coody-esource :简易数据库连接池 coody-logged :轻量化日志插件更新记录:2018-02-24: 立项,提供 IOC & AOP框架 2018-02-25: 提供Web-MVC框架 2018-02-26: 提供ORM框架 2018-03-08: 拓展IOC对Interface的支持 2018-03-10: 提供CRON定时器插件,并提供CronTask注解 2018-03-21: 拓展AOP,提供类通配、方法通配、提供多注解规则 2018-04-22: 提供request和response在controller中进行注入 2018-04-23: 拓展MVC参数适配器,并提供自定义参数适配入口 2018-06-02: 拓展分布式框架,并制定分布式解决方案,提供ASM创建实现类,通讯、序列化、注册中心等接口 2018-06-05: 对项目进行拆分,为发布maven中央仓库做准备 2018-06-28: 发布Alpha至Maven中央仓库。nexus搜索"Coody"即可 2018-12-31: 提供Elock,用于分布式加锁,发行alpha-1.2.4版本 2019-11-26: 提供Mail,用于邮件发送,发行alpha-1.2.5版本 2019-12-27: 提供Minicat,实现HTTP应用服务器,并发行alpha-1.2.6版本 2020-01-04: 提供Cson,实现Json 序列化&反序列化插件 2020-01-14: 剔除cglib依赖,改为纯asm实现动态代理 2022-10-03: 编写并调通RCC分布式模块 2022-10-09: 编写logged日志插件,剔除log4j Coody Framework+Minicat实战项目:https://gitee.com/coodyer/reduce/
引用地址: org.coody.framework coody-core alpha-1.8.4 org.coody.framework coody-jdbc alpha-1.8.4 org.coody.framework coody-cache alpha-1.8.4 org.coody.framework coody-task alpha-1.8.4 org.coody.framework coody-web alpha-1.8.4 org.coody.framework coody-elock alpha-1.8.4 org.coody.framework coody-minicat alpha-1.8.4 org.coody.framework coody-mail alpha-1.8.4 org.coody.framework coody-cson alpha-1.8.4
======================================================= 1. 功能说明:Coody Framewrok实现了:IOC依赖注入、AOP切面、MVC、定时任务、切面缓存、ORM等功能,分布式Rcc模块也已进入研发阶段。2. 环境说明:JDK1.8+ gpg4win2.3.1(windows上编译需要安装本环境)3. 基本示例:(1)、实例化一个Bean:
实例化一个bean只需要在一个Class标明@AutoBuild注解即可 (2)、注入Bean到一个类字段:
注入Bean到字段,只需要在该字段上面标明@AutoBuild注解 (3)、web.xml配置: configPath config org.coody.framework.web.listen.CoodyServletListen DispatServlet org.coody.framework.web.DispatServlet viewPath / DispatServlet *.do (4)、配置一个bean:
######## 配置dataConfig (coody.bean.{bean名称}.field.${字段名}) coody.bean.hikariDataConfig.class=com.zaxxer.hikari.HikariConfig coody.bean.hikariDataConfig.field.driverClassName=com.mysql.jdbc.Driver coody.bean.hikariDataConfig.field.jdbcUrl=jdbc:mysql://127.0.0.1/czone?useUnicode=true&characterEncoding=utf-8 coody.bean.hikariDataConfig.field.username=root coody.bean.hikariDataConfig.field.password=root coody.bean.hikariDataConfig.field.maxPoolSize=64 coody.bean.hikariDataConfig.field.minIdle=8
配置DataSource (coody.bean.{bean名称}.parament.参数名),当值为参数名),当值为{表达式},即${bean名称} coody.bean.hikariDataSource.class=com.zaxxer.hikari.HikariDataSource coody.bean.hikariDataSource.parament.configuration=${hikariDataConfig}
注意:表达式coody.bean.{bean名称}.方式.${参数名}中。当方式为field的时候,代表通过设置参数值初始化Bean,field的值与字段名一致;当方式为parament的时候,代表通过构造函数初始化Bean。parament的值与参数名一致。
如图:
(5)、Mvc的使用:简易使用
参数适配器
系统提供的参数装载器位于org.coody.framework.web.adapt包下FormMealAdapt:混合装载适配器,form表单装载到多个bean,平级装载,字段名谁有谁得。 FormNomalAdapt:混合装载适配器,form表单装载到多个bean,以方法参数名为请求参数前缀。 GeneralAdapt:简易装载适配器,装载request、response、session等参数。 JsonMealAdapt:混合装载适配器,json数据混合装载到bean,平级装载,字段名谁有谁得。 JsonNomalAdapt:混合装载适配器,json数据装载到多个bean,以方法参数名为请求参数前缀。(6)、定时任务的使用:
(7)、切面的使用:
(8)、事务的使用:
(9)、缓存的使用:
缓存使用请参考具体文档 4. 各插件具体文档:
Coody Web (MVC说明文档)
Coody Cache (缓存插件说明文档)
Coody Jdbc (ORM说明文档)
Coody Task (CRON定时任务说明文档)
Coody Elock (分布式锁说明文档)
Coody Minicat (HTTP服务器说明文档)
Coody Mail (TCP邮件插件说明文档)
Coody ESource (数据库连接池说明文档)
Coody Cson (JSON序列化&反序列化插件说明文档)
Coody RCC (分布式框架)
Coody Logged (日志插件) 结束语:
比较良心的作者,代码质量良好,可作为源码研究,对快速提高编程能力很有帮助哦!
开源分享不易,感谢大家的支持。后续也会分享更多的干货和技术资讯,您的阅读就是对小编的支持,再次感谢各位老铁!
开源地址:https://gitee.com/coodyer/Coody-Framework
妇女节,聆听他们对她的告白春风十里不如她三八妇女节,聆听他们对她的告白世界上若没有女人,这世界至少要失去十分之五的真,十分之六的善,十分之七的美。冰心正是三月春光美,春水初生,春林初盛,春风十里,却都不如她
成功融资500万美元,Lonestar要在月球上建立数据中心IT之家3月7日消息,Lonestar本周一发布新闻稿,表示近期完成了500万美元的种子轮融资,用于在月球上建立数据中心。Lonestar是一家总部位于美国佛罗里达州的公司,计划在
如何证明量子纠缠的存在?如何证明量子纠缠的存在?量子纠缠是指两个或多个粒子之间存在的一种特殊的量子状态,即这些粒子之间的量子信息是紧密联系的,无论它们相隔多远,对其中一个粒子进行测量都会对另一个粒子产生影
氧气会不会耗尽如果有一天地球上的氧气被消耗殆尽会出现什么情况?氧是构成生命的重要元素之一,它以气体形式存在于自然界中,是地球上大多数生命进行各种活动所必需的物质之一。氧气会不会被耗尽,这种担心是
最全汇总这些国产数据库认证可以免费获得!随着国产数据库的发展,在全球数据库市场所占份额不断扩大,学习国产数据库的人越来越多,国产数据库认证的含金量也越来越高。部分国产数据库认证项目获得国产数据库相关认证的小伙伴,在求职晋
我国再发现大油田,探明地质储量超1。3亿吨,可开采原油2000万吨地球是独一无二的,与我们的生活有着密切联系,随着科技的不断发展,虽然我们一直在探索宇宙的奥秘,可至今没有发现一个与地球相似的行星。随着人口数量的不断提升,和环境污染等问题的出现,地
会亮屏但不显示?看我花费不到2块钱修复KOIOS4K显示器前言就在今年春节的时候,我有一台在2020年购买的KOIOS27英寸4K显示器(型号为K2718UD)突然不会显示。症状是有电源指示灯,屏幕会亮,也没有破损的痕迹,但是就是没图像(
为什么率土之滨被三国志战略版打败了?这个问题没有一个确定的答案,因为不同的玩家可能有不同的喜好和评价标准。我仅提出以下几个可能的原因,供大家讨论三国志战略版是基于三国志13这款经典游戏开发的,继承了其优秀的剧情和人物
华为HiCar的快乐你想象不到满满干货卡宴上车休息看电影,不再是梦随时随地一把斗地主他不香吗?使用君用互联盒一键转华为HiCar,便能在你车屏上展现多种功能据小君了解,目前华为HiCar所支持APP(图47)地图类高德
昨夜今晨发生了什么?YiMagazine钉钉收购协同办公厂商我来wolai钉钉终于开始办公。据36氪3月6日报道,钉钉已完成对协同办公厂商我来wolai的全资收购,其产研团队将转为钉钉正式员工,客服团队将转到阿里外包团队
阅读是如何改变一个人的命运?古语有云一尺难成一丈。人人都希望有好运,但往往事与愿违,很多人苦苦追寻了一辈子,却依然是悲惨的下场。相反,那些什么都不做,随便做点什么的人,他们的命运就会改变。俗话说福来者不求,意