[maven + spring]SpringInAction方法替换
2014-03-28 16:00
330 查看
[align=center][color=violet][size=x-large]Spring 方法替换例子[/size][/color][/align]
1.sec3.xml中
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.0.xsd">
<bean id="tigerReplacer" class="com.lh.springtest02.section3.TigerReplacer" />
<bean id="magicbox" class="com.lh.springtest02.section3.MagicBoxImpl">
<replaced-method name="getContents" replacer="tigerReplacer"/>
</bean>
<bean id="harry" class="com.lh.springtest02.section3.Magician">
<property name="magicWords" value="Bippity boppity boo" />
<property name="magicBox" ref="magicbox" />
</bean>
</beans>
2.替换方法实现
import java.lang.reflect.Method;
import org.springframework.beans.factory.support.MethodReplacer;
public class TigerReplacer implements MethodReplacer{
public Object reimplement(Object obj, Method method, Object[] args)
throws Throwable {
return "A ferocious tiger";
}
}
3.MagicBoxImpl.java
public class MagicBoxImpl implements MagicBox{
public MagicBoxImpl() {
}
public String getContents() {
return "A Beautiful assistant";
}
}
4.Magician.java
public class Magician implements Performer{
private MagicBox magicBox;
private String magicWords;
public void perform() {
System.out.println(magicWords);
System.out.println("The magic box contains ...");
System.out.println(magicBox.getContents());
}
public void setMagicBox(MagicBox magicBox) {
this.magicBox = magicBox;
}
public void setMagicWords(String magicWords) {
this.magicWords = magicWords;
}
}
5.Bean测试
ApplicationContext ac = new ClassPathXmlApplicationContext("section3/sec3.xml");
Magician mc = (Magician)ac.getBean("harry");
mc.perform();
相关文章推荐
- 《Spring in action》3rd中SpringPizza项目的运行方法
- SPRING IN ACTION 第4版笔记-第四章ASPECT-ORIENTED SPRING-010-Introduction为类增加新方法@DeclareParents、<aop:declare-parents>
- spring in action 学习笔记(三)通过工厂方法创建bean
- [maven + spring]SpringInAction 注册自定义属性编辑器时出现问题
- SPRING IN ACTION 第4版笔记-第二章WIRING BEANS-007-以set方法注入<property>\p-namespace\util-space
- SPRING IN ACTION 第4版笔记-第十一章Persisting data with object-relational mapping-004JPA例子的代码
- 【Spring in action】基于Java配置SpringMVC中使用Spring及SpringMVC各种请求详解
- Spring in Action 4th 学习笔记 之 AOP
- Spring in Action 3 - Spring’s bean scopes
- 读书笔记:spring in action
- SPRING IN ACTION 第4版笔记-第四章ASPECT-ORIENTED SPRING-008-带参数的ADVICE
- SPRING IN ACTION 第4版笔记-第五章Building Spring web applications-001-SpringMVC介绍
- SpringInAction 学习笔记:高级装配
- Eclipse添加maven之后报错 Eclipse is running in a JRE, but a JDK is required 解决方法
- Spring in Action 学习笔记—开始Spring之旅
- SPRING IN ACTION 第4版笔记-第六章Rendering web views-001- Spring支持的View Resolver、InternalResourceViewResolver、JstlView
- Spring in action 读书笔记
- java~springboot~ibatis数组in查询的实现方法
- SPRING IN ACTION 第4版笔记-第九章Securing web applications-002-把用户数据存在memory里(AuthenticationManagerBuilder、 UserDetailsManagerConfigurer.UserDetailsBuilder)
- Spring AOP进行日志记录,管理 (使用Spring的拦截器功能获取对action中每个方法的调用情况)