ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:165.84KB ,
资源ID:16635544      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16635544.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(笔记Word下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

笔记Word下载.docx

1、/我们现在使用spring来完成上面的任务 /1.得到spring 的applicationContext对象(容器对象) ApplicationContext ac=new ClassPathXmlApplicationContext(applicationContext.xml UserService us=(UserService) ac.getBean( us.sayHello();5. 细节讨论?传统的方法和使用spring的方法 使用spring ,没有new 对象,我们把创建对象的任务交给spring框架 spring的运行原理图:5.3我们再看spring 对上面案例总结:sp

2、ring实际上是一个容器框架,可以配置各种bean(action/service/domain/dao),并且可以维护bean与bean的关系,当我们需要使用某个bean的时候,我们可以getBean(id),使用即可.ioc是什么?答 :ioc(inverse of controll ) 控制反转: 所谓控制反转就是把创建对象(bean),和维护对象(bean)的关系的权利从程序中转移到spring的容器(applicationContext.xml),而程序本身不再维护.DI是什么?答: di(dependency injection) 依赖注入: 实际上di和ioc是同一个概念,spri

3、ng设计者认为di更准确表示spring核心技术 学习框架,最重要的就是学习各个配置.把Applicationcontext做成一个单例的.上机练习: 把我写的代码走一遍. spring开发提倡接口编程,配合di技术可以层与层的解耦举例说明:现在我们体验一下spring的di配合接口编程的,完成一个字母大小写转换的案例:思路:1. 创建一个接口 ChangeLetter2. 两个类实现接口3. 把对象配置到spring容器中4. 使用通过上面的案例,我们可以初步体会到di配合接口编程,的确可以减少层(web层) 和 业务层的耦合度.思考题:接口ValidateUser有一个方法:check(?

4、)有两个类CheckUser1 implements ValidateUser check/ 安装xml验证CheckUser2 implements VallidateUsercheck()/ 到数据库去验证 从ApplicationContex 应用上下文容器中获取bean和从bean工厂容器中获取bean具体案例:/从ApplicationContext中取beanApplicationContext ac=new ClassPathXmlApplicationContext(com/hsp/ioc/beans.xml/当我们去实例化beans.xml,该文件中配置的bean被实例(该b

5、ean scope是 singleton)从bean中取出student /如果我们使用beanfactory去获取bean,当你只是实例化该容器, 那么 /容器的bean不被实例化,只有当你去使用getBean某个bean时,才会实时的创建. BeanFactory factory = new XmlBeanFactory( new ClassPathResource(); factory.getBean(student结论: 1.如果使用ApplicationContext ,则配置的bean如果是 singlton不管你用不用,都被实例化.(好处就是可以预先加载,缺点就是耗内存)2.如果

6、是 BeanFactory ,则当你获取beanfacotry时候,配置的bean不会被马上实例化,当你使用的时候,才被实例(好处节约内存,缺点就是速度)3.规定: 一般没有特殊要求,应当使用ApplicatioContext完成(90%) bean 的 scope的细节入门案例:/获取两个student Student s1=(Student) ac.getBean( Student s2=(Student) ac.getBean( System.out.println(s1+ +s2); request session global-session 是在web开发中才有意义. 三种获取Ap

7、plicationContext 对象引用的方法1. ClassPathXmlApplicationContext - 通过类路径2. FileSystemXmlApplicationContext - 通过文件路径举例:ApplicationContext ac=new FileSystemXmlApplicationContext(文件路径beans.xml / applicationContext.xml3. XmlWebApplicationContext bean的生命周期为什么总是一个生命周期当做一个重点?Servlet - servlet生命周期 init() destory()

8、java对象生命周期.往往笔试,面试总喜欢问生命周期的问题1 实例化(当我们的程序加载beans.xml文件),把我们的bean(前提是scope=singleton)实例化到内存2 调用set方法设置属性3 如果你实现了bean名字关注接口(BeanNameAware) 则,可以通过setBeanName获取id号4 如果你实现了 bean工厂关注接口,(BeanFactoryAware),则可以获取BeanFactory5 如果你实现了 ApplicationContextAware接口,则调用方法 /该方法传递ApplicationContext public void setAppli

9、cationContext(ApplicationContext arg0) throws BeansException / TODO Auto-generated method stub System.out.println(setApplicationContext+arg0); 6 如果bean 和 一个后置处理器关联,则会自动去调用 Object postProcessBeforeInitialization方法7 如果你实现InitializingBean 接口,则会调用 afterPropertiesSet8 如果自己在 则可以在bean定义自己的初始化方法.9 如果bean 和

10、一个后置处理器关联,则会自动去调用 Object postProcessAfterInitialization方法10 使用我们的bean11. 容器关闭12. 可以通过实现DisposableBean 接口来调用方法 destory13. 可以在 调用定制的销毁方法小结: 我们实际开发中往往,没有用的这么的过程,常见的是:1-2-6-10-9-11 把使用每个bean的时间记录到一个recoder.txt文件 ,内容是xxbean. 使用时间是 : 1999-11-11 11:11:11问题:通过BeanFactory来获取bean对象,bean的生命周期是否和Applicationcont

11、ext 是一样吗?不是一样的,bean是工厂中创建的生命周期会简单一些: 配置bean的细节 scope 的说明: 尽量使用 scope=”singleton” ,不要使用prototype,因为这样对我们的性能影响较大.2 如何给集合类型注入值.java中主要的集合有几种: map set list / 数组 Department类:package com.hsp.collection;import java.util.List;import java.util.Map;import java.util.Set;public class Department private String n

12、ame; private String empName; private List empList; private Set empsets; private Map empMaps; public Set getEmpsets() return empsets; public void setEmpsets(Set empsets) this.empsets = empsets; public String getEmpName() return empName; public void setEmpName(String empName) this.empName = empName; p

13、ublic String getName() return name; public void setName(String name) this.name = name; public List getEmpList() return empList; public void setEmpList(List empList) this.empList = empList; public Map getEmpMaps() return empMaps; public void setEmpMaps(Map- 给数组注入值 -empNamelist小明小明小明小明小明小明小明- 给list注入值

14、 list 中可以有相当的对象 -empListref bean=emp2 /emp1- 给set注入值 set不能有相同的对象 -empsetsset/set- 给map注入值 map只有key不一样,就可以装配value -empMapsmapentry key=11 value-ref=2233/map- 给属性集合配置 -【点http协议 referer 】pppropsprop key=pp1abcdpp2hellocom.hsp.collection.Employee北京id1天津2/beans3 内部beanbean id=”foo” class=”.Foo”property n

15、ame=”属性”第一方法引用-ref bean=bean对象名/内部bean-beanproperyt4 继承配置public class Student public class Gradate extends Student在beans.xml文件中体现配置 - 配置一个学生对象 -com.hsp.inherit.Student顺平age30- 配置Grdate对象 -grdate parent=com.hsp.inherit.Gradate- 如果自己配置属性name,age,则会替换从父对象继承的数据 -小明degree学士思考: 目前我们都是通过set方式给bean注入值,sprin

16、g还提供其它的方式注入值,比如通过构造函数注入值! 通过构造函数注入值beans.xml 关键代码:- 配置一个雇员对象 -employeecom.hsp.constructor.Employee- 通过构造函数来注入属性值 -constructor-arg index=0 type=java.lang.String大明 自动装配bean的属性值(1) byName的用法:- 配置一个master对象 -mastercom.hsp.autowire.Master autowire=byName顺平dogcom.hsp.autowire.Dog小黄3原理图:(2) byType: byType:

17、寻找和属性类型相同的bean,找不到,装不上,找到多个抛异常。(3) constructor:constructor说明 : 查找和bean的构造参数一致的一个或 多个bean,若找不到或找到多个,抛异常。按照参数的类型装配 (4) autodetectautodetect(3)和(2)之间选一个方式。不确定 性的处理与(3)和(2)一致。(5) defualt这个需要在当你在指定了 default-atuowrite后, 所有的bean的 默认的autowire就是 指定的装配方法;如果没有在context:property-placeholder location=classpath:com/hsp/dispatch/db.properties,classpath:com/hsp/dispatch/db2.properties- 配置一DBUtil对象 $占位符号 -dbutilcom.hsp.dispatch.DBUtil$namedrivername$drivernameurl$url

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1