手机版
你好,游客 登录 注册
背景:
阅读新闻

Spring AOP实现(含实例)

[日期:2017-03-07] 来源:Linux社区  作者:lxcmyf [字体: ]

需要用到的jar包:

1.XML方式实现:

package com.linuxidc.post;

public class Intermediary {
    
    public void post(){
        System.out.println("该房源已发布!");
    }
}
 
package com.linuxidc.service;

public interface Rent {
    public void rent();
}
 
package com.linuxidc.service.impl;

import com.linuxidc.service.Rent;

public class Landlord implements Rent{

    @Override
    public void rent() {
        System.out.println("房东:我要出租房子了!");
    }
}
 
 
package com.linuxidc.test;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.linuxidc.service.Rent;


public class Test {
    public static void main(String[] args) {
        ApplicationContext ac = new ClassPathXmlApplicationContext("beans.xml");
        Rent r = ac.getBean(Rent.class);
        try {
            r.rent();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

beans.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"
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd 
    http://www.springframework.org/schema/aop
    http://www.springframework.org/schema/aop/spring-aop.xsd">
    <!-- 目标对象 -->
    <bean id="rent" class="com.linuxidc.service.impl.Landlord"/>
    <!-- 切面 -->
    <bean id="intermediary" class="com.linuxidc.post.Intermediary"/>
    <aop:config>
        <aop:aspect ref="intermediary">
            <aop:before method="post" pointcut-ref="pointcut"/>
            <aop:pointcut id="pointcut" expression="execution(* com.linuxidc.service.impl.*.*(..))" />
        </aop:aspect>
    </aop:config>
</beans>

 2.注解方式:

package com.linuxidc.post;

import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;

@Aspect
public class Intermediary {
    @Before("execution(* com.linuxidc.service.impl.*.*(..))")
    public void post(){
        System.out.println("该房源已发布!");
    }
}

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"
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd 
    http://www.springframework.org/schema/aop
    http://www.springframework.org/schema/aop/spring-aop.xsd">
    <!-- 目标对象 -->
    <bean id="rent" class="com.linuxidc.service.impl.Landlord"/>
    <!-- 切面 -->
    <bean id="intermediary" class="com.linuxidc.post.Intermediary"/>
    <!-- 自动代理 -->
    <aop:aspectj-autoproxy/>
</beans>

测试类:

package com.linuxidc.test;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.linuxidc.service.Rent;


public class Test {
    public static void main(String[] args) {
        ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
        Rent r = ac.getBean(Rent.class);
        try {
            r.rent();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Spring AOP四种实现方式  http://www.linuxidc.com/Linux/2016-10/135993.htm

Spring AOP自定义注解方式实现日志管理 http://www.linuxidc.com/Linux/2015-11/125019.htm

Spring AOP进行日志记录  http://www.linuxidc.com/Linux/2015-11/124731.htm

Spring AOP与Redis搭建缓存 http://www.linuxidc.com/Linux/2016-12/138337.htm

利用Spring AOP 更新Memcached 缓存策略的实现  http://www.linuxidc.com/Linux/2012-03/56503.htm

Spring AOP的两种代理  http://www.linuxidc.com/Linux/2015-11/125017.htm

Spring AOP的注解实例 http://www.linuxidc.com/Linux/2015-11/125018.htm

Spring AOP 简介以及简单用法 http://www.linuxidc.com/Linux/2016-12/138188.htm

本文永久更新链接地址http://www.linuxidc.com/Linux/2017-03/141482.htm

linux
相关资讯       Spring AOP 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款