零配置实现Spring IoC与AOP

来源:互联网 发布:淘宝店广告图怎么设置 编辑:程序博客网 时间:2024/05/21 10:19

在Spring实现AOP方式之二:使用注解配置 Spring AOP 基础上,新增一个类Member:

package com.ailianshuo.springaop.sample05;/** * 该类并未注解,容器不会自动管理 * @author ailianshuo * 2017年7月27日 上午10:45:29 */public class Member {    public void display(){        System.out.println("显示会员对象");    }}

该类并未注解,容器不会自动管理。因为没有xml配置文件,则使用一个作为配置信息,ApplicationCfg.java文件

package com.ailianshuo.springaop.sample05;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.Configuration;import org.springframework.context.annotation.EnableAspectJAutoProxy;@Configuration  //用于表示当前类为容器的配置类,类似<beans/>@ComponentScan(basePackages="com.ailianshuo.springaop.sample05")  //扫描的范围,相当于xml配置的结点<context:component-scan/>@EnableAspectJAutoProxy(proxyTargetClass=true)  //自动代理,相当于<aop:aspectj-autoproxy proxy-target-class="true"></aop:aspectj-autoproxy>public class ApplicationCfg {     //在配置中声明一个bean,相当于<bean id=getUser class="com.ailianshuo.springaop.sample05.Member"/>    @Bean    public Member getMember(){        return new Member();    }}

测试代码:

package com.ailianshuo.springaop.sample05;import org.springframework.context.ApplicationContext;import org.springframework.context.annotation.AnnotationConfigApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;/** * 零配置实现Spring IoC与AOP * @author ailianshuo * 2017年7月25日 下午11:42:57 */public class Test {    public static void main(String[] args) {          // 通过类初始化容器        ApplicationContext ctx = new AnnotationConfigApplicationContext(ApplicationCfg.class);        Math math = ctx.getBean("math", Math.class);        int n1 = 20, n2 =2;        math.add(n1, n2);        math.sub(n1, n2);        math.mut(n1, n2);        try {            math.div(n1, n2);        } catch (Exception e) {        }        Member member=ctx.getBean("getMember",Member.class);        member.display();    }}

运行结果:

----------before advice----------add20+2=22----------after advice--------------------before advice----------sub20-2=18----------after advice--------------------before advice----------mut20X2=40----------after advice--------------------before advice----------div20/2=10----------after advice----------显示会员对象
原创粉丝点击