# iIocFramework **Repository Path**: lilei123xyz/i-ioc-framework ## Basic Information - **Project Name**: iIocFramework - **Description**: 自定义ioc实现 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: v1 - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 5 - **Forks**: 0 - **Created**: 2021-07-25 - **Last Updated**: 2022-03-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: Java, Spring, SpringBoot, Spring-MVC, SpringCloud ## README # iIocFramework iIoc操作视频1地址: https://www.bilibili.com/video/BV1EP4y1x7KL/ iMvc操作视频地址: https://www.bilibili.com/video/BV19y4y1V7e7/ #### 介绍 目前支持功能 一. ioc支持 1.配置scan扫包加载bean (@Component,@Service,@Repository) 2.xml配置bean 3.bean支持作用域单例多例, 懒加载 4.支持后置处理器扩展点 5.支持处理器优先级配置 6.支持循环依赖检查 7.支持@AutoWired 进行DI注入 目前优先注入类型后名称匹配 8.待完善... 二. aop支持 1. 支持事务 (使用@Transactional注解可进行动态代理) 2. xml配置是否开启事务 三. 集成druid支持数据源 #### 软件架构 -core 核心包 处与下层为上层包提供能力支撑 ApplicationContext 定义基础接口 ClassPathXmlApplicationContext 封装内部复杂逻辑 BeanPostProcessor 后置处理器 BeanDefinition 解析bean封装的基类 Ordered 排序接口用于处理器实现优先级 PostProcessorRegistrationDelegate postProcessor注册执行器 BeanFactory 保存上下文中的bean信息及解析出的配置信息 核心工厂类(应分出接口, 抽象类,实现类, 便于以后扩展) -bean bean创建支持包 GenericBeanDefinition 普通bean定义 -parser BeanConfigParser bean解析器定义解析bean方法 XmlBeanConfigParser bean解析器 xml实现类 InstantiationAwareBeanPostProcessor bean初始化依赖注入接口 AutowiredInstantiationAwareBeanPostProcessor @Autowired注解支持 主要用于处理主动注入注解 PropertyInstantiationAwareBeanPostProcessor xml property注入支持 -aop aop支持包 待完善 ProxyFactory 代理生成工厂 (当前使用cglib 可改造为策略支持配置 jdk与cglib) MethodInterceptor 定义拦截器基础方法 用于动态代理时织入实现类 进行invoke时调用 AbstractAutoProxyCreator aop后置处理器抽象 AopAutoProxyCreator aop后置处理器 用于后置处理创建代理对象 -transaction 事务功能包 TransactionMethodInterceptor 事务拦截器实现类 TransactionManager 事务管理器, 提供事务控制方法 TransactionAutoProxyCreator 事务注入后置处理器 主要用来扫描注解@Transactional) -annotation 注解支持包 Component bean扫描的基础注解 Repository bean扫描的注解 用于数据层注册 Service bean扫描的注解 用于服务层注册 Transaction 声明式事务支持注解 通过该注解进行事务控制 -jdbc 与jdbc的集成包 当前使用druid连接池 JdbcTransactionManager jdbc事务管理器实现类, 提供事务控制方法 DataSourceProperties 数据源配置映射对象 -utils 一些工程中用到的通用工具类 #### 使用说明 见测试用例 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request