# simulaspring **Repository Path**: zbone/simulaspring ## Basic Information - **Project Name**: simulaspring - **Description**: 我们在开发的过程中,一般会用到spring框架,这个框架就像是个容器,包罗万象,比如hibernate、mybatis等都能被容纳。其最常用的是构造器、和属性注入,也就是控制反转和依赖注入,因而,我仿造spring框架,模拟spring内部的流程。这里,会用到深度递归获取所有的配置文件。 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-03-06 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # simulaspring #### 介绍 我们在开发的过程中,一般会用到spring框架,这个框架就像是个容器,包罗万象, 比如hibernate、mybatis等都能被容纳。其最常用的是构造器、和属性注入, 也就是控制反转和依赖注入,因而,我仿造spring框架,模拟spring内部的流程。 这里,会用到深度递归获取所有的配置文件。也会涉及到在实现自动装配的过程中的递归操作。 #### 详细介绍,请参考我的博客:https://segmentfault.com/a/1190000018536099 #### 软件架构 1.core核心层 * 软件架构说明采用建造者设计模式、根据类路径来创建类对象, * 采用工厂设计模式来创建加载配置文件的工厂,从而实例化所有以 *.xml开头的配置文件。 * 使用接口定义契约式的模式,实现类来自定义实现接口。 * 使用上下文来创建当前配置文件,并用getbean获取当前对象,比如: ``` @Test public void testOrderService(){ ClassPathXmlApplicationContext context=new ClassPathXmlApplicationContext("orderSnapshotService.xml"); OrderSnapshotService orderSnapshotService=(OrderSnapshotService) context.getBean("orderSnapshotService"); orderSnapshotService.list(); } ``` 2. util包 * classHelper 主要是将类的首字母小写,与配置文件中的属性相同 * Transform 主要根据属性的类型将配置文件的value值转为和属性类型相同的值 * 。。。 3. 测试层 * objectfactory,测试实现自动装配的方式 * 根据属性实现自动装配 * 根据构造器实现自动装配 * 根据默认的实现自动装配 * 根据类型实现自动装配 * 根据autodetect实现自动装配 #### 安装教程 1. 这是根据maven来创建的项目,下载该项目后,需要确保安装了maven