Repository files navigation
更新了自研框架的IoC模块,实现了IoC容器,通过URL提取资源,利用注解和反射机制创建需要托管的Bean实例并加载进容器,通过注解进行依赖注入。
更新了自研框架的AOP模块,实现了通过注解进行横切逻辑的切入,AOP1.0参考Spring1.0的设计思想,没有引入AspectJ,仅使用CGLIB进行织入,AOP1.0仅支持注解级别的joinpoint横切。
src/main/java/cn目录下的类都是模拟的业务逻辑,编写的Dao层,Service层,Controller层模拟类。
src/main/java/org目录下为框架IoC模块。
org/core目录下存放的BeanContainer类为框架的IoC容器,也是框架的核心入口。
org/core/annotation目录下存放的为Bean加载的自定义注解。
org/inject目录下存放的DependencyInjector类用来提供初始化容器和依赖注入功能。
org/inject/annotation目录下存放的是依赖注入的自定义注解——Autowired。
org/util目录下存放的是工具类。
其中ClassUtil用来处理与类相关的逻辑,比如获取指定路径下的类集合,利用反射将目标类实例化等。
其中ValidationUtil是一个判断工具,用来判断集合、数组等是否为空。
org/aop目录下存放的为框架AOP模块
src/test目录下存放的是单元测试模块。
About
阅读Spring源码以及学习Spring设计思想的总结型项目,仿照spring框架思想,实现的自研简单框架,简单实现了Spring的IOC、AOP以及MVC核心模块,实现了IoC容器,利用枚举实现了安全单例容器,通过URL提取资源,利用反射机制创建实例并加载进容 器,再通过注解进行依赖注入。 实现了AOP,利用CGLIB动态代理实现了AOP模块,支持注解级joinpoint横切,后期引入AspectJ,支持了 方法级别pointcut横切。
Resources
Stars
Watchers
Forks
You can’t perform that action at this time.