文章一:
使用Synchronized关键字同步类方法:http://wjh2-316.blog.163.com/blog/static/278727532009113061849658/
文章二:
使用Synchronized块同步方法 : http://wjh2-316.blog.163.com/blog/static/278727532009113061934438/
...
本博客关于Java项目开发中的乱码解决文章已经有很多了,如 { [又一次成功解决Mysql乱码问题] [再谈乱码问题,如何解决MYSQL数据中文乱码问题] [解决jsp,tomcat,MYSQL下中文乱码问题] },但是,每次总是有很多不同的地方,往往不能通过以前的方式来解决,或者总是有很多的不同,以至于没法解决.
3:添加Maven运行环境变量,具体方法:[我的电脑]->右键,[属性]->[高级]->[环境变量]==> 添加一个环境变量: 变量名: MAVEN_OPTS ,变量值: -Xms256m -Xmx512m -Dfile.encoding=UTF-8 , (其实只要-Dfile.encoding=UTF-8这个就可以解决乱码了,另外两个可以不用.)
好了,Maven中编译时遇到JAVA直接写的中文乱码问题解决了.
2: 给服务器(包括开发员本地开发环境的电脑)设置环境变量(步骤就不说了,参数前面),添加一个环境变量: 变量名: nls_lang ,变量值: AMERICAN_AMERICA.AL32UTF8, 这样,所有的开发环境和发布环境都统一了,中文乱码问题也OK了 .......................
今天在工作中遇到一个问题,公司使用了一个自定义的类型:Money,而数据库是没有这种类型的,对应的数据库字段的类型为BigDecimal. 开始时,我没在意这个问题,按照一般的作法写好SQLMAP,运行,发现出了问题,后来仔细一想,发现了这个自定义类型Money的问题,在Ibatis 里,是没有默认的方法可以解析或映射我们的自定义类型的.
那怎么办呢,经常一番Google,以及我的聪明才智,最后完美了解决了一个问题.
在Ibatis中,已经提供了解决方案,就是使用Ibatis的TypeHandler , 这种方法呢,其实应该说是有点繁琐,但是,没办法,只能这么做了.
具体办法如下:(本文原创文章,转载时请注明文章来源:巴士飞扬技术博客:原文地址: http://www.busfly.cn/post/Ibatis-java-sql-sqlmap-class.html )
第一步:添加自定义类型Money的TypeHandler类.................................
好了,这个类就写好了,如果还不熟悉的,可以再去看看Ibatis自带的常用类型映射到SqlMap的类(全部在Ibatis包 的:com.ibatis.sqlmap.engine.type包下),如 BigDecimalTypeHandler,BooleanTypeHandler,ByteArrayTypeHandler,ByteTypeHandler,DoubleTypeHandler 等等,里面很多的.
当然也不只能按照上面这么方法写,在看了Ibatis包的:com.ibatis.sqlmap.engine.type包下的类时,发现还有其它的写法,这里就不详细介绍了,但是其写法的麻烦程度不在这个方法之下,有兴趣的朋友可以去看看.
第二步:在你的SQLMAP映射文件里,在相应的映射字段后面都加上 typeHandler="com.*.*.*.util.MoneyTypeHandler" , 如下:................................
好了,这样两步走就OK了,思路很清晰,说麻烦也不麻烦,说不麻烦,其实也还是很麻烦的,在SQL映射文件里,每个用到这个类型的地方都要进行上面的写法,但是,不管怎样,目前来说,只能这么做了.
今天在做项目时,突然发现一个同事在使用Velocity时,写了一些以前我没见过的代码,很是好奇,经过打听,才知道,那些特别的代码原来不是Velocity的标签或者功能,原来是Struts的标签.具体情况是这样的:我们目前项目的开发,使用的是Spring2.5+Struts2+Ibatis2+Velocity,在做一个表单时,我原先写的Velocity代码如下: .......
当时看到这段代码时,我很是惊喜,代码量减少了大半,我开始以为是Velocity的更高级用法,但是,经过仔细的思索,后,觉得这不是Velocity的语法,而像另一种标签的语法,Struts2的标签.经过一问,果然和我的猜想一样..............
自从[关于qwikioffice EXT2 desktop转JSP的发展方向] 文章发表以来,众多朋友加入到这个队伍来,而我之前太忙,使得进度缓慢,让大家有所失望。春节回来后,在女友的鼓励下,连续几天高强度的研究qwikioffice的PHP代码,终于使得此工作有了突破进的进展。但是,由于开始设计的思路上不太完善,目前虽然已经基本实现了在JSP平台上的使用,但是,在将来的扩展及使用上,很可能会带来意外的麻烦。
。。。。。。。。。。。。。。。
关于新项目的构思上,目前,我有两种想法:。。。。。。。。。。。。
作为开发者来说,我很想采用第二种方式,以摆脱被那PHP代码及可怕的表结构设计的烦恼,但是,又担心自主开发时带来与pHP版的差异及升级性问题。目前,我想,还是两个想法同步进行,这样就可以在同时进行两个项目中,相互借鉴,说不定,将来两种方式都成功了,又让世人多一种选择。
如果新考虑的这两种思路开始了的话,我会第一时间公布项目的SVN地址,希望有想法的朋友们也和我一起来。。。。。。。。。。。。。。。。。
这两天,突然无法启动我的MyEclipse6.5了,不知道为什么,提示错误: JVM terminated. Exit code=-1。
昨天,我以为是机器运行时间太长,重启一下,果然好了。但是今天又来了。看了一下错误提示,我以为是JVM有问题,就在启动Eclipse里加个JVM的参数,结果还是不行。
后来在网上找了一下,有人说是JAVA环境配置的问题,我想这不可能,因为以前一直用的好好的。有人说是JVM的问题,这个我刚刚换了一个,也不是这个问题,后来看来有人说是:eclipse.ini中内存设置过大的问题,虽然我不以为然,还是试了一下,以前我修改过内存设置,一直都好好的,之前eclipse.ini的配置如下:。。。。
之前的文章[EXT2 desktop 研究] 中提到将PHP的Ext2 desktop转到JSP(J2EE)平台,后来引起一些网友的重视,并与我探讨其相关问题.
那应该将[qwikioffice EXT2 desktop]做成怎样的独立模块呢,我想应该考虑到以下几个方面,或者说原则:
基于以上几个原则考虑,最近我将好好构思设计一下具体方案,希望能在一个月内,在春节前发布第一个版本.......
最近工作很忙,忙得连博客也没时间更新了。
忙什么呢,项目开发嘛,这次项目有一小部分是直接搬移的以前的项目,应该说这次项目就是在以前一个项目上来做的,但是,项目中的框架模式都要更新到最近版本,其中在spring2.0升级到spring2.5时就出问题了,第一个问题就是在更换spring.jar后,启动项目时,出现java.lang.ClassNotFoundException: org.springframework.web.struts.ContextLoaderPlugIn 错误,其次就是在spring2.5中缺少了一个JAR:spring-mock.jar。我在spring2.5的压缩包里没有找到这个JAR,不过发现了mock的一个源码文件夹。
其实这两个问题都是spring2.5的jar包里没有附带这些类,而是单独放在其它JAR里,详细说明如下:
在Spring 2.5中, Spring Web MVC 不再是 'spring.jar' 文件的一部分. Spring MVC以'spring-webmvc.jar' 和'spring-webmvc-portlet.jar'文件形式在发行包的 lib/modules 目录中存在。 另外,对Struts 1.x的支持被独立成 'spring-webmvc-struts.jar'。
注意: 经常被使用的Spring的DispatcherServlet也是Spring Web MVC框架的一部分。 因此,就算你只是为了远程访问(例如,暴露Hessian或者 HTTP调用服务)而使用DispatcherServlet,你也得将'spring-webmvc.jar'(或者 'spring-webmvc-portlet/struts.jar')放到'spring.jar'旁边去。Spring 2.5的 'spring-test.jar' 取代了'spring-mock.jar',表达其对test context framework的强烈关注。 注意 'spring-test.jar' 包含了上个版本 'spring-mock.jar'中的一切,因此如果是单元或集成测试,可以直接取代
解决办法:第一个问题是因为我的系统使用的是Struts1.2,所以还应该加入'spring-webmvc-struts.jar'包就可以了。第二个问题只要加入'spring-test.jar' 包就可以了,应该说,还是比较容易解决的,只要我们了解一下spring2.5与2.0的差别就会知道了。。。。。