第1页共5页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第1页共5页开发培训——IoC培训作者:版本:时间:说明:赵睿1
02009-03-23初稿一、IoC的概念在很早的2003-2005年的时候,Java社区掀起了一阵轻量级框架的狂潮,这些轻量级框架能够帮助开发者将来自各种不同项目的组件内聚到一个应用程序中
这些个轻量级框架的背后都有一个重要的模式在支撑它们的工作方式,就是InversionofControl,即是IoC
这些个框架发展到今天已经相当的成熟,并且成为了很多大型成熟项目的支柱
其中最为著名的要数Spring了,它的作者正是当年写出了writej2eewithoutejb的人,他挑战j2ee的ejb就像爱因斯坦挑战天体力学的牛顿一样
IoC除了控制反转这个称呼以外,还有一个大家很熟悉的词语叫依赖注入DependencyInjection,当然这两个名字描述的含义在这里是一样的,即是将组件的配置和使用分离开,以及各个组件之间的松耦合
下面来看一个例子,说明什么是IoC
[code]classPostService…privatePostDaopostDao=newPostDao();publicvoidaddPost(Postpost){postDao
createPost(post);}…publicstaticvoidmain…{PostServiceservice=newPostService();service
addPost(newPost());}[code]从这个例子中我们了解到我们生成了一个新的帖子访问类PostDao,并使用这个PostDao来对帖子进行存储
这个时候PostService掌控了所有的事情,它知道怎么去得到PostDao,现在假设这个PostDao对帖子的存储是存储到一个文件中,这个时候我们如果改变一个需