- 浏览: 102831 次
- 性别:
- 来自: 北京
博客专栏
-
自己动手写java 框架
浏览量:28569
最新评论
-
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框架
文章列表
程序员是严谨的,但是再严谨也容易出问题,这就叫做bug。
我奉献几点自己遇到过的几点问题。
1 =与==
这个问题很容易被忽视,经常少一个=,在C语言陷阱里有这个问题,就是工作几年的老程序员,也同样遇到过。
2 =与!=
讲一个真事,公司一个同事做注册用户的用户名敏感词过滤,结果少写了一个!结果可想而知,还开玩笑说,我只少写了一个符号。
3 -与_
这里是在url里,给第三方提供接口的时侯,少写一个符号或者把_写成-结果都是很严重的,所以在url中一定要亲自点击浏览一下,确定是否可用。
4 &与*
这两个符号离得很近,但运行结果差得很远,我写一个24小时的定时任务,把*写成了& ...
谈到架构是一个很泛的话题
这里我们讨论一下兼容性与扩展性
我们为什么用接口?这是很多java程序员都会问过的问题
我的答案是为了扩展和兼容
最近的框架中想加入日志功能,想自己写一个简单的日志操作类
其实我们最常用的应该是log4j
但jcp标准是java.util.logger 这两个东西完全不兼容,网上有很多说明了原因。有兴趣的同学可以去网上查一查。
其实日志随便用什么框架或者自己写都是可以的,为什么还要如此纠结呢?
这里我纠结的不是功能实现,而是其中的思想。
我怎么才能做一个可扩展的日志框架?
jcp的标准并不是实际上的标准,就象osi和tcp/ip一样,理论上的与工业上实际标准并 ...
很长时间没写博客了,最近事情比较多
之前在文章中提到过tomcat 的main函数在哪?被很多朋友拍砖了
今天继续就这话题展开,先了解几个线程有关的概念
1、多线程 multithread
为什么要用多线程?就是让cpu别太闲,有空就要干活,提高效率。
2、线程池 threadpool
为什么要用线程池,所有跟池相关的,如connectionPool(数据库连接池),ajax request请求对 象池、线程池等都是为了减少对象new所带来的开销.
3、线程安全 thread safe
所谓的线程安全就是指多线程的运行结果与单线程的运行结果一致,java 通过synchronized和th ...
linux 自动重启tomcat 脚本
- 博客分类:
- JAVA
Tomcat作为开源的服务器,性能与稳定性上比起一些商业服务器还是要差一些。将项目部署到Tomcat后隔段时间就会死掉,出现这种问题的主要原因可能是内存数据溢出,因为Tomcat容器在发生大量与数据库交互查询或者操作的时候很容 ...
1. 如何加大tomcat连接数
在tomcat配置文件server.xml中的<Connector ... />配置中,和连接数相关的参数有:
minProcessors:最小空闲连接线程数,用于提高系统处理性能,默认值为10
maxProcessors:最大连接线程数,即:并发处理的最大请求数,默认值为75
acceptCount:允许的最大连接数,应大于等于maxProcessors,默认值为100
enableLookups:是否反查域名,取值为:true或false。为了提高处理能力,应设置为false
connectionTimeout:网络连接超时,单位:毫秒。设置为 ...
log4j的logger继承 1、log4j的继承是通过命名来实现的。
比如logger.a.b就会继承logger.a的一些设置。
2、子logger会默认继承父logger的appender。
如果配置中这样写:logger.a=INFO,app_a,logger.a.b=DEBUG,app_b,那么实际上,logger.a.b的配置是这样的:logger.a.b=DEBUG,app_b,app_a。
3、子logger只在自己未定义输出级别的情况下,才会继承父logger的输出级别。
比如配置中这样写:logger.a=DEBUG,app_a,logger.a.b=,app_b, ...
substring 陷阱
- 博客分类:
- JAVA
数据库substring(source,startIndex,length)
javascritp substring(source,startIndex,endIndex)
java substring(source,startIndex,endIndex)
c# substring(soiurce,startIndex,length)
有遇到的大家补充~
package com.jp.action;
import java.util.HashMap;
import java.util.Map;
import java.util.logging.Logger;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.bind.RequestUtils;
import org.springframework.web.bind.ServletRequestBi ...
关于sqlsession我们先看这些问题:
我们做web开发,很容易联系到http的session,那么它跟进http的session有关系吗?
如果非要映射到web开发中的某个对象他到底跟哪个对象很象呢?
sqlssion是用来做什么的?
如果只是数据库连接为什么不直接用sqlconnection呢?
我们从配置文件可以看出他由sqlsessionfactory产生,sqlsessionfactory需要datasource.那么datasouce是什么呢?
它跟数据库连接池有什么关系呢?
sqlsession是线程安全的吗?
最后一个问题很有代表性,关于线程安全问题接下来会专门写一篇文章 ...
一个实际例子直接帖代码
# log4j configuration file
##################################################################
# Pattern to output the caller's file name and line number.
##################################################################
#等级为INFO的日志信息输出到ota,ota的定义在下面的代码,可以任意起名。#
#等级可分为OFF、 FATAL、 ...
MVC-1
http://lizhizhang.iteye.com/blog/1912005
MVC-2
http://lizhizhang.iteye.com/blog/1913546
自己动手写MVC3,前两篇我们分析了MVC的基础,在这里大家对main函数有争论,接下来会有java多线程的文章,与大家分享。(这里会略带一些tomcat main函数的内容)。
第二篇介绍了为什么要用MVC以及MVC的概念,即什么是MVC。
通过以上的了解,我个人认为,对于开发者来讲,MVC的filter即我们在web.xml中配置的拦截器是不重要的,框架为我们写好了,我们做的事情就是配置一下就可以了,而我们 ...
前几篇文章写了JAVA框架的思考
http://lizhizhang.iteye.com/blog/1909415
IOC的思考
http://lizhizhang.iteye.com/blog/1910976
MVC的思考入门篇
http://lizhizhang.iteye.com/blog/1912005
今天接着说MVC
接着上文的问题:
为什么出现MVC?它到底是什么?
我们引用struts2 官网的一段话
Web applications based on JavaServer Pages sometimes commingle database code, page design ...
这篇主要讲web开发基础,MVC概念的原型会从这里体现。
首先提一个问题main方法在哪?
我们学的第一种语言,写hello world时都会写main方法(除脚本语言外),那么我们想一下,我们写web程序时main在哪?
我们以b/s结构为例,很容易想到main其实有两个,一个在服务器端一个在客户端。那么服务器和客户端的通信走的是socket。通信的内容要有协议,即我们熟悉的http,http请求两个最核心的对象是request和response。那么我们再简单回忆一下web程序的hello world 过程.
request 发现请求服务器端接收处理后通过response返回给客户端.这是w ...
This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its de 错误解决办法创建function时
出错信息:
ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_ ...
eclipse 默认为中文编码为gbk,当用gbk环境写的代码,其物理文件的编码为gbk.即使用eclipse 改为utf-8其物理文件的编码仍不变,所以通过以下代码生成。
package com.sparrow.utils;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamRead ...