电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

复件(2)Spring开发培训VIP免费

复件(2)Spring开发培训_第1页
1/4
复件(2)Spring开发培训_第2页
2/4
复件(2)Spring开发培训_第3页
3/4
开发培训——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对帖子的存储是存储到一个文件中,这个时候我们如果改变一个需求,把它存储到数据库服务器中,那么我们不得不去修改PostService代码为[code]privatePostDBDaopostDao=newPostDBDao();[code]或者PostDao代码,但如果哪天我们又决定改回成文件的存储方式的时候,麻烦、效率、成本又增加了。这个时候我们需要一种良好的解决方案。IoC的方式正好,这个时候我们将控制反转到外部,而非PostService自己。[code]classPostService…privatePostDaopostDao;publicvoidaddPost(Postpost){postDao.createPost(post);}publicvoidsetPostDao(PostDaopostDao){this.postDao=postDao;}…publicstaticvoidmain…{PostServiceservice=newPostService();service.setPostDao(newPostFileDao());//service.setPostDao(newPostDBDao());service.addPost(newPost());}[code]从上面的代码我们可以看到,如果我们对数据访问存储方式进行了改变,要做的仅仅是写一个新的改变方式的PostXXXDao并且继承PostDao(当它是类时)或者实现PostDao(当它是接口时),当然我推荐的是面向接口的编程,然后将这个新的类在需要时注入进去,这样整个组件变得异常透明和松散。IoC的几种形式。依赖注入有几种形式。Type1:构造方法注入[code]classTest…publicTest(InjectClassclazz){…}[code]Type2:设值注入[code]classTest…publicvoidsetInjectClass(InjectClassclazz){…}[code]Type3:接口注入interfaceInjectInterface{voidinjectClass(InjectClassclass);}classImplimplementsInjectInterface{…publicvoidinjectClass(InjectClassclass){…}}接口注入比较不常用。二、IoC容器介绍IoC容器经过多年的洗礼,现在比较著名的有这么几个,Springframework.PicoContainer,Guice。Spring我们下面会详细讲它的用法。Guice是Google的IoC容器,是一种采用元数据的方式进行装配的过程。PicoContainer则相对用得较少。三、Spring的用法在理解了IoC的概念之后,理解Spring的使用就相对简单了。主要结合Spring讲讲一个简单的虚拟的应用。假设我们的需求是登录用户可以在网站上发贴。除开JSP输入页面不谈,我们对Web层以下的做一个简单的设计。服务层数据访问层实体类数据库PostServicePostDaoPostPost表测试先行,我们先写一个测试。[code]@TestpublicvoidtestAddPostSuccess(){ApplicationContextcontext=newClassPathXmlApplicationContext("spring-beans.xml");PostServicepostService=(PostService)context.getBean("PostService");Postpost=newPost();post.setName("postName");post.setContent("content");postService.addPost(post);assertEquals(postService.getPost(1));}[code]注意这里的ApplicationContext,他是获取装配组件的上下文。...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

复件(2)Spring开发培训

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部