Spring-由易到难代码示例
? ? ? 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" name="code">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.XmlWebApplicationContextApplicationContext 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(),通过代理实例来执行被代理的也无法方法。}?
……
?
?