栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

AOP入门学习1

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

AOP入门学习1

1、aop之纯java写aop

案例背景:模拟商店卖酒

前期工作:

(1)创建普通java工程,如下是我构建的工程结构,你们根据需要自己创建(我是在test下写案例)

(2)applicationContext.xml是spring的配置文件,目前配置很简单,就一个包扫描,目前配置的意思就是扫描com.wys.service.impl下的类。




        

component-scan是组件扫描,也就是说如果想把某个类实例化后交给spring管理,那么这个包内的类,如果存在@Component注解,那么就会被扫描到,并且把它实例化后放到spring中,如图所示:我在实现类上加了@Component("shop")

package com.wys.service.impl;

import com.wys.service.ShopService;
import org.springframework.stereotype.Component;


@Component("shop")
public class ShopServiceImpl implements ShopService {
    @Override
    public void saleBeer(Integer money) {
        System.out.println("啤酒:" + money + "元");
    }

    @Override
    public void saleSpirit(Integer money) {
        try {
            System.out.println("白酒:" + money + "元");
        } catch (Exception e) {
            System.out.println("买白酒异常");
            e.printStackTrace();
        } finally {
            System.out.println("买白酒finally");
        }
    }

    @Override
    public int saleRedWine(Integer money) {
        System.out.println("红酒:" + money + "元");
        return money;
    }
}

(3)TestAop类,程序入口,其实就是一个main函数,使用传统的方法来初始化spring容器

package com.wys.test;

import com.wys.service.ShopService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestAop {
    public static void main(String[] args) {
        //通过配置的路劲获取到spring配置文件,得到一个上下文对象ApplicationContext
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("xml/applicationContext.xml");
        //通过上下文的getBean得到某个组件
        ShopService shop = (ShopService) applicationContext.getBean("shop");
        //得到组件后 运行该组件中的方法
        shop.saleBeer(5);
        shop.saleSpirit(10);
        shop.saleRedWine(15);
    }
}

这里注意下,getBean里面的id值“shop”,我们发现在配置文件中并没有配置这个id,那是怎么获取的呢?细心的同学已经发现了,这里我是直接写在类上@Component("shop")注解中。

(4)接口类ShopService,这里我写了3个方法做测试

package com.wys.service;


public interface ShopService {
    //啤酒
    public void saleBeer(Integer money);

    //白酒
    public void saleSpirit(Integer money);

    //红酒
    public int saleRedWine(Integer money);
}

(5)实现类代码在步骤(2),里面主要是实现接口类的3个方法,这里就简单的做个输出打印信息。

(6)运行TestAop类,结果如下:

 至此,前期准备工作已完成。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/786180.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号