自定义spring框架前,先回顾一下spring框架的使用,从而分析spring的核心,并对核心功能进行模拟
-
数据访问层。定义UserDao接口及其子实现类
-
业务逻辑层。定义UserService接口及其子实现类
- 定义UserController类,使用main方法模拟controller层
- 编写配置文件。在类路径下编写一个名为ApplicationContext.xml的配置文件
代码运行结果如下:
通过上面代码及结果可以看出:
- userService对象是从applicationContext容器对象获取到的,也就是userService对象交由spring进行管理。
- 上面结果可以看到调用了UserDao对象中的add方法,也就是说UserDao子实现类对象也交由spring管理了。
- UserService中的userDao变量我们并没有进行赋值,但是可以正常使用,说明spring已经将UserDao对象赋值给了userDao变量。
上面三点体现了Spring框架的IOC(Inversion of Control)和DI(Dependency Injection, DI)