微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

怎样写一个spring IOC容器

今天就跟大家聊聊有关怎样写一个spring IOC容器,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

spring框架的基础核心和起点毫无疑问就是IOC,IOC作为spring容器提供的核心技术,成功完成了依赖的反转:从主类的对依赖的主动管理反转为了spring容器对依赖的全局控制。今天就带大家手写一个spring IOC容器。

第0步(准备工作):

(1)JDK1.8及java环境变量
(2)maven包及maven环境变量
(3)idea

第1步(创建项目,引入tomcat包)

PS:由于该项目的作用是模拟spring的部分功能,所以取名为spring

(1)创建好的项目内容如下图:

怎样写一个spring IOC容器

(2)pom文件的初始状态如下:

怎样写一个spring IOC容器

第2步:搭建主体框架

PS:一个正常的spring项目一般分为controller和service部分,此处暂时忽略数据库链接

怎样写一个spring IOC容器

(1)其中,TestController实现功能,返回name+“Hello World!”,引用TestService

怎样写一个spring IOC容器

(2)而TestService和TestServiceImpl则分别实现功能

怎样写一个spring IOC容器

第3步:创建,并打上标签

PS:我们需要很多标签,如service,controller,还有autowired等

(1)创建各种标签(暂时创建这些标签,后面不够再加)

怎样写一个spring IOC容器

(2)打上标签

怎样写一个spring IOC容器

怎样写一个spring IOC容器

由于RequestMpping后面需要跟路径,所以此处需要重写其value()方法,如下:

怎样写一个spring IOC容器

第4步:进入正题,创建一个disPatcherServlet类,用于实现IOC容器功能

(1)disPatcherServlet继承HttpServlet(注意添加依赖),并重写doGet,doPost方法

怎样写一个spring IOC容器

(2)创建一个dodispatcher方法,并被doPost引用

怎样写一个spring IOC容器

第5步:初始化

(1)暂停实现dodispatcher,去重写初始化方法init,初始化共分为五大步骤,如下

怎样写一个spring IOC容器

注意:顶端要加上属性类(Properties),且要resource中加application.properties,并加上scanPackage属性内容为需扫描的根目录

怎样写一个spring IOC容器

(2)加载配置文件实现,需要先配置一个web.xml,路径和内容如下:

路径:

怎样写一个spring IOC容器

内容

怎样写一个spring IOC容器

剩下的内容,大家应该能看懂的吧

怎样写一个spring IOC容器

(3)下一步,使用递归,将所有class的路径存入一个集合(classpaths)里面

怎样写一个spring IOC容器

(4)下一步,将打上了controller和service标签的类放入ioc容器中

怎样写一个spring IOC容器

(5)下一步,注入(通过Autowired标签从IOC容器中获取实例对象并赋值)

怎样写一个spring IOC容器

(6)获取所有的RequestMapping内容,并写到一个对象集合中

第6步:回头实现dodisPatcher的步骤

怎样写一个spring IOC容器

(1)首先,设定404(class notfound)
(2)后面一半,实现接口功能
PS1:判断url方法
PS2:根据url获取方法
ps3获取方法下的所有参数

最后一步:执行tomcat

so,

(1)你以为以上的内容是对的嘛?
(2)你以为你能得到想要的结果吗?

太天真了!!!

如果你按照我说的方法去运行,恭喜你,得到的结果是not found!!!真正的挑战才刚刚开始:

第一,标签类的定义,如下,特别重要的是Target

怎样写一个spring IOC容器

还需要补充一个mapping

怎样写一个spring IOC容器

第二,TestController类中,RequestParam少了value属性,如果没有,则无法传值。

怎样写一个spring IOC容器

第三,那么参数初始化,是不是也有一点问题呢?注意这段代码,传参的名字应该和什么相关?

怎样写一个spring IOC容器

好了 现在真的可以成功了~~~

怎样写一个spring IOC容器

看看结果吧。

怎样写一个spring IOC容器

看完上述内容,你们对怎样写一个spring IOC容器有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程之家行业资讯频道,感谢大家的支持

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐