- 浏览: 102527 次
- 性别:
- 来自: 北京
博客专栏
-
自己动手写java 框架
浏览量:28435
最新评论
-
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框架
文章列表
控制反转 英语:Inversion of control,缩写为IoC
我想很多同学都会思考过这样的一个问题,控制反转,什么地方反转了,是不是翻译的不对?
这里插一句
当年马云借着盖茨的嘴说:“互联网会改变世界。”其实是他自己说的,因为 ...
redis lua脚本出现之前redis是没有服务器端运算能力的,主要是用来存储,用做缓存用,运算是在客户端进行,这样带来了很大的带宽流量。lua出现之后这一问题得到了充分的解决,非常棒!
redis lua脚本api介绍
eval 在redis服务器端执行lur脚本
evalsha 在redis 以脚本的sha1签名值在服务器端执行lua 脚本
script exists 判断脚本是否存在
script flush 释放lur脚本的缓存
script load 以sha1签名值做为key保存脚本
script kill 杀死当前执行的肢本
参考地址http://www.red ...
1、spring.core 功能比较多,我觉得应该再减少并集成ioc功能。这样一般项目只引用这个包就可以了,其中会依赖其他jar包,其实以spring 的能力完全可以写的。
2、spring aop有点鸡肋这个可以不用
3、spring mvc annotation全是jdk反射 通过方向名注入,所以要对方法名注解,其实可以通过方法获取到方法名(直接写代码解析.class文件就可以,还不用依赖第三方字节码jar包),省去用户手动注解的过程。而jdk的反射部分也可以优化,至少要换成cglib等字节码支持也比jdk反射要快。
4、架构思想很不错,但还是不至如人意,包的依赖还是比较严重,不够清楚 ...
public class ThreadLocalTest {
ThreadLocal<String> tl = new ThreadLocal<String>();
ThreadLocal<String> t2 = new ThreadLocal<String>();
/**
* @author zlz
*
* @time 2013-7-11上午10:14:50
* @param args
*/
public static void main(String[] args) {
ThreadLocalTes ...
目前的JAVA 企业级开发框架,我们常用的大致包括IOC AOP MVC ORM框架
1、 IOC spring是一个非常棒的ico容器,其思想非常简单,用一个集合对象如MAP 来缓存对象(对象都是单例的),这也就是spring 所说容器内单例,它和java中的单例模式的区别在于单例模式是在当前java进程中保持单例,因为它有三个必要条件:private static 自身对象、private 构造方法、public static getInstance()方法,以保持在进程中单例,而spring只能保证在容器中单例,用户是可以手动再new出其他对象的。所以这部分如果为了简单可以不使用sprin ...
DispatcherServlet extends FrameworkServlet extends HttpServletBean extends HttpServletBean extends HttpServlet
服务方法 请求的第一个方法
/**
* Exposes the DispatcherServlet-specific request attributes and delegates to {@link #doDispatch}
* for the actual dispatching.
*/
@Override
protected voi ...
软件架构包括硬件和软件部分,硬件部分主要是机房的选择,服务器部署南北同步,动静分离等。
文章主要讲软件架构
从以下几个问题分析 未涉及到的请各位补充
可读性 兼容性 扩展性 可复用性 可维护性
可读性:即思路清楚,逻辑简单,用简单的逻辑实现复杂的业务。
兼容性:对第三方框架或项目的兼容,比如spring对hibernate及ibatis的兼容
可扩展性:即对接口的灵活运用,由客户端程序实现扩展。
可复用性:分为项目内复用,多项目复用.
项目内复用,分层架构。巧用facade 模式,多项目复用,需要开发环境支持.主要涉及源代码复用,js css 资源文件复用.JSP ASPX ...
编写连接池需实现java.sql.DataSource接口,
DataSource接口中定义了两个重载的getConnection方法:
Connection getConnection()
Connection getConnection(String username, String password)
没有close或release方法那么怎么 释放到池中呢?
所以通过动态代理实现
代码如下
public class JdbcPool implements DataSource {
private static String driver;
priva ...
主要类结构如上图
sqlMapClient 代理sqlMapSession 类进行数据库操作,因为这里的session意味着每次请求,而大部分web服务器是单例多线程,即每个thread的请求周期,所以这里的session是通过threadLocal保存的。通过session类可以维护在请求过程中多次数据库访问,包括statement 数据库连接及其事务,减少每次数据库请求并处理的维护成本。
sqlMapSession的sqlMapExecutorDelegate 委托对象通过sqlMapClient中注入的。sqlMapSession代理sqlMapExecutorDelegate ...
麻雀虽小,但五脏俱全
sparrow 源自中国俗语 麻雀虽小,但五脏俱全,努力打造一个全新的低耦合,0依赖的高性能java 开发基础框架。 这个框架我从11年开始写,中间重构了n遍,最原始的代码可能都找不到了,之所以坚持写, ...