韩顺平Spring笔记(10页).doc
《韩顺平Spring笔记(10页).doc》由会员分享,可在线阅读,更多相关《韩顺平Spring笔记(10页).doc(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-uuuu 韩顺平Spring笔记-第 10 页u spring的快速入门案例 spring是什么?struts 是 web 框架 (jsp/action/actionfrom)hibernate 是 orm框架,处于持久层.spring 是容器框架,用于配置bean,并维护bean之间关系的框架 spring中有一个非常概念: bean (是java中的任何一种对象 javabean/service/action/数据源./dao, ioc(控制反转 inverse of control) di( dependency injection 依赖注入) 画一个框架图u 快速入门开发一个spri
2、ng项目.1. 引入spring的开发包(最小配置spring.jar 该包把常用的jar都包括, 还要 写日志包 common-logging.jar可以从给出的案例中拷贝一份.2. 配置bean!- bean元素的作用是,当我们的spring框架加载时候,spring就会自动的创建一个bean对象,并放入内存 UserService userSerivce=new UserService();userSerivce.setName(韩顺平);韩顺平3. 在Test.java中,我们怎么使用/我们现在使用spring来完成上面的任务/1.得到spring 的applicationContex
3、t对象(容器对象)ApplicationContext ac=new ClassPathXmlApplicationContext(applicationContext.xml);UserService us=(UserService) ac.getBean(userService);us.sayHello();4. 细节讨论?传统的方法和使用spring的方法4.1 使用spring ,没有new 对象,我们把创建对象的任务交给spring框架4.2 spring的运行原理图:5.3我们再看spring 对上面案例总结:spring实际上是一个容器框架,可以配置各种bean(action/s
4、ervice/domain/dao),并且可以维护bean与bean的关系,当我们需要使用某个bean的时候,我们可以getBean(id),使用即可.ioc是什么?答 :ioc(inverse of controll ) 控制反转: 所谓控制反转就是把创建对象(bean),和维护对象(bean)的关系的权利从程序中转移到spring的容器(applicationContext.xml),而程序本身不再维护.DI是什么?答: di(dependency injection) 依赖注入: 实际上di和ioc是同一个概念,spring设计者认为di更准确表示spring核心技术 学习框架,最重要的
5、就是学习各个配置.把Applicationcontext做成一个单例的.上机练习: 把我写的代码走一遍.u spring开发提倡接口编程,配合di技术可以层与层的解耦举例说明:现在我们体验一下spring的di配合接口编程的,完成一个字母大小写转换的案例:思路:1. 创建一个接口 ChangeLetter2. 两个类实现接口3. 把对象配置到spring容器中4. 使用通过上面的案例,我们可以初步体会到di配合接口编程,的确可以减少层(web层) 和 业务层的耦合度.思考题:接口ValidateUser有一个方法:check(?)有两个类CheckUser1 implements Valida
6、teUsercheck/ 安装xml验证CheckUser2 implements VallidateUsercheck()/ 到数据库去验证u 从ApplicationContex 应用上下文容器中获取bean和从bean工厂容器中获取bean具体案例:/从ApplicationContext中取beanApplicationContext ac=new ClassPathXmlApplicationContext(com/hsp/ioc/beans.xml);/当我们去实例化beans.xml,该文件中配置的bean被实例(该bean scope是 singleton)从bean中取出st
7、udent/如果我们使用beanfactory去获取bean,当你只是实例化该容器, 那么/容器的bean不被实例化,只有当你去使用getBean某个bean时,才会实时的创建.BeanFactory factory = new XmlBeanFactory(new ClassPathResource(com/hsp/ioc/beans.xml);factory.getBean(student);结论: 1.如果使用ApplicationContext ,则配置的bean如果是 singlton不管你用不用,都被实例化.(好处就是可以预先加载,缺点就是耗内存)2.如果是 BeanFactory
8、 ,则当你获取beanfacotry时候,配置的bean不会被马上实例化,当你使用的时候,才被实例(好处节约内存,缺点就是速度)3.规定: 一般没有特殊要求,应当使用ApplicatioContext完成(90%)u bean 的 scope的细节入门案例:/获取两个studentStudent s1=(Student) ac.getBean(student);Student s2=(Student) ac.getBean(student);l requestl sessionl global-session 是在web开发中才有意义.u 三种获取ApplicationContext 对象引用
9、的方法1. ClassPathXmlApplicationContext - 通过类路径2. FileSystemXmlApplicationContext - 通过文件路径举例:ApplicationContext ac=new FileSystemXmlApplicationContext(文件路径beans.xml / applicationContext.xml);3. XmlWebApplicationContextu bean的生命周期为什么总是一个生命周期当做一个重点?Servlet - servlet生命周期 init() destory()java对象生命周期.往往笔试,面试
10、总喜欢问生命周期的问题 实例化(当我们的程序加载beans.xml文件),把我们的bean(前提是scope=singleton)实例化到内存 调用set方法设置属性 如果你实现了bean名字关注接口(BeanNameAware) 则,可以通过setBeanName获取id号 如果你实现了 bean工厂关注接口,(BeanFactoryAware),则可以获取BeanFactory 如果你实现了 ApplicationContextAware接口,则调用方法 /该方法传递ApplicationContextpublic void setApplicationContext(Applicatio
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 顺平 Spring 笔记 10
限制150内