2022-项目源码spring1.面向接口抽象编程的概念与好处_第1页
2022-项目源码spring1.面向接口抽象编程的概念与好处_第2页
2022-项目源码spring1.面向接口抽象编程的概念与好处_第3页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程内容1.2.面向接口(抽象)编程的概念与好处IOC/DI 的概念与好处a) inverof controlb) dependency injection AOP 的概念与好处Spring 简介Spring 应用 IOC/DI(重要)a) xml3.4.5.b) annoion6.Spring 应用 AOP(重要)a) xmlb) annoion7.Struts2.1.6 + Spring2.5.6 + Hibernate3.3.2 整合(重要)a) opensesSpring JDBCInviewfilter(记住,解决什么问题,怎么解决)8.面向接口编程(面向抽象编程)1.2.场景:用户

2、添加Spring_0100_AbstractOrientedProgramminga) 不是 AOP:Aspect Oriented Programming好处:灵活3.IOC(DI),好处1.把自己 new 的东西改为由容器提供初始化具体值装配好处:灵活装配2.Spring 简介项目名称:Spring_0200_IOC_环境搭建只用 IOCroductioni.spring.jar ,mons-loggin.jarIOC 容器实例化具体 bean动态装配AOP 支持安全检查b) 管理 tranionSpring IOC 配置与应用1.FAQ:不给提示:a) window preferen m

3、yeclipse xml xml catalogb) User Specified Entries addi.Location:D:share0900_Springsoftspring-framework-2.5.6distresour g-beans-2.5.xsdURI:sprinii.file:/D:/share/0900_Spring/soft/spring-framework-2.5.6/dist/resources/spring-beans-2.5.xsdiii.iv.Key Type:Key:Schema Location2.注入类型a)b)c)d)Spring_0300_IOC

4、_Injection_Type setter(重要)构造方法(可以忘记)接口注入(可以忘记)3.id vs. nameSpring_0400_IOC_Id_Namename 可以用特殊字符简单属性的注入Spring_0500_IOC_SimplePropertybean 中的 scope 属性4.5.a)b)c)Spring_0600_IOC_Bean_Scope singleton 单例proptotype 每次创建新的对象6.集合注入Spring_0700_IOC_Collections很少用,不重要!参考程序自动装配Spring_0800_IOC_AutoWirebyName7.byTy

5、pe如果所有的 bean 都用同一种,可以使用 beans 的属性:default-autowire8.生命周期a)b)c)Spring_0900_IOC_Life_Cycle lazy-init (不重要)init-method destroy-methd 不要和 prototype 一起用(了解)9.Annoion 第一步:a) 修改 xml 文件,参考文档a)b)c)d)默认按类型 by type如果想用 byName,使用Qulifier写在 private field(第三种注入形式)(不建议,破坏封装)如果写在 set 上,qualifier 需要写在参数上11. Resource

6、(重要)a)b)c)d)e)mon-annoions.jar加入:默认按名称,名称找不到,按类型可以指定特定名称使用:如果没有源码,就无法运用 annoion,只能使用 xml itoryComponent Service Controller Re初始化的名字默认为类名首字母小写可以指定初始化 bean 的名字Scope14. tConstruct = init-method; PreDestroy = destroy-method;AOP1.面向切面编程 Aspect-Oriented-Programminga) 是对面象的思维方式的有力补充2.3.Spring_1400_AOP_rodu

7、ction好处:可以动态的添加和删除在切面上的逻辑而不影响原来的执行代码a) Filterb) Struts2 的概念:erceptor4.a)b)c)d)e)f)JoinPoPoCutAspect(切面) AdviceWeaveSprinP 配置与应用1.两种方式:使用 Anno使用 xmlion2.Annoiona)b)c)d)e)f)g)h)i)加上对应的 xsd 文件 sprinp.xsdbeans.xml 此时就可以对应的 Anno类ion 了建立的用Aspect 注解这个类建立处理方法用Before 来注解方法写明白切入点(execution .)让 spring 对的器类进行管理

8、Component3.常见的 Annoion:a)b)c)d)e)f)PocutBefore AfterReturning AfterThrowing AfterAround4.织入点语法void !void参考文档(* .) xml 配置 AOP5.a)b)把erceptor 对象初始化aop:configi.aop:aspect .1.aop:pocut2.aeforeSpring 整合 HibernateSpring 指定 datasource参考文档,找 dbcp.BasicDataSourcei.ii. iii.c3p0 dbcp proxool或者 Service 中注入 data

9、Sourceb)c)在在Spring 中可以使用PropertyPlaceHolderConfigure 来Properties 文件的内容Spring 整合 Hibernate2.a)perty dataSourceannoedClassesb)c)d)e)引入 hibernate 系列 jar 包User 上加 AnnoionUser或者 UserServie 注入 SesFactoryjar 包问题一个一个解决式的事务管理3.a)b)层还是 Service 层?事务加在annoioni.ii. iii. iv.v.加入 annoion.xsd加入 txManager be

10、antx:annoion-driven在需要事务的方法上加:Tran需 要 注 意 , 使 用 Ses OpenSesionalFactory.getCurrentSes不 要 使 用c)Tranional 详解i.什么时候 rollback.5.xml(运行期异常,非运行期异常不会触发rollback必须 uncheck (没有catch)不管什么异常,只要你 catch 了,spring 就会放弃管理事务特性:propagation_requiredread_only,可以同时配置好多方法)d)i.ii.bean txmanageraop:config1.aop:pocut2

11、.aop:advisor potx:advice: id trancut-ref advice-refion-manager =iii.e)HibernateTemplate、HibernateCallback、Hibernate介绍Support(不重要)i.ii. iii.设计模式:Template Method Callback:回调/钩子函数第一种:(建议)1.2.3.在 spring 中初始化 HibernateTemplate,注入 ses里注入 HibernateTemplatesave 写 getHibernateTemplate.save();Factoryiv.第二种:1.

12、从 HibernateSupport 继承2.必须写在 xml 文件中,无法使用 Anno而且是 final 的ion,因为set 方法在父类中,f)spring 整合 hibernate 的时候使用 packagesToScan 属性,可以让 spring 自动扫描对应包下面的实体类Struts2.1.6+Spring2.5.6+Hibernate3.3.21.需要的 jar 包列表2.BestPractice:a) 将这些所有的 jar 包保存到一个位置,使用的时候直接 copy步骤3.jar 包名称所在位置说明antlr-2.7.6.jarhibernaib/requiredHQLasp

13、ectjrtspring/lib/aspectjAOPaspectjweaver.AOPcglib-nodep-2.1_3.jarspring/lib/cglib,二进制增强common-annoions.jarspring/lib/j2eeResourcecommons-collections-3.1.jarhibernaib/required集合框架commons-fileupload-1.2.1.jarstruts/libstrutscommons-io-1.3.2struts/libstrutscommons-logging-1.1.1单 独, 删 除1.0.4(struts/lib)

14、struts springdom4j-1.6.1.jarhibernate/requiredxmlejb3-persistencehibernate-annoion/libEntityfreemarker-2.3.13struts/libstrutshibernate3.jarhibernatehibernate-annoionshibernate-annoion/mon-annoionshibernate-annoion/libjavassist-3.9.0.GA.jarhiberanib/requiredhibernatejta-1.1.jar.hibernate tranionjunit

15、4.5-ognl-2.6.11.jarstruts/libslf4j-api-1.5.8.jarhibernaib/requiredhibernaogslf4j-nop-1.5.8.jarhibernaib/requiredspring.jarspring/diststruts2-core-2.1.6.jarstruts/libxwork-2.1.2.jarstruts/libstruts2commons-dbcpsprimonscommons-pool.jar.struts2-spring-plugin-2.1.6.jarstruts/lib加入 jar 包首先整合 Spring + Hib

16、ernatei.建立对应的 package1./.impl / m/ service / service.impl/ testii.建立对应的接口与类框架1.S2SH_01建立 spring 的配置文件(建议自己保留一份经常使用的配置文件,以后用到的时候直接copy 改)建立数据库加入 Hibernate 注解iii.iv.v.1.2.写在实体类上加相应注解Entity Id 等在 beans 配置文件配置对应的实体类,使之受管service 的实现vi.vii.加入 Spring 注解1.在对应 Service 及始化实现中加入Component,让 spring 对其初2.在 Servic

17、e 上加入Tran因为更简单)ional 或者使用 xml 方式(此处建议后者,3.4.5.中注入 sesFactory在在 Service 中注入与 Service 的实现写viii.写测试c)整合 Struts2i.ii.结合点:Struts2 的 Action 由 Spring 产生步骤:1.2.修改 web.xml 加入 struts 的filter再加入 spring 的 listener,这样的话,webapp 一旦启动,spring 容器就初始化了规划 struts 的 action 和 jsp 展现加入 struts.xmla)修改配置,由 spring 替代 struts 产生 Action 对象修改 action 配置a)把类名改为 bean 对象的名称,这个时候就可以使用首字母小写了3.4.5.b) Scope(“prototype”)struts 的读常量:记iii..5.struts-d

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论