- 浏览: 103229 次
- 性别:
- 来自: 北京
博客专栏
-
自己动手写java 框架
浏览量:28740
最新评论
-
zh_harry:
线上demo已经上线http://www.sparrowzoo ...
高性能轻量级markdown 解析器java 版sparrow-markdown -
zh_harry:
sp42 写道演示地址 本地的? 代码 git clone 下 ...
自己动手写mvc框架SPARROW MVC -
sp42:
非常不错 赞一个
高性能轻量级markdown 解析器java 版sparrow-markdown -
sp42:
演示地址 本地的?
自己动手写mvc框架SPARROW MVC -
sp42:
我的框架也是用原生写,已弃坑。还是 MVVM 的爽,推荐 vu ...
SPARROW-JS 从0开始写 0依赖,原生JS框架
文章列表
零基础暖心计划课程内容
https://sparrowzoo.feishu.cn/drive/folder/fldcnq4HSou8VzzxaV5j0R97TWg
原型
https://mastergo.com/file/72419140498526?page_id=46%3A74
事件风暴
https://miro.com/app/board/uXjVOrN6CTc=/?share_link_id=989415167402启动sparrow-passport1. clone sparrow-bomhttps://github.com/sparrowzoo/ ...
麻雀虽小,但五脏俱全
sparrow 源自中国俗语 麻雀虽小,但五脏俱全,全力打造一个全新的低耦合,0依赖的高性能java基础框架。
有没有发现我们的工程代码其实很臃肿?
有没有发现我们依赖了很多没有用的jar包?
有没有发现在项目中因为jar 冲突而折腾很久?
有没有想过我只依赖jdk 就实现一个WEB工程?
有没有发现其实我们只需要一小块功能,而需要引入一个大框架?
有没有发现其实有些功能非常简单,而被框架限制了?
有没有发现其实有些功能原理不复杂,而框架实现很庞杂?因为不相信程序员!
有没有发现相似的框架提供的业务功能是一致的?但对外的接口是不同的?想不想统一 ...
sparraw 框架js 版开源上线
www.sparrowzoo.net
功能包括菜单 进一步继续完善中。。。
简单动画效果
以上菜单可以在线预览
对话框功能
日期选择控件,仿windows 7日期选择效果
markdown 及代码高度效果
SPARROW-JS 前端JS框架变幻莫测,但原生js 接口不会变,所以以不变应万变,需要对前端js的原生api熟练掌握。为减少学习成本,将sparrow js 开放,支持大部分网站开发常用组件,代码简洁,无冗余。
功能列表
STRING 方法
ARRAY 方法
AJAX
BROWSER 浏览器相关支持
VALIATE 前端验证框架
Toolip 提示
MENU菜单支持
JQUERY常用功能支持
简单动画效果
相关demo展示
接上一篇
Sparrow算法篇 从日期取交集到思维模式
这样的时间段有成百上千条该如何处理?
如果我们需要根据具有日期交集的时间段分组呢?
如果我们的业务不是日期,而是其他数据类型呢?如何抽象出计算模型?非日期型数据也可以进行分组?
上一篇分享日期取交集的核心逻辑。 但映射到具体业务上可能有更复杂的场景,比如第一个问题,两个日期取交集还好搞好,但日期段很多的情况下,如何按每一个时间段相同的数据进行分组呢。
动机
markdown 已成为网络博客最主要的排版格式。但一般都是有现成的软件支持,比如有道云笔记。但要想将markdown 功能集成到自己的博客或者公司的oa 上,需要一款开源的轻量的markdown解析程序,从github 找了一些开源项目相对都比较重,二次开发成本较大,所以笔者在春节期间开发了一款轻量级的markdown解析程序,符合oop开发原则,最大化复用和解耦。方便二次开发集成。
功能
标题支持 H1 H2 H3 H4 H5 H6
水平线支持 HORIZONTAL_LINE
引用支持 QUOTE
TAB 引用
复选框支持 CHECK_BOX
源代码支持CODE ...
日期交集
早在13年左右的时侯,做过一个系统,功能很简单,做一个日程管理功能,这里边涉及到一个小知识点,就是日期取交集。今天跟大家分享的是从这个点展开的,时间段取交集的话题。
业务逻辑
逻辑很简单,就是一两个日期段取交集,可如果按正常思维去实现,其实日期交集的场景我们可以穷举出来,大概有4种情况
s1--------------e1
s2-----------------e2
s1--------------e1
s2-----------e2
s1----------
SPARROW-MVC
SPARROW-MVC 是SPARROW框架其中的一员,模拟SPRING MVC功能实现。 目前实现功能列表
参数自动化注入
FLASH参数跨页面传递(包括中传页面和重定向页面)
RESTFUL风格支持
参数解析功能
返回结果解析
URL-METHOD映射
URL REWRITE功能(自动原生支持)
拦截器支持
国际化支持
JSON返回支持(原生支持)
异常统一结构化规范支持
HTML服务器控件支持 包括grid view功能
其它功能
以上是目前SPARROW MVC实现的大部分功能 其他未涉及功能希望各位小伙伴可以多提意见,SPR ...
接上一篇
[REDIS客户端封装意淫](https://www.jianshu.com/p/03132e0d50e2)
对现在有接口,进一步重构。
进一步对客户端友好封装,对数据类型的转换,封装进框架内。
增加CacheDataNotFound hook,并保留原有异常抛出接口,提供客户端灵活调用。
对key的business 部分提供灵活扩展接口,为特定业务的监控提供扩展。
接口不只依赖redis,理论上可以对redis 的不同接口进行实现,包括jedis sharded jedis jedisson以及其他异构缓存系统。
将接口按类型进行拆分,避免类过于 ...
redis 本身有客户端,先抛出来一个问题?为什么要对redis客户端进行二次封装?
大概在11年时侯,第一次接触redis,那时侯研究过redis的各种数据结构,直接拿redis的客户端jedis直接用。公司安排人要对jedis进行封装,当时就很不理解,为什么非要封装一次才可以?
后来自己写框架,意识到一些东西是需要封装的,比如连接的打开和释放,比如一些危险的方法,比如keys * 比如flushdb 等
后来形成了这样的代码结构
T execute(Executor executor, KEY key)throws CacheConnectionException {
Sha ...
sparrow 框架设计最大化解耦,理论上业务层只依赖SPARROW-FACADE即可,接口可由第三方如spring c3p0 fastjson logback 具体实现。
整体架构图如下:
SPARROW 架构图
SPARROW-FACADE
基础核心层,实现了一些框架和上层业务涉及到的一些工具类类,如图
工具类库
包括bean properties 反射(非JDK反射)读写,class 集合类,日期,email ,文件 ,正则等常用工具类.核心功能,后文将一一介绍。
sparrow-cg
sparrow code generator 并不是简单 ...
sparrow 框架
麻雀虽小,但五脏俱全
为什么要写这个框架?
这个框架我从11年开始写,中间重构了n遍,最原始的代码可能都找不到了,之所以坚持写,不是想新造轮子。 主要是从中学习基础原理。 经过近十年的打磨,有些设计思想和理念,是值得学习的,比如spring mvc 的设计模式,orm ico 等等。 虽然很多朋友们都了解,但要真正自己实现起来也并不是那么容易。而这个过程对原来的深入理解是很帮助,所以将这部分开源出来,供有同样需求的朋友参考,大家一起进步,成长。
框架的设计哲学和概要
软件设计6大原则,这里推荐几本书,martin flower 的重构, 敏捷软件开发 ...
tomcat 启动时使用的是java.util.logger 日志框架
tomcat 实现类
package org.apache.juli.logging;
import java.util.logging.ConsoleHandler;
import java.util.logging.Formatter;
import java.util.logging.Handler;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
* Hardcoded java.util.loggi ...
程序异常会中断程序执行,所有所有的异常都需要捕获,否则会导致程序中断,一般异常由服务提供者捕出,由服务调用者捕获。这里借用think in java 的服务器程序员与客户端程序员概念。
为什么使用异常
1 返回的类型不支持,通过异常返回给用户。例如 boolean login(username,password)
2 可以显示的提示客户端程序员进行捕获异常并做出处理
存在问题:性能问题
解决办法:
覆写fillInStackTrace
http://www.blogjava.net/stone2083/archive/2010/07/09/325649.html
...
MANIFEST.MF 文件内容完全详解
- 博客分类:
- JAVA
打开Java的JAR文件我们经常可以看到文件中包含着一个META-INF目录, 这个目录下会有一些文件,其中必有一个MANIFEST.MF,这个文件描述了该Jar文件的很多信息,下面将详细介绍MANIFEST.MF文件的内 容,先来看struts.jar中包含的MANIFEST.MF文件内容:
Manifest-Version: 1.0Created-By: Apache Ant 1.5.1Extension-Name: Struts FrameworkSpecification-Title: Struts FrameworkSpecification-Vendor: Apache Soft ...