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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

Spring学习讲义.docx

1、Spring学习讲义Spring几个重要概念(0200)1. DI Dependency Injection 依赖注入 2. IOC(DI)Inversion of Control控制反转3. AOP Aspect-Oriented Programming 面向切面编程4. SSH框架什么是IOC(DI),有什么好处1. 把自己new的东西改为由容器提供a) 初始化具体值b) 装配2. 好处:灵活装配Spring IOC配置与应用1. 环境搭建:A)引入jar包:spring-core.jar , sping-beans.jar, spring-context.jar jarkata-comm

2、ons/commons-loggin.jar,B)引入XML文件的元文件(解决没有提示的问题):a) window preferences myeclipse xml xml catalogb) User Specified Entries addi. Location: D:share0900_Springsoftspring-framework-2.5.6distresourcesspring-beans-2.5.xsdii. URI: file:/D:/share/0900_Spring/soft/spring-framework-2.5.6/dist/resources/spring-

3、beans-2.5.xsdiii. Key Type: Schema Locationiv. Key: http:/www.springframework.org/schema/beans/spring-beans-2.5.xsd2. BeanFactory 和 ApplicationContext ApplicationContext实现BeanFactory接口1 ClassPathXmlApplicationContext 从classpath路径中读取xml文件3. Bean的实例化(xml):1 调用无参构造函数;(0300)“常用”2 采用静态工厂方法。(0400)“不用了解具体实

4、现方法”4. Bean的Scope1 Singlelon(默认)2 Prototype3 Request4 Session5. Bean的生命周期一个BEAN从建立到消亡,会经历一系列的生命周期。1 Bean定义文件中定义init-method(局部)2 Bean定义文件中定义destroy-method(局部)3 配置文件定义:default-init-method 和 default-destroy-method (全局)注意init-method destroy-method 不要和prototype一起用!6. Bean定义的继承需要在抽象Bean的定义中加入:abstract=”tr

5、ue”在实现Bean的定义中加入:parent=“ParentBeanName”。7. Bean的依赖设置两种基本注入方式:1 Setter Injection(重要)2 Construction Injection(不重要用的很少)8. 自动绑定四种方法:1 在Bean的定义中使用标签定义基本类型值;2 是用标签指定参考至其他Bean实例;3 使用标签指定”class”属性,指定依赖对象;4 隐式的自动绑定绑定方式:byName(名称) byType(类型) 将某个实例绑定在其他Bean属性上。9. 集合注入不重要,很少用,看例子!什么是AOP1. 面向切面编程 Aspect-Oriente

6、d ProgrammingA) 是对面向对象编程的有力补充。(顺,横)2. 当我们需要在业务逻辑前后加入一些与业务逻辑无关的系统逻辑(如:日志,权限检查,安全设置,运行时间等)内容时,我们把这些逻辑独立出来变成一个对象,成为Aspect。3. 好处:可以动态的添加和删除在切面上的逻辑而不影响原来的执行代码。4. AOP实现方法:代理(Proxy)Spring会自动生成代理对象,现简述代理机制Spring AOP的配置与应用1. 代理机制:A) 静态代理1 代理对象和被代理对象需要实现同一个接口2 代理对象可以实现日志相关服务3 被代理对象保留业务逻辑职责。4 缺点:一个代理接口对应一种服务,若

7、代理方法很多,无法胜任。B) 动态代理1 使用Handler服务于各个对象,Handler实现InvocationHandler接口。2 使用Handler的bind()方法,绑定被代理对象。2. AOP的相关概念a) JoinPoint 切点b) PointCut 切点的集合c) Aspect 切面d) Advice切面逻辑e) Target 被代理对象f) Weave 织入3. 实现AOP的两种方式:A) 使用annotationB) 使用xml4. Annotation的AOP配置a) 加上对应的xsd文件spring-aop.xsd和Jar包b) beans.xml c) 此时就可以解

8、析对应的Annotation了d) 建立我们的拦截类e) 用Aspect注解这个类f) 建立处理方法g) 用Before来注解方法h) 写明白切入点(execution .)i) 让spring对我们的拦截器类进行管理Component,初始化这个切面5. 常见的Annotation:(用做注解)a) Pointcut 切点的集合,使写法简介一点点b) Before 在方法前织入c) AfterReturning =(finally)在抛出异常后依旧织入d) AfterThrowing 在抛出异常前织入e) Around 在方法前后环绕织入6. xml配置AOP把interceptor对象初始

9、化aop:configaop:aspect .aop:pointcutaop:beforeStruts + Spring + Hibernate1.架构的历史A)两层架构B)三层架构Spring整合Hibernate1.架构思路(DI)A)UserDAO注入SessionFactoryB)DataSource的注入C)SessionFactory的注入Spring整合Struts1. 架构思路A)建立web project,加入相关的jar包B)struts对象继承Action类,让Spring来管理Action对象,让Action对象也成为Spring管理的Bean,即使用Spring产生A

10、ction对象。(HelloAction.java)C)UserChecker模拟业务层权限检查对象,可以使用Spring做依赖注入(UserChecker.java ,beans-config.xml)D)对Struts-config.xml使用Plug-in标签,指定Spring的Bean名称和位置。注意:Struts-config.xml 中Action名称与beans-config.xml中Bean的名称要对应,Struts生成的代理对象(DelegatingActionProxy)是通过名称进行匹配和完成消息传递的。Struts2.1.6 + Spring2.5.6 + Hibern

11、ate3.3.21. 需要的jar包列表jar包名称所在位置说明antlr-2.7.6.jarhibernate/lib/required解析HQLaspectjrtspring/lib/aspectjAOPaspectjweaver.AOPcglib-nodep-2.1_3.jarspring/lib/cglib代理,二进制增强common-annotations.jarspring/lib/j2eeResourcecommons-collections-3.1.jarhibernate/lib/required集合框架commons-fileupload-1.2.1.jarstruts/l

12、ibstrutscommons-io-1.3.2struts/libstrutscommons-logging-1.1.1单独下载,删除1.0.4(struts/lib)strutsspringdom4j-1.6.1.jarhibernate/required解析xmlejb3-persistencehibernate-annotation/libEntityfreemarker-2.3.13struts/libstrutshibernate3.jarhibernatehibernate-annotationshibernate-annotation/hibernate-common-anno

13、tationshibernate-annotation/libjavassist-3.9.0.GA.jarhiberante/lib/requiredhibernatejta-1.1.jar.hibernate transactionjunit4.5mysql-ognl-2.6.11.jarstruts/libslf4j-api-1.5.8.jarhibernate/lib/requiredhibernate-logslf4j-nop-1.5.8.jarhibernate/lib/requiredspring.jarspring/diststruts2-core-2.1.6.jarstruts

14、/libxwork-2.1.2.jarstruts/libstruts2commons-dbcpspring/lib/jarkata-commonscommons-pool.jar.struts2-spring-plugin-2.1.6.jarstruts/lib2. BestPractice:a) 将这些所有的jar包保存到一个位置,使用的时候直接copy3. 步骤a) 加入jar包b) 首先整合Spring + Hibernatei. 建立对应的package1. dao / dao.impl / model / service / service.impl/ testii. 建立对应的接

15、口与类框架1. S2SH_01iii. 建立spring的配置文件(建议自己保留一份经常使用的配置文件,以后用到的时候直接copy改)iv. 建立数据库v. 加入Hibernate注解1. 在实体类上加相应注解Entity Id等2. 在beans配置文件配置对应的实体类,使之受管vi. 写dao service的实现vii. 加入Spring注解1. 在对应Service及DAO实现中加入Component,让spring对其初始化2. 在Service上加入Transactional或者使用xml方式(此处建议后者,因为更简单)3. 在DAO中注入sessionFactory4. 在Ser

16、vice中注入DAO5. 写DAO与Service的实现viii. 写测试c) 整合Struts2i. 结合点:Struts2的Action由Spring产生ii. 步骤:1. 修改web.xml加入 struts的filter2. 再加入spring的listener,这样的话,webapp一旦启动,spring容器就初始化了3. 规划struts的action和jsp展现4. 加入struts.xmla) 修改配置,由spring替代struts产生Action对象5. 修改action配置a) 把类名改为bean对象的名称,这个时候就可以使用首字母小写了b) Scope(“prototy

17、pe”)不要忘记iii. struts的读常量:1. struts-default.xml 2. struts-plugin.xml3. struts.xml4. struts.properties5. web.xmliv. 中文问题:1. Struts2.1.8已经修正,只需要改i18n.encoding = gbk2. 使用spring的characterencoding3. 需要严格注意filter的顺序4. 需要加到Struts2的filter前面v. LazyInitializationException1. OpenSessionInViewFilter2. 需要严格顺序问题3. 需要加到struts2的filter前面

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

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