SPRING--Spring中IOC(反转控制) 和 AOP(面向方面编程)
2012-10-11 10:54
627 查看
一、IOC
基本注入和集合注入
实体类Bean--配置文件(applicationContext)--测试类(Test)
1.1 实体Bean:属性+getter()方法+setter()方法
//----此处省略其他属性的getter()和setter()方法----
1.2 Spring配置文件: applicationContext.xml
1.3 Test类:用于通过 ApplicationContext的方法getBean(..)获取myBean的属性值。
---------------------------运行结果-----------------------------
www.163.com
xuliang
123456
25
[ibm, sun, oracle]
[music, sleeping, sports]
{mySister=yanmei, myMother=wenxian, myFather=guoxian}
---------------------------------------------------------------------
二、AOP(面向方面编程)
Aspect Oriented Programming
目标对象(TargetObject)和切面(TransactionAspect)--配置文件(applicationContext)--测试类(Test)
2.1 目标对象类(TargetObject)
2.2 切面(TransactionAspect)
2.3 配置文件(applicationContext)
2.4 测试类(Test)
基本注入和集合注入
实体类Bean--配置文件(applicationContext)--测试类(Test)
1.1 实体Bean:属性+getter()方法+setter()方法
public class MyBean { private String url; private String name; private String pwd; private int age; private List list; private Set set; private Map map; private Properties prop; public String getUrl() { return url; } public void setUrl(String url) { this.url = url; }
//----此处省略其他属性的getter()和setter()方法----
1.2 Spring配置文件: applicationContext.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" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean id="myBean" class="jorton.MyIoc.MyBean"> <property name="url"> <value>www.163.com</value> </property> <property name="name"> <value>xuliang</value> </property> <property name="pwd" value="123456"></property> <property name="age"> <value>25</value> </property> <property name="list"> <list> <value>ibm</value> <value>sun</value> <value>oracle</value> </list> </property> <property name="set"> <set> <value>music</value> <value>sleeping</value> <value>sports</value> </set> </property> <property name="map"> <map> <entry key="mySister" value="yanmei"></entry> <entry key="myMother" value="wenxian"></entry> <entry key="myFather" value="guoxian"></entry> </map> </property> </bean> </beans>
1.3 Test类:用于通过 ApplicationContext的方法getBean(..)获取myBean的属性值。
import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Test { public static void main(String[] args) { ApplicationContext ctx = new ClassPathXmlApplicationContext( "jorton/MyIoc/applicationContext.xml"); MyBean myBean = (MyBean) ctx.getBean("myBean"); System.out.println(myBean.getUrl()); System.out.println(myBean.getName()); System.out.println(myBean.getPwd()); System.out.println(myBean.getAge()); System.out.println(myBean.getList()); System.out.println(myBean.getSet()); System.out.println(myBean.getMap()); System.out.println(); } }
---------------------------运行结果-----------------------------
www.163.com
xuliang
123456
25
[ibm, sun, oracle]
[music, sleeping, sports]
{mySister=yanmei, myMother=wenxian, myFather=guoxian}
---------------------------------------------------------------------
二、AOP(面向方面编程)
Aspect Oriented Programming
目标对象(TargetObject)和切面(TransactionAspect)--配置文件(applicationContext)--测试类(Test)
2.1 目标对象类(TargetObject)
public class TargetObject { public void add(){ System.out.println("我添加了一些东西。。。"); } public void update(){ System.out.println("我更新了一些东西。。。"); } }
2.2 切面(TransactionAspect)
import org.aspectj.lang.ProceedingJoinPoint; public class TransactionAspect { public void beforeMethod() { System.out.println("对象方法开始之前的操作。。。"); } public void afterMethod() { System.out.println("对象方法之后的操作。。。"); } public Object roundMethod(ProceedingJoinPoint pjp) throws Throwable { System.out.println("环绕方法上。。。"); Object object = pjp.proceed(); System.out.println("环绕方法下。。。。"); return object; } public void throwMethod() { new RuntimeException(); System.out.println("异常出现执行的操作。。。"); } public void afterReturningMethod() { System.out.println("---afterReturning--的操作。。。"); } }
2.3 配置文件(applicationContext)
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd"> <!-- 目标对象 --> <bean id="targetObject" class="tarena.myAop.TargetObject"></bean> <!-- 切面对象 --> <bean id="transactionAspect" class="tarena.myAop.TransactionAspect"></bean> <aop:config> <!-- 定义切面aspect--> <aop:aspect id="myAspect" ref="transactionAspect"> <!--切入点pointcut--> <aop:pointcut id="transcut" expression="execution(* jorton.myAop.*.* (..))" /> <!--定义通知--前置通知、后置通知、最终通知、环绕通知> <aop:before pointcut-ref="transcut" method="beforeMethod" /> <aop:after pointcut-ref="transcut" method="afterMethod" /> <aop:after-returning pointcut-ref="transcut" method="afterReturningMethod" /> <aop:around pointcut-ref="transcut" method="roundMethod" /> </aop:aspect> </aop:config> </beans>
2.4 测试类(Test)
import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class AOPTest { public static void main(String[] args){ ApplicationContext ctx=new ClassPathXmlApplicationContext( "tarena/myAop/applicationContext.xml"); TargetObject targetObject= (TargetObject) ctx.getBean("targetObject"); targetObject.add(); } }
相关文章推荐
- 笔记——spring基本使用(控制反转IOC、面向切面编程AOP、声明式事务)
- 自行打造实现控制反转容器(IOC)与面向方面编程(AOP)的轻量级Framework(1)
- 自行打造实现控制反转容器(IOC)与面向方面编程(AOP)的轻量级Framework(3)
- 自行打造实现控制反转容器(IOC)与面向方面编程(AOP)的轻量级Framework(2)
- 自行打造实现控制反转容器(IOC)与面向方面编程(AOP)的轻量级Framework(4)
- idea 实现Spring讲解(Ioc-控制反转)/Aop(面向切面的编程)
- Spring基础、IOC(控制反转)、AOP(面向切面编程)、Log4j、注解配置
- spring的IOC(控制反转)与AOP(面向切面编程)
- Spring 之 控制反转(IoC), 依赖注入(DI)和面向切面(AOP)
- Spring.Net学习 控制反转(IoC)和面向切面编程(AOP)
- Spring.Net学习 控制反转(IoC)和面向切面编程(AOP) (转)
- spring的依赖注入(DI)、控制反转(IOC)和面向切面(AOP)
- Spring的控制反转(IoC)和面向切面编程(AOP)的概念浅析。
- Spring基础、IOC(控制反转)、AOP(面向切面编程)、Log4j、注解配置
- 为什么说Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架?
- Java+spring切面编程(aop)spring控制反转(ioc)+hibenrate对象关系映射(ORM
- Spring学习一:IOC(控制反转)和AOP(面向切面)的xml配置和注解方式
- Spring学习,依赖注入(DI)、控制反转(IoC)和面向切面(AOP)
- java+spring切面编程(aop)spring控制反转(ioc)+hibenrate对象关系映射(ORM) 学习网址
- SSH学习之——Spring面向方面编程AOP