- 1、本文档共77页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
51CTO-大型门户网站是这样炼成这个只是spring部分
这个只是spring 部分
6.1.3? Spring 2.5拿手戏--控制反转与依赖注入
人类社会由数以亿计的拥有不同本领的人组成,通过这些人的不同分工协作完成了许多不可思议的惊天杰作,从而呈现出一幅又一幅美妙的生活全景图。我们习惯将这种组合称为团队,团队讲求的是分工与协作,谁也离不开谁。在Java EE的世界里,充满了身怀绝技的Java类,通过这云云Java类的分工协作,造就了五彩缤纷的Java EE应用王国。
当我们需要别人的帮助才能完成某项工作时,毫不犹豫地就会想到请,这种请无疑是一种盛情的、主动的请求。沿用这种处事风格,我们的Java EE应用开发走过了漫长的请的岁月。例如:
/**?负责处理用户管理底层数据访问?*/?
public?class?UserDao{ ?
????//保存用户数据 ?
????public?void?saveUser(User?user){ ?
????????//进行数据的保存工作,省略代码 ?
????} ?
????......?? ?
} ?
?
/**?负责处理用户管理业务逻辑?*/?
public?class?UserService{ ?
????//主动创建数据访问组件 ?
????UserDao?dao?=?new?UserDao();???? ?
????//处理新增用户业务逻辑 ?
????public?void?addUser(String?userName,String?userPwd){ ?
????????User?user?=?new?User(); ?
????????user.setUserName(userName); ?
????????user.setUserPwd(userPwd); ?
????????//调用UserDao的saveUser方法进行数据保存 ?
????????dao.saveUser(user);????? ?
????} ?
????......?? ?
} ?
?
/**?负责处理用户管理业务请求?*/?
public?class?UserAction{ ?
????//主动创建业务逻辑处理组件 ?
????UserService?service?=?new?UserService(); ?
????//处理新增用户请求 ?
????public?void?addUser(){ ?
????????String?userName?=?liubin; ?
????????String?userPwd?=?123456; ?
????????//调用UserService的addUser方法进行业务逻辑处理 ?
????????service.addUser(userName,userPwd); ?
????}??? ?
????...... ?
}?
上面这种风格(见图6-2)的代码是那么眼熟,又是那么亲切,毕竟用了那么多年,不知是习惯了还是麻木了。在一个类(如UserAction类)中需要用到另一个类(如UserService类),也就是一个类依赖另一个类时,顺手就是一个new,当应用变得庞大,依赖关系网也随之复杂,为测试与维护带来的困难呈指数上升。
那能不能做到不请自来呢?答案是可以的。想象一下,如果有一座工厂专门负责生产Bean实例的话,new的工作就可以交给它了,倘若还能送货上门的话,自然也就不请自来。这就是Spring最初的动机,自Spring呱呱坠地之日起,理想变为现实,从此Java EE应用开发步入了不请自来的时代。例如:
/**?负责处理用户管理底层数据访问?*/?
public?class?UserDao{ ?
????//保存用户数据 ?
????public?void?saveUser(User?user){ ?
????????//进行数据的保存工作,省略代码 ?
????} ?
????......?? ?
} ?
?
/**?负责处理用户管理业务逻辑?*/?
public?class?UserService{ ?
????//仅声明数据访问组件的引用 ?
????UserDao?dao;???? ?
????//处理新增用户业务逻辑 ?
????public?void?addUser(String?userName,String?userPwd){ ?
????????User?user?=?new?User(); ?
????????user.setUserName(userName); ?
????????user.setUserPwd(userPwd); ?
????????//调用UserDao的saveUser方法进行数据保存 ?
????????dao.saveUser(user)
您可能关注的文档
最近下载
- 【中国共产党纪律处分条例】中国共产党纪律处分条例学习PPT(1).pptx VIP
- 口腔诊所安全应急预案培训课件.docx VIP
- 国际结算案例(22023).pdf
- 17J008 挡土墙(重力式、衡重式、悬臂式)(必威体育精装版).pdf
- 医疗器械ISO134852016一整套手册程序文件表单汇编.pdf VIP
- 节日假期后复工安全条件确认标准.pdf VIP
- 环评报告脱密-东台沿海区 200MW-400MWh 储能电站项目.pdf
- 黑布林英语外星邻居读后感.pdf VIP
- 园林绿化常用杀虫剂及杀菌剂介绍演示教学.ppt
- GZ091 市政管线(道)数字化施工赛练习试题及答案(4套试题).doc
文档评论(0)