`

采用XML的方式配置Spring的IOC和AOP

阅读更多

项目(包)列表:

 

    

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
	
	<!--spring 配置文件位置-->
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath:spring.xml</param-value>
	</context-param>
	<!--spring 监听器-->
	<listener>
		<description>spring监听器</description>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	
	
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

 

<?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:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="
	http://www.springframework.org/schema/beans 
 	http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
  	http://www.springframework.org/schema/tx
 	http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
 	http://www.springframework.org/schema/aop 
 	http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
    http://www.springframework.org/schema/context   
    http://www.springframework.org/schema/context/spring-context-2.5.xsd
 ">
  <bean id="AopMethod" class="yingjun.aop.AopMethod"> </bean>
   <bean id="u" class="yingjun.dao.impl.UserDaoImpl"> </bean>
   <bean id="userService" class="yingjun.service.impl.UserServiceImpl">
   		<property name="userdao"  ref="u"></property>
   </bean>
  <aop:config>
        <aop:pointcut expression="execution( * yingjun.service..*.*(..))" id="servicepointcut"/>
    	<aop:aspect id="myaspect" ref="AopMethod">
    	    <!--对应expression执行前运行  -->
    		<aop:before method="beforeMethod" pointcut-ref="servicepointcut"/>
    		<!--对应expression执行后返回正常运行  -->
    	    <aop:after-returning method="AfterReturningMethod" pointcut-ref="servicepointcut"/>
    	    <!--对应expression抛出异常运行  -->
    	    <aop:after-throwing method="AfterThrowing"  pointcut-ref="servicepointcut"/>
    	    <!--对应expression执行后运行(不管是否抛出异常都会执行)  -->
    	    <aop:after method="AfterMethod" pointcut-ref="servicepointcut"/>
    	</aop:aspect>
    	
  </aop:config>

</beans>

 

package yingjun.aop;



public class AopMethod {



	public void beforeMethod(){
		System.out.println("before method...AOP!!!!");
	}
	
	public void AfterReturningMethod(){
		System.out.println("After  Returning  normal...AOP!!!!");
	}
	public void AfterMethod(){
		System.out.println("After  method...AOP!!!!");
	}
	public void AfterThrowing(){
		System.out.println("After Throwing...AOP!!!!");
	}
	

}

 

package yingjun.service;


import yingjun.model.User;



public interface UserServiceI {
	
	/*用户操作*/
	public void DoUser(User use);
	

}

 

package yingjun.service.impl;


import yingjun.dao.UserDaoI;
import yingjun.model.User;
import yingjun.service.UserServiceI;

public class UserServiceImpl implements UserServiceI {
	private UserDaoI userdao;
	
	public void DoUser(User user) {
		userdao.SaveUser(user);
		
	}
	public UserDaoI getUserdao() {
		return userdao;
	}



	public void setUserdao(UserDaoI userdao) {
		this.userdao = userdao;
	}




}

 

package yingjun.dao;

import yingjun.model.User;



public interface UserDaoI   {
	public void AddUser(User user );	
	public void DeleteUser(User user );
	public void SaveUser(User user );
}

 

package yingjun.dao.impl;

import yingjun.dao.UserDaoI;
import yingjun.model.User;


public class UserDaoImpl implements UserDaoI{

	
		public void AddUser(User user ) {
			System.out.println("增加用户成功");
			
		}
		public void DeleteUser(User user ) {
			System.out.println("删除用户成功");
			
		}

		public void SaveUser(User user ) {
			System.out.println("保存用户成功");
					
	}

}

 

package yingjun.model;

public class User {
	private int id;
	private String name;
	
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
}

 

package yingjun.test;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import yingjun.model.User;
import yingjun.service.UserServiceI;

public class SpringTest {

	@Test
	public void springtest(){	
		ApplicationContext ac=new ClassPathXmlApplicationContext("spring.xml");
		UserServiceI us=(UserServiceI)ac.getBean("userService");
		User user=new User();
		us.DoUser(user);
	}

}

 运行结果:

 

 

  • 大小: 23 KB
  • 大小: 10.7 KB
  • 大小: 16.7 KB
分享到:
评论

相关推荐

    spring ioc和aop原理流程图(详细)

    Spring 框架是Java开发中的核心框架,它主要由两个关键部分组成:IOC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)。这两个概念是Spring框架的核心特性,极大地简化了企业...

    springIOC与AOP配置

    Spring提供XML、注解和Java配置三种方式来实现IOC配置。最常见的是XML配置,例如: ```xml &lt;!-- 设置数据源属性 --&gt; ``` 这里,`exampleService` Bean依赖于`dataSource` Bean,通过`ref`属性进行注入。 ...

    SpringIOC和AOP实现机制模拟

    Spring框架是Java开发中不可或缺的一部分,它通过提供控制反转(IOC)和面向切面编程(AOP)等核心特性,极大地简化了企业级应用的构建。让我们深入探讨这两个概念及其在Spring中的实现机制。 首先,Spring的控制...

    myeclipse spring IOC和AOP 例子

    下面将详细阐述Spring的IOC和AOP,以及如何在实际项目中实现和配置。 ### Spring IOC(Inversion of Control,控制反转) 控制反转是一种设计模式,它的核心思想是将对象的创建和管理交由容器负责,而不是由对象...

    Spring IOC AOP MVC 简单例子

    例如,`SpringIOC`目录中的配置文件(如`applicationContext.xml`)用于定义bean的定义和它们之间的依赖关系。通过XML或注解方式声明bean,Spring可以自动管理bean的实例化、初始化和销毁,从而简化了代码并提高了可...

    Spring IOC和AOP代码与笔记整理

    Spring框架是Java开发中不可或缺的一部分,它以IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)为核心,极大地简化了企业级应用的开发工作。本篇将深入探讨Spring的这两...

    Spring IOC和Spring AOP_spring aop_springIOC

    综上所述,Spring的IOC和AOP提供了强大的工具,帮助开发者实现松耦合、模块化和关注点分离,从而提升代码的可维护性和复用性。通过学习和熟练掌握这两个核心概念,能够更好地利用Spring框架进行高效开发。

    Spring IOC和aop的原理及实例详解

    Spring IOC和AOP的原理及实例详解 在软件开发中,控制反转(IOC)和面向切面编程(AOP)是两种非常重要的设计模式。Spring框架正是基于这两种模式的思想设计的。下面我们将详细介绍Spring IOC和AOP的原理及实例详解...

    Spring的Aop和Ioc示例

    Spring的AOP和IOC可以协同工作,为应用程序提供更高级别的抽象。例如,你可以定义一个事务管理的切面,当被标记的业务方法执行时,这个切面会自动管理事务的开始、提交或回滚。这可以通过Spring的`@Transactional`...

    helloAop.zip 内含spring ioc,aop例子

    本压缩包"helloAop.zip"包含了Spring框架的两个关键特性:IOC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)的示例。下面将详细介绍这两个概念及其在实际开发中的应用。 *...

    Spring中IoC优点与缺点解析

    IoC(Inversion of Control)是 Spring 框架中的一种设计模式,它的主要思想是将对象的创建和管理交给容器,从而解耦合对象之间的依赖关系。今天,我们将详细解析 IoC 的优点和缺点。 优点 1. 简化对象的创建:IoC ...

    springIOC及AOP底层原理Demo实现

    具体实现上,Spring AOP有两种实现方式:基于代理的AOP和基于ASM字节码的AOP。基于代理的AOP主要使用JDK动态代理或CGLIB库生成目标对象的代理对象,代理对象在方法调用时拦截并执行通知。而基于字节码的AOP则在运行...

    Spring中IOC/AOP的说明和例子

    在Spring框架中,IOC(Inversion of Control,控制反转)和AOP(Aspect-Oriented Programming,面向切面编程)是两个核心的概念,它们极大地提高了软件开发的灵活性和可维护性。 **IOC(控制反转)**是Spring的核心...

    学习spring ioc和aop

    spring 核心功能演示项目 1. applicationContext xml方式和注解方式配置 2. pring bean循环依赖。 3. spring bean 启动顺序。 4. BeanDefinition编程式注入到容器。 5. spring aop 打印 6. spring 事务

    Spring IOC、AOP实现代码,可调试查看内部原理,简单易懂

    Spring框架是Java开发中不可或缺的一部分,它通过提供Inversion of Control (IOC)和Aspect-Oriented Programming (AOP)两大核心特性,极大地简化了企业级应用的开发工作。本资源包含Spring IOC和AOP的实现代码,使得...

    Spring AOP IOC源码笔记.pdf

    Spring支持两种配置方式:XML配置和Java配置。XML配置是早期常用的,通过`&lt;bean&gt;`标签定义Bean及其依赖关系。Java配置则是从Spring 3.0引入的,使用@Configuration和@Bean注解,使得配置更加直观且类型安全。 4. ...

    Spring3.1 IOC+AOP需要的jar包

    Spring 3.1 是一个非常重要的Java框架,它在企业级应用开发中广泛使用,尤其在控制反转(IOC)和面向切面编程(AOP)方面。这些概念是Spring框架的核心特性,帮助开发者实现松耦合和代码复用,提高了应用程序的可...

    spring ioc.aop

    spring 的aop的详解如:切面,连接点,通知,切入点,目标对象,代理对象及annotation方式的aop实现和xml方式的事务管理等

    spring ioc aop simulate

    综上,Spring的IoC和AOP特性为开发者提供了强大的工具,以解耦和模块化的方式构建应用程序,提高了代码的可读性和可维护性。通过深入理解和熟练掌握这两个特性,可以显著提升开发效率并降低维护成本。

Global site tag (gtag.js) - Google Analytics