您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 招聘面试 > 黑马程序员:三大框架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有效果。黑马程序员郑州中心编著
本文标题:黑马程序员:三大框架11天笔记全之Spring-day08笔记
链接地址:https://www.777doc.com/doc-4225387 .html