- 浏览: 46325 次
- 性别:
- 来自: 北京
最新评论
-
blliy117:
[list=1]
[list=1]
[*][*]
[/li ...
Spring 实现 AOP
文章列表
bean的配置定义
引入idref
<property name="targetName">
<idref bean="theTargetBean" />
</property>
在运行时,它完全等同于
<property name="targetName">
<value>theTargetBean</value>
</property>
使用idref标记 ...
- 2008-04-10 20:57
- 浏览 1573
- 评论(0)
移除重复的代码
在项目进行过程中,经常会出现功能类似,甚至完全一样的代码,我们应尽量提取出来作为单一对象的处理逻辑,其他地方直接调用即可
代码异味
首先判断代码的稳定性,如果一些具体的情况或者需求发生改动了,然后我们来看一下我们的代码要满足新的需求是否需要改动,如果需要改动则表明代码是不稳定的,这是个很麻烦的事情,因为有很多种可能性,我们不知道那些需要考虑,那些不需要考虑,有个更简单的办法,就是如果我们已经第三次修改这些代码了,那我们就认定它是不稳定的,但这是一个被动的方法,虽然它很有效
我们有个更好的办法,如果这个代码是不稳定的,那么它往往包含一些痕迹,我们把这种痕迹称为“代码异味 ...
- 2008-04-09 21:34
- 浏览 1224
- 评论(0)
极限编程与敏捷开发
徐景周
在按照我的理解方式审查了软件开发的生命周期后,我得出一个结论:实际上满足工程设计标准的惟一软件文档,就是源代码清单。
-- Jack Reeves
简介
2001年,为了解决许多公司的软件团队陷入不断增长的过程泥潭,一批业界专家一起概括出了一些可以让软件开发团队具有快速工作、响应变化能力的价值观和原则,他们称自己为敏捷联盟。敏捷开发过程的方法很多,主要有:SCRUM,Crystal,特征驱动软件开发(Feature Driven Development,简称FDD),自适应软件开发(Adaptive Software Development ...
- 2008-04-09 17:54
- 浏览 1079
- 评论(0)
Spring 连接RMI 服务
<bean id="rmiService" class="RmiProxyFactoryBean">
<property name="serviceUrl">
<value>********</value>
</property>
//指明了这个服务实现的接口,通过调用这个接口实现RMI
<property name="serviceInterface">
< ...
- 2008-04-09 15:34
- 浏览 2392
- 评论(0)
事务:要么全有要么全无的操作叫做事务
事务的几个特征:
(1)原子性Atomic
(2)一致性Consistent
(3)隔离性Isolated
(4)持久性Durable
Spring可供选择的事务管理器
(1)DataSourceTransactionManager在单一的jdbc datasource中管理事务,配置bean时注入DataSource
(2)HibernateTrancationManager,配置bean时注入SessionFactory,
HibernateTrancationManager把事务管理委托给从Hibernate session中获得的net.sf ...
- 2008-04-08 19:54
- 浏览 8396
- 评论(0)
Spring对ORM框架做了整合
Spring负责以下几部分功能:
事务管理
异常处理
线程安全,轻量级模版类
便利的支持类
资源管理
Spring 对Hibernate的整合
(1)管理Hibernate的资源
注册一个SessionFactory,替代hibernate.peropties文件
注册HibernateTemplate(线程安全的,多个DAO公用一个)
把HibernateTemplate自动注入到DAO中
(2)用HibernateTemplate访问Hibernate
Hibernate中的模版回调机制 ...
- 2008-04-08 19:24
- 浏览 5569
- 评论(0)
首先我们编写了通知advice,但是我们还不能表达在应用系统的什么地方应用这些通知,切入点决定了一个特定类的特定方法是否满足特定规则,如果满足则通知就应用到该方法上,Spring的切入点可以让我们灵活的定义在什么地方应用通知。
Spring的切入点框架的核心接口PointCut
public interface PointCut {
ClassFilter getClassFilter();
MethodMatcher getMethodMatcher();
}
PointCut 是根据方法和类决定在什么地方织入通知的。
ClassFilter决定了一个类是否符合通 ...
- 2008-04-08 11:15
- 浏览 5342
- 评论(0)
用java编写spring通知
spring中所有的通知都是java类的形式编写,定义在什么地方应用通用的切入点通常编写在spring的配置文件中,而其他框架比如AspectJ,需要特定的语法编写切面和定义切入点,虽然这样可以得到更强大和细致的 ...
- 2008-04-08 00:20
- 浏览 2305
- 评论(1)
某些功能在应用系统中有可能经常使用,但是却不能通过继承的方式来解决,因此我们引入切面的实现方式
AOP名称
1.切面aspect:比如日志,日志记录在系统的各个模块都用到,继承重用并不合适,我们可以创建一个日志切面。
2.连接点joinpoint:程序执行过程中,插入切面的地点。
3.通知advice:通知切面的实际实现
4.切入点pointcut:定义了通知应该应用于哪些连接点,定义了哪些连接点要被通知
5.引入introduction:为已存在的类添加新的属性和方法
6.目标对象target:被通知的对象
7.代理proxy:将通知应用到目标对象后创建的对象,对于客户来说,目 ...
- 2008-04-07 21:02
- 浏览 2240
- 评论(0)
在应用系统生命周期中,ApplicationContext会发布很多事件,这些事件都继承抽象类org.springframework.context.ApplicationEvent,系统事件有:
contextClosedEvent------上下文关闭的时候发布的事件
ContextRefreshedEvent---上下文初始化或者刷新的时候发布的事件
RequestHandledEvent-----上下文中,当一个请求被处理后发布的事件
自定义事件及事件的监听
(1) 编写事件类: MyEvent 继承ApplicationEvent
(2) 发布事件:context.publishE ...
- 2008-04-07 20:42
- 浏览 2451
- 评论(0)
Spring 解析资源文件
我们把资源信息放置到properties文件中
通过配制bean来访问资源文件
<bean id="messageSource" class="org.springframework.context.support
ResourceBundleMessageSource">
<property name="basename">
<value>fileName</value>
</proper ...
- 2008-04-07 20:32
- 浏览 1188
- 评论(0)
Bean的后处理
Spring提供了2次机会让你切入到Bean的生命周期中去检查并修改它的配制,这叫做后处理
后处理的类须继承:public interface BeanPostProcessor{
Object postProcessBeforeInitializtion(Object bean,String name) throws BeansExcepton;
//在Bean的初始化方法之前调用
Object postProcessAfterInitializtion(Object bean, String name) throws BeansExcepton; ...
- 2008-04-07 20:04
- 浏览 1274
- 评论(0)
首先假设一个复杂对象是由多个部件组成的,Builder模式是把复杂对象的创建和部件的创建分别开来,分别用Builder类和Director类来表示.
首先,需要一个接口,它定义如何创建复杂对象的各个部件:
public interface Builder {
//创建部件A ...
- 2008-04-07 00:01
- 浏览 944
- 评论(0)
Prototype模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的细节,工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建。
因为Java中的提供clone()方法来实现对象的克隆(具体了解clone()按这里),所以Prototype模式实现一下子变得很简单.
以勺子为例:
public abstract class AbstractSpoon implements Cloneable
{
String spoonName;
public void setSpoonName(Str ...
- 2008-04-06 23:59
- 浏览 968
- 评论(0)