`
cfan_haifeng
  • 浏览: 122379 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

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" 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(),通过代理实例来执行被代理的也无法方法。
}
 

……

 

 

分享到:
评论

相关推荐

    spring-boot-websocket-client代码示例

    `spring-boot-websocket-client`这个项目就是一个关于此主题的代码示例。Spring Boot作为Java生态中的一个热门框架,简化了创建独立、生产级别的基于Spring的应用程序。而WebSocket则是一种在客户端和服务器之间建立...

    spring-cloud使用的各种示例

    - [spring-cloud-config-eureka](https://github.com/ityouknow/spring-cloud-examples/tree/master/spring-cloud-config-eureka):配置中心服务化和高可用代码示例 - [spring-cloud-config-eureka-bus]...

    spring-boot-parent代码示例

    spring-boot-parent 代码示例

    spring-boot-starter-kafka示例程序

    spring-boot-starter-kafka示例程序\n 支持springcloud1.5.4,kafka0.8.2.x\n 项目地址:https://github.com/zhyea/spring-boot-starter-kafka

    maven版spring-data-redis简单示例

    基于spring的子项目spring-data-redis写的一个基于hash类型的用户CRUD,经过简单的封装,可以实现通用CRUD,请事先安装好redis,配置文件redis.properties请做相应修改,希望对你有帮助。

    spring-cloud-examples

    spring-cloud-config-eureka:配置中心服务化和高可用代码示例 spring-cloud-config-eureka-bus:配置中心和消息总线示例(配置中心终结版) gateway-service-zuul:Spring Cloud Zuul使用初级篇 网关 均衡负载 ...

    spring-cloud-stream-samples, spring 云流示例.zip

    spring-cloud-stream-samples, spring 云流示例 spring Cloud示例应用程序这个库包含使用 spring 云流编写的应用程序的集合。 所有的应用程序都是自包含的。 它们可以针对 Kafka 或者RabbitMQ中间件技术运行。 你...

    springcloud-stream-rocketmq多topic示例代码

    springcloud-stream-rocketmq多topic示例代码

    Spring3+Spring-data-mongodb1.5.6示例

    在本示例中,我们将深入探讨如何在Spring 3框架中集成Spring Data MongoDB 1.5.6,以便高效地处理MongoDB数据库。Spring Data MongoDB是Spring Data项目的一部分,它提供了一个面向对象的API,使得与NoSQL数据库...

    spring导入eclipse时少的spring-cglib-repack-3.2.4.jar和spring-objenesis-repack-2.4.jar

    然而,有时候在导入Spring项目时,可能会遇到一些问题,例如标题中提到的"spring-cglib-repack-3.2.4.jar"和"spring-objenesis-repack-2.4.jar"这两个jar包的缺失。这些jar包对于Spring框架的正常运行至关重要,因为...

    spring-boot spring-security-oauth2 完整demo

    本篇文章将围绕“spring-boot spring-security-oauth2 完整demo”这一主题,详细阐述这三个框架如何协同工作,以及如何通过类似微信的方式获取token并访问资源。 首先,Spring Boot是基于Spring框架的快速开发工具...

    spring-cglib-repack-3.2.0.jar和spring-objenesis-2.2.jar

    标题 "spring-cglib-repack-3.2.0.jar" 和 "spring-objenesis-2.2.jar" 指的是两个在Spring框架源代码构建过程中常用的库。这两个库在Spring框架的运行和开发中起着至关重要的作用。 首先,让我们详细了解一下...

    spring-mvc代码示例+注释+文件解析(可直接运行)

    另外一个是spring-mvc特有的配置文件,处理跳转的代理类得(相当于struts功能,这里使用的是注解,当然还要加载扫描注解标示符的类),代码中为“spring-servlet.xml。下”。具体如何配置参见注释。, 3、关于具体...

    spring-framework-4.1.6.RELEASE.rar

    spring-aop-4.1.6.RELEASE.jar spring-aspects-4.1.6.RELEASE.jar spring-beans-4.1.6.RELEASE.jar spring-context-4.1.6.RELEASE.jar spring-context-support-4.1.6.RELEASE.jar spring-core-4.1.6.RELEASE.jar ...

    spring-beans-3.0.xsd

    《Spring框架中的beans配置文件详解——以spring-beans-3.0.xsd和3.1.xsd为例》 在Spring框架中,`spring-beans`是核心组件之一,它负责管理对象的生命周期和依赖关系。`spring-beans`的配置文件通常以`.xsd`为后缀...

    spring-boot-test示例程序

    综上所述,"spring-boot-test"示例程序涵盖了Spring Boot中测试的核心概念,包括Rest Controller的集成测试、单元测试的策略以及测试工具的使用,这些都是保证软件质量和可维护性的重要组成部分。通过学习和实践这些...

    spring-web.jar

    spring-web.jar spring-web.jar

    spring 3.2.4.RELEASE jar包

    spring-context-3.2.4.RELEASE.jar spring-core-3.2.4.RELEASE.jar spring-beans-3.2.4.RELEASE.jar spring-test-3.2.4.RELEASE.jar spring-web-3.2.4.RELEASE.jar spring-aop-3.2.4.RELEASE.jar spring-webmvc-...

Global site tag (gtag.js) - Google Analytics