# aop-ioc
**Repository Path**: myd123/aop-ioc
## Basic Information
- **Project Name**: aop-ioc
- **Description**: 自定义一个简单的ioc容器
- **Primary Language**: Java
- **License**: MIT
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2021-08-17
- **Last Updated**: 2022-05-20
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# aop-ioc
自定义一个简单的ioc容器
## xml解析
在ParseXml中解析xml文件
调用方法:ParseXml.parseXml(path);
返回XmlConfiguration对象;
### 定义关键对象:
- 1.NodeName :定义 xml支持的标签
- 2.XmlConfiguration:存放整个xml的信息
- 3.BeanDefinition:存放bean标签信息
- 4.DefaultBeanFactory:根据BeanDefinition生成bean
- 5.AnnotationBeanFactory:根据xml中ComponentScan标签定义的扫描包,扫描@Component注解,将带有@Component的class注入到容器
- 6.@Autowired,类型自动注入;
- 7.@Value :8种基础类型,包装类,String的值注入;
- 8.IocContainer:存放生成的bean
### 主要逻辑
解析xml 生成 XmlConfiguration对象
--> 从XmlConfiguration中获取到BeanDefinition信息生成bean(先将所有BeanDefinition生成bean,最后将ref值注入到bean)
-->判断是否有 ComponentScan标签?有,则去扫描对应路径下的@Component,将其注入到容器
## 测试
测试类:TestIOC