摘要: 我们知道,Spring中大量使用了反射机制,那么究竟是什么地方使用了呢?spring的一大核心概念是注入,但是,这存在的一个前提就是类是由spring管理起来的。反射是根据className生成一个具体的实例,这是一个很实用的思想。比如:当我们需要根据传进来的参数的类型,选择具体的实现类时,反射机制就能很好的解决问题。然而,一般我们使用反射机制,创建的代理类是根据构造函数实例化的。而不是从spring容器中注入 。这样就会导致一个问题,无法在创建的代理类中实现注入功能。当然,如果你一定要使用的话,系统会提示空指针错误。这个时候,如果把反射创建的类由spring注入就可以有效的解决这个问题 。这 阅读全文
posted @ 2012-08-24 12:32 New~one 阅读(1344) 评论(0) 推荐(0) 编辑
摘要: 在金融IT公司,最多的应该算程序员了,他们往往最辛苦,不但要接受长期出差,经常加班的现实,而且还要经常主动学习新技术,不但要应对周围别的程序员的竞争,还要应对刚出校门的小弟弟,小妹妹的竞争。公司的开发都工厂化了,每个人只负责某一块功能的开发,或者仅仅是一块机械甚至繁琐,枯燥的工作,这样的结果是对人的技能的要求降低了,自己多工作几年,似乎并不比这些小弟弟,小妹妹有更多的优势,相反,这些新人精力充沛,对工资待遇要求也不高,看到这些,想想岁数一年年大起来的自己,莫名的焦虑涌上心头,自己的出路在哪里?在平时,由于工作的原因,接触了不少这样的程序员,进行了不少的交流,我想,金融IT公司的程序员的职... 阅读全文
posted @ 2012-08-24 04:36 New~one 阅读(587) 评论(0) 推荐(0) 编辑
摘要: wait方法:当前线程转入阻塞状态,让出cpu的控制权,解除锁定。 notify方法:唤醒因为wait()进入阻塞状态的其中一个线程。 notifyAll方法: 唤醒因为wait()进入阻塞状态的所有线程。 synchronized(线程同步)可以修饰方法,或者方法内部的代码块。被synchronized修饰的代码块表示:一个线程在操作该资源时,不允许其他线程操作该资源。 这三个方法都必须用synchronized块来包装,而且必须是同一把锁,不然会抛出java.lang.IllegalMonitorStateException异常。下面是一个生产者、消费者例子:public clas... 阅读全文
posted @ 2012-08-19 18:04 New~one 阅读(833) 评论(0) 推荐(0) 编辑
摘要: 1.以Mysql为例:<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><!-- Generated by MyEclipse Hibernate Too 阅读全文
posted @ 2012-08-18 23:19 New~one 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 1)通过重定向<!-- 防止表单提交重复的方式:重定向redirectAction --> <action name="Action1" class="com.struts.Action1" method="myExecute"> <result name="success" type="redirectAction"> <param name="actionName">Action2</param> <par 阅读全文
posted @ 2012-08-18 23:14 New~one 阅读(596) 评论(0) 推荐(0) 编辑
摘要: 1) 新建一个以 Action 名命名的 properties 文件,如:RegisterAction.properties。2) 然后在该属性文件中指定每一个出错字段的错误消息invalid.fieldvalue.birthday=birthday invalid!! 阅读全文
posted @ 2012-08-18 23:08 New~one 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 以前我们程序连接数据库的时候,每一次连接数据库都要一个连接,用完后再释放。如果频繁的数据库操作,就会导致性能很低。连接池的出现,为开发过程提供了一个很好的管理平台。当程序中需要建立数据库连接时,只须从内存中取一个来用而不用新建。同样,使用完毕后,只需放回内存即可。而连接的建立、断开都有连接池自身来管理。同时,我们还可以通过设置连接池的参数来控制连接池中的连接数、每个连接的最大使用次数等等。通过使用连接池,将大大提高程序效率,同时,我们可以通过其自身的管理机制来监视数据库连接的数量、使用情况等。 而Hibernate的出现把连接池的使用引入了一个新的利用方式,让你充分享受配置化给开发带来的便利. 阅读全文
posted @ 2012-08-18 22:54 New~one 阅读(411) 评论(0) 推荐(0) 编辑
摘要: 亲情,友情,爱情我不知道我为什么要写这篇文章,是何种因素促发了我的思考。这三种情感伴随着人的一生,无法回避,如何处理好这三种感情关乎一个人的完整性,由于种种因素我本人对待感情存在理解障碍表达缺陷,因此下面所写仅是个人的不成熟理解。我本人现在来谈这可能有点滑稽,一个肩不能挑手不能提,下不了厨房,出不得大门,赚不了大钱,自己可能都养不活,生活在社会底层的人谈论人性,谈论人应该怎样活,谈论人的意义,总感觉有点让人贻笑大方的味道,是个笑话,但,谁叫现在是暑假呢。亲情有人把自己的亲情限制在夫妻,孩子范围内,父母,兄弟概不关心;有人把亲情放在家族范围内,外姓人不关我事;还有人眼中只有自己。爱情、友... 阅读全文
posted @ 2012-08-18 22:34 New~one 阅读(248) 评论(0) 推荐(0) 编辑
摘要: hibernate有两种查询排序的方式:内存排序和数据库排序。 数据库排序使用order-by属性。 内存排序使用sort属性。其中sort的属性值natural代表的是自然升序排列,unsorted代表的是不排序,此外,我们还可以自定义排序规则,方式是定义一个类,让其实现Comparator 接口,并且实现该接口中的compare方法,在该方法中实现排序规则即可。然后将该自定义排序规则的类名作为sort的属性值即可。 阅读全文
posted @ 2012-08-18 22:20 New~one 阅读(4432) 评论(0) 推荐(0) 编辑
摘要: 1)transactional(事务缓存):必须在受管的环境下使用,保存可重复读的事务 隔离级别,对于读/写比例大,很少更新的数据通常可以采取这 种方式。2) read-write(读写缓存):使用timestamp 机制维护已提交事务隔离级别,对 于读/写比例大,很少更新的数据通常可以采取这种方式。3) nonstrict-read-write(不严格的读写缓存):二级缓存与数据库中的数据可能会出现不 一致的情况。在使用这种策略的时候,应该设置足够短的缓存 过期时间,否则就有可能从缓存中读取到脏数据。当一些数据 很少改变(一天、两天都不改变的数据),并且这些数据如果出... 阅读全文
posted @ 2012-08-18 22:18 New~one 阅读(142) 评论(0) 推荐(0) 编辑