• 103.00 KB
  • 2022-06-17 16:10:09 发布

镇江市中考满分作文-Spring授课指导

  • 17页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
Spring第一次课:一、Spring是什么?Spring是一个开源的控制反转(InversionofControl,IoC)和面向切面(AOP)的容器框架。它的上要目的是简化企业开发。二、搭建Spring的环境•所需要的jar包:distspring.jarlihjakaila-commonscomnions-logging.jarIiblog4jlog4j-l.2.15.jar•如果使用了切面编程(AOP),述需要下列jar文件:lihaspcctjaspcctjwcavcr.jar和aspcctjrt.jarlibcglibcglib-nodep-2.l_3.jar•如果使用了JSR-250中的注解,如@Resource等,还需要下列jar文件:libj2eecommon-annotations.jar1)、加入spring所需要的jar包2)、加入spring所需要的配置文件。M以去Spring|‘]带的例了samplesjpetstorewarWEB-INF下拷贝。如果没有捉示,需要手动添加Schema文件。注意:这个时候也可以将k)g4j配置文件拷贝到当前的项口中。3)、实例化spring容器实例化spring容器常用的两种方式:方法一: 在类路径下寻找配置文件來实例化容器 Applicationcontextctx=newClassPathXmlApplicationContext(HapplicationContext.xmlH);方法二:在文件系统下寻找配置文件來实例化容器批注[xl]:nJ-以使用数组的方式ApplicationContextctx=newFileSystemXmlApplicationContext(|newString[]{Hd:\applicationContext.xmr,1)、写测试类,测试环境足否搭建成功2)、创建DAO层接n:PcrsonDao3)、创建实现类:PersonDaoWithMySQLImplsPersonDaoWithOmclelmpl4)、改动配置文件applicationContext.xmlo加入信息如下:5)、改动测试类码:PersonDaopersonDao=(PersonDao)ctx.gelBean(MpersonDaoH);personDao.save();三、控制反转IoC(lnversionofControl):所谓控制反转就是应用本身不负责依赖对象的创建及维护,依赖对象的创建及维护是由外部容器负责的。这样控制权就由应丿IJ转移到了外部容器,控制权的转移就是所谓的反转。四、SpringBean的作用域:scope可以取值: *singleton:每次调用getBean的时候返回相l>i的实例。[默认值]*prototype:每次调用getBean的时候返回不同的实例。问题:何时实例化Bean?是Spring容器启动的时候,还是调用getBean()方法的时候?当scope="prototype"的时候,又是怎样的?当取値不同的时候,实例化的时机也是不同的。五、依赖注入(DependencyInjection):1.依赖注入的定义:所谓依赖注入就是指,在运行期间,山外部容器动态地将依赖对彖注入到组件中2.依赖注入的形式:>构造器注入>setter方法注入具体实现,添加服务层的代码PcrsonScn-icc接口,并添加实现类。服务层负责具体的业务逻辑的处理,处理完业务逻辑Z后,会调用DAO层的代码进行数据持久化的操作。可以将Spring对服务层的管理利DAO层的管理放到两个祀宜文件中,如:applicationContext-dao.xmkapplicationContext-service.xml,在加载配置文件的时候可以使用数组,或者直接使用applicationcontext-*.xm1的形式也町以。SpringIoc容器的关键点: *必须将被管理的对象定义到Spring配置文件中*必须定义构造函数或seuer方法,让Spring将对象注入进來Spring第二次课:3.Spring通属性的注入>strVaIue:String>intValuc:int>listValue:List>setValue:Set>mapValuc:Map>amiyValue:Stringl]4.如何装配java.util.Date类型>自定义方式1・定义UtilDatePropertyEditor继承PropertyEditorSupport类2.重写setAslexK)方法,编写转换规则publicvoidsetAsText(Stringtext)throwsIllegalArgumentExceplion(SimpleDateFormatsdf=newSimpleDateFormat(wyyyy-MM-adw);try(Datedate=sdf.parse(text);this・setValue(date);}catch(ParseExceptione){q・printStackTrace(); )}2.在配置文件中定义UtilDatePropertyEditor3.将自定义的UtilDatePropertyEditorf注册到CustomEditorConfigurer>使用Spring提供的工具类1)、Spring中提供了一个操作注入Date的工具类CustomDateEditoroCustomDateEditor的一个作用就是在spring的配置文件里面把string转成在注入时的Date。默认CustomDateEditor是没有注册的。2)、首先在配直文件里血声明一个CustomDateEditor,用构造函数的方式注入它需耍的两个参数.一个是SimpleDateFormattert还有一个boolean值。〈construetor-argvalue=,rtruewindex=rfln/> 3)>再把这个bean加到spring的CustomEditorConfigurer里面<•—注册转换规格一〉trykey=njava.util.Daten>CustomDateEditorill然是Spring提供出來的工貝•类,川以推导出自怎义Editor的步骤:1)•必须继承PropertyEditorSupport2).重写setAsTex")方法,编写转换规则3)•在配置文件中配置自定义Editor4)•在配置文件中将自定义的Editor注册到CustomEditorConfigurer2.自动装配:>byName:按照名称装配>byType:按照类型装配 >default:和default-autowire的取值一样A...如果所有的bean都用同一种,可以使用beans的属性:default-autowire2.主命周期>lazy-init:在容器启动的时候不进行实例化的工作,而延迟到调用getBeanf)方法的时候在进行实例化的工作。>init-method―destroy-methd>想调用销毁的方法需要于-动的调用ClassPathXmlApplicationContextdestroymethod。3.使用注解装配:>@Autowired:默认按类型进行装配。1)默认按类型byType2)如杲想用byName,使用@Qulifier3)写在privatefield(第三种注入形式)(不建议,破坏封装)4)如果写在set上,@Qualifier需要写在参数上>(©Resource:默认按名称进行装配,当找不到M名称匹配的bean才会按类型装祀。1)力llA:j2ee/common-annotations.jar2)默认按名称,名称找不到,按类型3)可以指定特定名称(name)4)推荐使用注意:使10@Resource注解装配需要加入Iibj2eecommon-annotations.jar,并且需要打开相应的处理器 &自动扫描方式把组件纳入Spring容器中管理(英中base-package为需要扫描的包,可以扫描子包)注怠:此时spring配置文件必须包含xmlnsicontext的命名空间>@Service用于标注业务层组件(servicelayer)>@Controller用标注控制层组件(如struts中的action)>(©Repository用于标注数据访问组件,即DAO组件(persistencelayer)o>@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。9.@Scope10.@PostConstruct=init-method;@PreDestroy=destroy-method;第三次课:SpringAOPAOP中的概念Aspect(切面):指横切性关注点的抽象即为切血,它与类相似,只是两者的关注点不-样,类是对物体特征的抽象,而切面是横切性关注点的抽象•joinpoint(连接点):所谓连接点是指那些被拦截到的点。在spring屮,这些点指的是方法,因为spring只支持方法类型的连接点,实际上joinpoint还可以是field或类构造器) Pointout(切入点):所谓切入点是指我们要对那些joinpoint进行拦截的定义.Advice(通知):所谓通知是指拦截到joinpoint之后所要做的事情就是通知.通知分为前置通知,后置通知,异常通知,最终通知,环绕通知Target(目标对象):代理的忖标对象Weave(织入):指将aspects应用到target对象并导致proxy对彖创建的过程称为织入.Introduction(弓I入):在不修改类代码的前提下,Introduction可以在运行期为类动态地添加一些方法或Field.在Spring中进行AOP编程的基础Spring是使用Aspectl2L具实现的AOP。Aspect!是一个面向切面的框架,他定义了AOP语法,所以它有一个专门的编译器用来生成遵守Java字节编码规范的Class文件 Spring提供了两种切面使用方式,实际工作中我们可以选用其中一种:•使用基于XML配置方式进行AOP开发。•使用基于注解方式进行AOP开发。概念:Advice(通知)通知Advice,就是拦截到方法后要増加的功能,可以在原方法执行前、后、出异常等等时机增加处理代码。通知都是Advice接口的实现类。通知的类型有:♦前置通知♦后置通知♦环绕通知♦异常通知♦最终通知 第四次课:使用Spring+JDBC集成步骤如下:spr"fi"fi百百百遍遍爲jjltll+l出+++++需要使用的jar包如下:common-annotaLtions.jar-E:opensourcespring~£rajnework-2.5.6.SEC01libj2eeaspectjrt.jar-E:opensourcespring-£ramework~2.5.6.SECO1libaspectjaspectjwe&vwr.jar-E:opensourcespring~framework"2.5.6.SECO1libaspectjcglib-nodep-2.1_3・jar一E:opensourcespring-framework~2.5.6.SECO1libcglibcommons"dbcp・jar一E:opensourcespring-£ramework~2.5.6・SECO11ibjakarta-commonscommons-pool・jar-E:opensourcespring-framework-2・5.6.SECOllibjakarta^commonscommons-logging・jar■E:opensourcespring-fra/nework-2・5.6.SEC01libjakarta^commonsspringjar■E:opensonrcespring"£ramework"2.5.6.SECO1dist1、配垃数据源