iBatis已经更名为MyBatis,并搬迁到Google Code
作者:风风 | 归类于Java, Web开发 | 2010年06月14日 星期一 | 发表评论 »现在打开iBatis的主页:ibatis.apache.org会发现作者发布了一个新闻或者说是声明。
大意是因为各种原因,已经把iBatis更名为MyBatis, 并且搬迁到Google Code中了。
详细内容 »
上周遇到的一个bug,ThreadDeath error,从而导致系统的每个请求都失败。能够让系统的每个traffic请求都失败的bug,这个严重程度不言而喻。看看是怎么回事吧?
其实问题的表现很简单:在请求处理过程中,抛出了一个ThreadDeath 的error:
众所周知,对于高动态高可扩展的应用,OSGI是一个非常好的平台。但是,也因此增加了复杂性,开发中对service的依赖变得复杂。这也是service的关系管理成为OSGI中一个非常重要的部分,我们来看看OSGI中service依赖关系管理的方式。篇幅原因,只关注发展历程,不具体介绍每个方式的详细实现细节。
概括的说,目前在OSGI中主要有以下几种service依赖关系管理的方法:
1. Service listener
2. Service binder
3. Dependency Manager
4. Declarative Services
5. iPOJO
6. blueprint
1) Service Listener
这是OSGI中原生的service依赖管理机制,是最简单直接的方式,其基本原理非常简单,标准的注册/查找:
1. 被依赖的bundle通过BundleContext.registerService()方法注册服务到系统中
2. 使用依赖的bundle在start时通过BundleContext的getServiceReferences()/getService()来查找依赖的service
3. 使用依赖bundle通过BundleContext.addServiceListener()来分别注册ServiceListener
4. 在被依赖的bundle/service状态发生变化时, 使用依赖bundle通过ServiceListener的serviceChanged()得到通知并作出调整。
在这种方法中,使用依赖的Service必须进行大量的编码工作来完成对依赖的service的关系管理,需要处理琐碎细节如各个Service的运行时状态变化。为了减少工作量,OSGI设计了ServiceTracker来简化对依赖service的编码工作,即ServiceTracker将负责处理上述步骤中的2/3/4。
经过ServiceTracker优化后的Service Listener机制,还是存在一些缺点:
详细内容 »
guzz是一套用来解决ORM、多数据源管理、以及通用数据计算的数据层框架,为系统在数据层的设计提供一站式解决方案。guzz可以看作是 ibatis/hibernate的一大的延伸,并可以取代这2个东西。
guzz主要功能与特点:
现代大规模系统设计,技术上吸收了ibatis/hibernate的优点
支持像hibernate一样的对象化持久、映射和方便的增删改查
支持像ibatis一样,让dba参与sql设计的复杂数据库操作和优化
支持在线加载与调试SQL。按照应用策略,从文件/数据库/Web Service等途径,动态提取与使用SQL语句(Dynamic SQL)
支持应用程序使用大量的数据库和主从读写分离
支持超越范式的特殊关联、非结构化数据等异构资源的统一管理
支持数据表在多组机器间水平分布(Shard),并自动维护多组机器之间的分布式事务
支持1张表按照业务规则分切成多张小表(Shadow),并支持每张小表拥有自己特殊的属性字段(Custom)
支持组件化服务(SOA),构建企业/项目实施基础平台
提供面向对象的数据库读取标签(JSP Taglib),加快页面展示层的快速变更、开发与部署
支持配置管理服务器,可以使用一套软件系统对所有应用程序的配置进行统一管理
项目地址:http://code.google.com/p/guzz/
文档:http://code.google.com/p/guzz/wiki/WikiHomePage?tm=6
详细内容 »
如何不用写java代码来完成开发?
对于大部分的产品和项目来说,页面变化是非常头痛的事情。每次小功能上线,新客户到来,都需要进行定制改造,不断的开发维护。每次开发一方面要改动页面,一方面要改动服务器代码,然后部署。而借助动态数据源,可以不用开发后端应用,直接完成功能开发。
新功能开发时,只需要定义需要的数据格式和获取方法,如通过xml上传1个sql语句,系统根据sql语句自动提取数据并转成通用的格式。开发过程中,后台java开发部分只是写好sql并且上传,这样前台通过某一个servlet可以动态的读取执行sql,并将结果按照json返给前端,以后所有的开发只需要前端做ajax实现页面即可。
详细内容 »
1: 下载struts2 包(2.1.8.1):
struts-2.1.8.1-all:下面有四个子包apps,docs,lib,src.
2: struts2jar包:
从struts-2.1.8.1-all\struts-2.1.8.1\apps\struts2-blank-2.1.8.1\WEB-INF\lib中复制所有jar文件,它是最小的jar文件集合。
3:struts2参考手册的使用:
struts-2.1.8.1-all/struts-2.1.8.1/docs/docs/guides.html
4:修改web.xml:
打开struts-2.1.8.1-all/struts-2.1.8.1/docs/docs/webxml.html文件,把如下内容写入web.xml.
详细内容 »
因为觉得本文还是可以起到抛砖引玉的作用的,就照着英文版自己翻译了,由于晚上时间伧俗所以难免有所纰漏,仅供参考。
如何去编写自己的手机游戏模拟器呢?
对于一个程序员来说,修改几行代码之后,等待它运行起来看效果时的编译等待时间显得特别漫长,而来回修改运行调试的无尽的等待应该算最操蛋事情了。而开发j2me游戏那频繁的编译混淆以及导出jar包令之前说的操蛋事更加突出。而操蛋加操蛋的就是那既启动速度很慢而按键响应很烂且调试功能很差的种多不同机型的模拟器。通过用j2se代码去模拟实现j2me的API函数也许我们可以使得手机上的java程序得到加速甚至不再操蛋。想要一个加速的、方便调试的、生成版本快速的、与机型无关的独立的模拟器?那么这篇文章将赐予你这个模拟器然后把你从繁琐的编译导出中解救出来~
详细内容 »
近期自己折腾自己,放着正统的maven + junit不用,却准备用ant + ivy 替代maven做依赖管理,用testng替代junit做单元测试。
现在要做的工作,其实很简单,就是ant的脚本中,搞定相关的target: 编译,运行单元测试。
详细内容 »
因为微软的文本txt默认可以保存的编码格式有
UTF-8
Unicode big endian
Unicode
还有ANSI四种
那么就先实现这四个吧
使用起来很方便
调用该类的静态方法readFile,参数给出文件的相对路径和想要的缓冲区空间模式(FILE_SIZE_SMALL, FILE_SIZE_NORMAL,
FILE_SIZE_BIG, FILE_SIZE_MAX)就可以以字符串的形式得到那个文本文件里面的内容了
详细内容 »
struts2 文件上传 和部分源码解析,以及一般上传原理
(1) 单文件上传
一.简介
Struts2并未提供自己的请求解析器,也就是就Struts2不会自己去处理multipart/form-data的请求,它需要调用其他请求解析器,将HTTP请求中的表单域解析出来。但Struts2在原有的上传解析器基础
上做了进一步封装,更进一步简化了文件上传。
Struts2默认使用的是Jakarta的Common-FileUpload框架来上传文件,因此,要在web应用中增加两个Jar文件:commons-fileupload-1.2.jar和commons-io-1.3.1.jar。它在原上传框架上做了进一步封装
详细内容 »
七年Java和JEE开发经验,JEE应用设计和高级架构师,拥有Sun的多项Java和J2EE方面的技能认证,多年项目经理、技术部经理的管理经验。拥有全面、扎实的Java和JEE理论知识,丰富的JEE应用开发经验。
更多作者:

















赞助商链接
上海招聘网
找好工作到上海才聘网 每天提供30万的高薪职位 百万上海地区精英人才任您选
www.caipinjob.com
21世纪人才网
找好工作到21世纪人才网 每天提供30万的高薪职位 百万上海地区精英人才任您选
www.21cnjob.org.cn
上海人才网
找好工作到上海人才网 每天提供30万的高薪职位 百万上海地区精英人才任您选
www.caipinjob.com
• 上海12333公共招聘网 • 招聘网站大全 • 上海英才网; 上海兼职网
书 乱码 优化 传递 大学生 学习 学生 找工作 技术 效率 新手 构建 注册码 添加新标签 程序员 编程 翻译 考试题 规则 认证 防盗链 验证码 acegi ajax Ant AOP Apache asp C++ dwr ewebeditor Hashtable Hibernate j2ee j2se Java java反射 jsp jsunit servlet spring sql Struts tomcat web