Spring Aop实践

beans.xml文件
<beans  xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xmlns:tx="http://www.springframework.org/schema/tx"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
	    http://www.springframework.org/schema/context/spring-context-2.5.xsd
	    http://www.springframework.org/schema/aop
        http://www.springframework.org/schema/aop/spring-aop-4.2.xsd
        ">

        <context:annotation-config />

    <bean id="springHelloWorld" class="com.zaakman.spring.SpringHelloWorld"></bean>
    <bean id="sructHelloWorld" class="com.zaakman.spring.SructHelloWorld"></bean>
    <bean id="log" class="com.zaakman.advice.Log"/>


    <bean id="helloWorldServer" class="com.zaakman.server.HelloWorldServer">
        <property name="helloWorld" ref="springHelloWorld"/>
    </bean>


    <aop:config>
        <aop:aspect id="logd" ref="log" order="1">
            <aop:pointcut id="addlog" expression="execution(* com.zaakman.spring.iml.HelloWorld.*(..))"/>
            <aop:before method="logdd" pointcut-ref="addlog" />
            <aop:after-returning method="logRet" pointcut-ref="addlog"
                                 returning="ret"
            />
        </aop:aspect>
    </aop:config>
</beans>

HelloWorld.java

public interface HelloWorld {
    public String sayHi(String n);
}

SpringHelloWorld.java

public class SpringHelloWorld implements HelloWorld {

    public String sayHi(String n) {
        System.out.println("Spring Hello World!");
        return "Spring!";
    }
}

SructHelloWorld.java

public class SructHelloWorld implements HelloWorld {

    public String sayHi(String n) {
        System.out.println("Struct Hello World!");
        return "Sruct!";
    }
}

HelloWorldServer.java

public class HelloWorldServer {

    private HelloWorld helloWorld;

    public HelloWorldServer() {

    }

    public void setHelloWorld(HelloWorld helloWorld) {
        this.helloWorld = helloWorld;
    }

    public HelloWorld getHelloWorld() {
        return this.helloWorld;
    }
}
Log.java
public class Log {

    public void logdd(JoinPoint joinPoint){
        System.out.println(joinPoint.getArgs()[0] + "");
        System.out.println("what?");
    }

    public void logRet(Object ret){
        String value = (String)ret;
        System.out.println(value);
    }

}
App.java
ApplicationContext context =
                new ClassPathXmlApplicationContext("beans.xml");

        HelloWorldServer service =
                (HelloWorldServer) context.getBean("helloWorldServer");

        HelloWorld hw= service.getHelloWorld();

        hw.sayHi("llll~~~~");

结果:

llll~~~~
what?
Spring Hello World!
Spring!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值