黑马程序员:三大框架11天笔记全之Spring-day08笔记

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

黑马程序员郑州中心编著黑马程序员:三大框架Spring-day08笔记课堂笔记Spring概述1.1Spring介绍Spring它是一个一站式的分层轻量级框架。1.2Spring体系结构1.corecontainera)beans与core它们提供spring框架最基本功能,包含ioc与dib)context上下文对象,基于beans与coresc)spel它是sprng提供的一个表达式语言2.Dataaccess/integration黑马程序员郑州中心编著a)数据访问b)集成3.Weba)Spring本身提供springmvcb)也可以与其它的web层进行集成4.AOPAOP大部分情况下是使用动态代理来实现的。5.Test使用spring可以方便的进行测试1.3Spring框架优点方便解耦,简化开发Spring就是一个大工厂,可以将所有对象创建和依赖关系维护,交给Spring管理AOP编程的支持Spring提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能声明式事务的支持只需要通过配置就可以完成对事务的管理,而无需手动编程方便程序的测试Spring对Junit4支持,可以通过注解方便的测试Spring程序方便集成各种优秀框架Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts、Hibernate、黑马程序员郑州中心编著MyBatis、Quartz等)的直接支持降低JavaEEAPI的使用难度Spring对JavaEE开发中非常难用的一些API(JDBC、JavaMail、远程调用等),都提供了封装,使这些API应用难度大大降低第2章IOC与DI2.1Spring的jar包下载Spring的官网:spring.io我们课程中讲解使用的是spring4.2.4在spring3.0.2版本后,不在提供依赖jar包docs存在API和规范文档libs开发jar包schema开发过程中需要的xml的schema约束黑马程序员郑州中心编著2.2spring开发环境搭建在spring开发中,我们要根据不同的情况来导入不同的jar包,当前我们要讲解的是关于ioc与di对于ioc与di讲解我们只需要使用spring的核心功能。1.beans相关2.core相关3.context相关4.spel相关我们使用spring框架也会使用到配置文件,我们需要在src下创建一个关于spring的配置文件,一般情况名称叫applicationContext.xml问题:applicationContext.xml约束?它的路径:spring-framework-4.2.4.RELEASE-dist\spring-framework-4.2.4.RELEASE\docs\spring-framework-reference\html黑马程序员郑州中心编著2.3IOC快速入门Ioc它是什么,解决什么问题,它的原理是如何实现。IOCinversionofController控制反转。在程序中所说的IOC其实简单说,就是原来由我们自己实例化的对象交给spring容器来实始化。这时对象的实始化的权利就会反转。程序运行时报错原因:当前环境需要一个commons-loggin的jar包总结spring使用步骤:1.在applicationContext.xml文件中配置bean2.创建一个AppliCationContext对象ApplicationContext它是BeanFactory的一个子接口,我们在使用时使用的是AppliCationContext的实现类ClassPathXmlApplicationContext可以通过getBean(配置文件中id名称)来获取指定的对象。黑马程序员郑州中心编著2.4DIDI:dependencyinjection依赖注入在spring框架负责创建Bean对象时,动态将依赖对象注入到Bean组件。简单说,这时UserServiceImpl中的info属性值就是ITCAST面试题:IOC和DI区别?IOC控制反转,是指对象实例化权利由spring容器来管理DI依赖注入在spring创建对象的过程中,对象所依赖的属性通过配置注入对象中。黑马程序员郑州中心编著第3章Bean获取与实例化3.1ApplicationContext与BeanFactory关系ApplicationContext它是扩展BeanFactory接口。BeanFactory它采取延迟加载的方案,只有真正在getBean时才会实例化Bean在开发中我们一般使用的是ApplicationContext,真正使用的是其实现类,FileSystemXmlAppliCationContext根据文件路径获取ClassPathXmlApplicationContext根据类路径获取AppliCationContext它会在配置文件加载时,就会初始化Bean,并且ApplicationContext它提供不同的应用层的Context实现。例如在web开发中可黑马程序员郑州中心编著以使用WebApplicationContext.3.2Bean的实例化方式3.2.1无参数构造对于这种方式,注意Bean类中必须提供无参数构造。3.2.2静态工厂方法需要创建一个工厂类,在工厂类中提供一个static返回bean对象的方法就可以。3.2.3实例工厂方法需要创建一个工厂类,在工厂类中提供一个非static的创建bean对象的方法,在配置文件中需要将工厂配置,还需要配置bean黑马程序员郑州中心编著3.3Bean的作用域在bean声明时它有一个scope属性,它是用于描述bean的作用域。可取值有:singleton:单例代表在springioc容器中只有一个Bean实例(默认的scope)prototype多例每一次从spring容器中获取时,都会返回一个新的实例request用在web开发中,将bean对象request.setAttribute()存储到request域中session用在web开发中,将bean对象session.setAttribute()存储到session域中在开如常用的值是singleton与prototype黑马程序员郑州中心编著3.4Bean的生命周期1.instantiatebean对象实例化2.populateproperties封装属性3.如果Bean实现BeanNameAware执行setBeanName4.如果Bean实现BeanFactoryAwar或ApplicationContextAwar设置工厂setBeanFactory或上下文对象setApplicationContext5.如果存在类实现BeanPostProcessor(后处理Bean),执行postProcessBeforeInitialization6.如果Bean实现InitializingBean执行afterPropertiesSet7.调用自定义的init-method方法8.如果存在类实现BeanPostProcessor(处理Bean),执行postProcessAfterInitialization黑马程序员郑州中心编著9.执行业务处理10.如果Bean实现DisposableBean执行destroy11.调用自定义的destroy-method对于bean的生命周期方法:第三步与第四步是让Bean了解spring容器。第五步与第八步可以针对指定的Bean进行功能增强,这时一般会使用动态代理.第六步与第十步:通过实现指定的接口来完成init与destroy操作但是在开发中一般不使用第6步与第10步,原因是我们可以使用第7步与第11步来完成。第7步与第11步的初始化与销毁操作它无耦合,推荐使用的。但是必须在配置文件中指定初始化与销毁的方法总结:对于bean的生命周期,我们需要关注的主要有两个方法:1.增强bean的功能可以使用后处理Bean,BeanPostProcessor2.如果需要初始化或销毁操作我们可以使用init-methoddestroy-method注意:destroy-method只对scope=singleton有效果。黑马程序员郑州中心编著

1 / 12
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功