惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

云风的 BLOG
云风的 BLOG
TaoSecurity Blog
TaoSecurity Blog
V
Visual Studio Blog
The GitHub Blog
The GitHub Blog
Apple Machine Learning Research
Apple Machine Learning Research
Vercel News
Vercel News
The Register - Security
The Register - Security
月光博客
月光博客
M
MIT News - Artificial intelligence
B
Blog RSS Feed
博客园 - 叶小钗
Last Week in AI
Last Week in AI
Application and Cybersecurity Blog
Application and Cybersecurity Blog
T
The Blog of Author Tim Ferriss
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Microsoft Azure Blog
Microsoft Azure Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
C
Check Point Blog
Attack and Defense Labs
Attack and Defense Labs
The Cloudflare Blog
Cloudbric
Cloudbric
O
OpenAI News
Security Archives - TechRepublic
Security Archives - TechRepublic
Help Net Security
Help Net Security
Google DeepMind News
Google DeepMind News
Stack Overflow Blog
Stack Overflow Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
V
V2EX
大猫的无限游戏
大猫的无限游戏
www.infosecurity-magazine.com
www.infosecurity-magazine.com
V2EX - 技术
V2EX - 技术
Google Online Security Blog
Google Online Security Blog
博客园 - Franky
雷峰网
雷峰网
J
Java Code Geeks
L
LINUX DO - 最新话题
T
Tenable Blog
爱范儿
爱范儿
Engineering at Meta
Engineering at Meta
T
Tailwind CSS Blog
Spread Privacy
Spread Privacy
H
Heimdal Security Blog
S
Schneier on Security
量子位
N
Netflix TechBlog - Medium
G
Google Developers Blog
T
The Exploit Database - CXSecurity.com
Cyberwarzone
Cyberwarzone
F
Full Disclosure
S
Securelist

博客园 - hiaming

doclever 5.5.1 安装及升级【原创】 SPARROW-JS 从0开始写 0依赖,原生JS框架 Sparrow算法篇 从日期取交集到思维模式-2 高性能轻量级markdown 解析器java 版sparrow-markdown Sparrow 算法篇 由日期取交集到思维模式 自己动手写mvc框架SPARROW MVC REDIS客户端封装实践2 SPARROW 框架redis客户端封装实践 Sparrow 框架设计哲学 陌院俅颗难炎先当粮澜 openresty在centos/redhat6.7上部署 tomcat 日志那点事 Redhat6.7 切换Centos yum源 Quartz corn时间表达式(转) Jquery控制滚动Div 滚动条事件 fastjson排序 Map多层嵌套转换自动排序问题终极解决方案 Spring 外部注入Bean (JAX-WS) SSH,如何恢复通过输入密码的方式来登录服务器 Redhat Linux6.5 开启VNC 远程桌面
SPARROW架构介绍
hiaming · 2018-01-24 · via 博客园 - hiaming

sparrow 框架设计最大化解耦,理论上业务层只依赖SPARROW-FACADE即可,接口可由第三方如spring c3p0 fastjson logback 具体实现。

整体架构图如下:

SPARROW 架构图   

SPARROW-FACADE

基础核心层,实现了一些框架和上层业务涉及到的一些工具类类,如图

工具类库   

包括bean properties 反射(非JDK反射)读写,class 集合类,日期,email ,文件 ,正则等常用工具类.核心功能,后文将一一介绍。

sparrow-cg

sparrow code generator 并不是简单的代码生成,而是为了反射提高效率,而专门实现的快速读写对象属性的工具包。

sparrow-container

相当于spring 的ioc容器,对sparrow-facade的container 接口的实现,目前主要是针对xml模式的bean解析与依赖注入。

sparrow-datasource

对jdk datasource接口的实现,主要是数据库链接池最基本的维护。

sparrow-json

对sparrow-json的实现,目前默认是对fastjson接口的封装。上层业务可自行替换,不影响上层业务代码。

sparrow-log

对slf4j接口的实现,只实现常用的log打印功能,上层业务可通过代码log4j或logback替换

sparrow-mvc

模拟spring mvc实现,上层业务可代理实现spring mvc替换

sparrow-orm

hibernate 与mybatis jpa三者,取其精华去其槽粕。实现简单,易用,可扩展,未来可实现跨数据库,跨数据源(hbase elastic search兼容) ,对上层业务换数据源不需要修改业务代码的切换。

sparrow-mq

对sparrow-facae mq 接口的实现,该模块对上层业务的mq调用代码进行封装,对各类mq产品实现兼容,即底层换mq产品,上层业务代码不需要修改,跨各类mq产品。

sparrow-redis

该模块对nosql 数据库接口进行封装,理论上支持各种nosql 数据库,对上层业务兼容。对redis key统一定义维护(这部分会专门有一篇文章去分析)

本文,主要是对sparrow框架的整体构架做简单介绍,下文会针对每一个模块的核心代码展开分析 

good night!