spring用了那么久,但属于印象派的我早已经忘了不少,只记得的思想而已,进入参照老同事的博客重新复习了一下,索性也把这些代码给给复制了下来。
代码均来自:http://lavasoft.blog.51cto.com/62575/d-4
代码里也写清楚了原文地址,详细对比着看会放心一些,谢谢熔岩。
spring ioc 简单示例1
xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!-- 使用setter方式完成依赖注入 -->
<bean id="helloBean" class="com.example.test1.HelloBean">
<property name="helloWord">
<value>Hello!Justin!</value>
</property>
</bean>
</beans>
java:
package com.example.test1;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
public class SpringDemo2 {
public static void main(String[] args) {
// ApplicationContext 是BeanFactory 的扩展,功能得到了进一步增强,比如更易与aop集成、资源处理国际化
/*
* BeanFactory提供的高级配置机制,使得管理任何性质的对象成为可能。ApplicationContext是BeanFactory的扩展
* ,功能得到了进一步增强,比如更易与Spring
* AOP集成、消息资源处理(国际化处理)、事件传递及各种不同应用层的context实现(如针对web应用的WebApplicationContext
* )。简而言之,BeanFactory提供了配制框架及基本功能,而ApplicationContext则增加了更多支持企业核心内容的功能。
* ApplicationContext完全由BeanFactory扩展而来
* ,因而BeanFactory所具备的能力和行为也适用于ApplicationContext。
*/
// Spring的创始者Rod
// Johnson建议使用ApplicationContext来取代BeanFactory,在实现ApplicationContext的类中,最常使用的大概是一下三个:
// org.springframework.context.support.ClassPathXmlApplicationContext
// org.springframework.context.support.FileSystemXmlApplicationContext
// org.springframework.web.context.support.XmlWebApplicationContext
ApplicationContext context = new FileSystemXmlApplicationContext(
"classpath:com/example/test1/beans-config.xml");
HelloBean hello = (HelloBean) context.getBean("helloBean");
System.out.print("Word: ");
System.out.println(hello.getHelloWord());
}
}
spring aop 简单示例1
package com.example.test1;
/**
* 被代理类
*/
class MessageWriter{
/**
* 业务方法
*/
public void writeMessage() {
System.out.print("World");
}
}
package com.example.test1;
import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;
/**
* 实现包围通知,实际就是方法拦截器,MethodInterceptor是AOP联盟定义的接口.
*/
class MessageDecorator implements MethodInterceptor {
public Object invoke(MethodInvocation invocation) throws Throwable {
System.out.print("Hello ");
Object retVal = invocation.proceed();
System.out.println("!");
return retVal;
}
}
package com.example.test1;
import org.springframework.aop.framework.ProxyFactory;
/**
* AOP测试
*/
class HelloWorldAOPExample {
public static void main(String[] args) {
// 目标对象(被代理的对象)
MessageWriter target = new MessageWriter();
// 产生一个代理工厂
ProxyFactory pf = new ProxyFactory();
// 添加代理工厂的拦截器
pf.addAdvice(new MessageDecorator());
// 设置被代理对象
pf.setTarget(target);
// 获取一个代理实例
MessageWriter proxy = (MessageWriter) pf.getProxy();
// 从目标对象直接输出信息
target.writeMessage();
System.out.println("\n------------");
// 从代理对象输出信息
proxy.writeMessage();
}
// Spring AOP代理是通过ProxyFactory类来获取代理对象的。最简单的过程是:
//
// 1、创建代理工厂:new一个ProxyFactory实例。
// 2、给代理工厂加入通知者:ProxyFactory.addAdvisor(),通知者构建方式很多。
// 3、将目标加入工厂:ProxyFactory.setTarget()设置要代理的对象。
// 4、获取目标的代理实例:ProxyFactory.getProxy(),通过代理实例来执行被代理的也无法方法。
}
……
分享到:
相关推荐
每个模块应由易到难,逐步深入。 2. 实践项目:理论与实践相结合,设置实际的编程项目,如开发简单的桌面应用或Web应用,让学生在实践中巩固所学知识。 3. 进阶内容:随着学生技能提升,可加入高级主题,如JVM原理、...
"芝麻开门博客网.zip"中的内容十分丰富,它不仅包括了Java基础的编程指南,还提供了大量的源代码示例。这些源代码涵盖了从基础语法实践到实际项目开发的各个层面,让学习者能够通过阅读和分析真实世界的代码来提高...
课程通常会按照从易到难的顺序设计,逐步引导你掌握Struts2的相关技术。 在【压缩包子文件的文件名称列表】中,我们看到只有一个名为"Lesson1"的文件。这可能表示该压缩包包含一系列的课程单元,每个单元都以...
每个子目录下可能有PDF文档(讲义)、代码示例(.cs文件)、解压缩后的库文件(.dll)、视频教程(.mp4或.mpg)等。 在这个课程中,学习者可以期待涵盖以下关键知识点: 1. **基础语法**:包括变量、数据类型、...