Skip to content

dawn416/teaop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

teaop

类似spring的小型aop和ioc框架

使用jdk动态代理实现,使用了责任链模式和模板方法模式,当然还有代理模式等

测试代码在AppTest.java中

使用方法:

IOC容器:

new一个BeanBuilder,参数为要扫描的包名(包内所有类均会被扫描到)

    BeanBuilder beanBuilder = new BeanBuilder("teaop");

写一个接口,一个接口实现类,加上@Component注解,放在要扫描的包下,必须要有默认构造方法

直接从beanBuilder对象中使用getBean取得接口的代理对象

    MyController myController = beanBuilder.getBean(MyController.class);

调用接口的方法即可调用实现类的方法实体

自动注入代理对象使用

    @Autowired
    private MyService myService;

AOP:

写个实体类继承AbstractAspect抽象类,加上@Component注解,实现以下方法,并能被BeanBuilder扫描到

前置方法

    public abstract void beforeMethod();

后置方法

    public abstract void afterMethod();

切入点表达式(只支持方法名)

    public abstract String execution();

多个切面的顺序(从小到大排列)

    public abstract int orderBy();

方法抛出异常前

    public abstract void afterThrowing();

方法返回前

    public abstract void afterReturning();

About

类似spring的oc/aop框架原形

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages