博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring 3.0
阅读量:7090 次
发布时间:2019-06-28

本文共 2748 字,大约阅读时间需要 9 分钟。

hot3.png

Spring IOC概念: 其一是控制 : 即控制权。 其二是反转 : 某一接口具体实现类的选择权从调用类中移除出去,转交给第三方决定。 DI(依赖注入) 即调用类对某一接口实现的类依赖关系由第三方(容器或者协作类)注入,以移除调用类对某一接口实现类的依赖。 IOC的类型:构造函数注入,属性注入和接口注入。Spring支持构造函数注入,属性注入。

通过一个海选机构来选择、导演、演员,让他们各司其职,那剧本,导演,演员之间就实现了解耦了。 所谓海选和第三方中介机构在程序领域即是一个第三方容器,它帮助完成类的初始化与装配工作,让开发者从底层实现类的实例化,依赖关系装配 等工作中脱离出来,专注于更有意义的业务逻辑开发上来。 Spring就是这样的容器,它通过配置文件和注解来描述类与类之间的关系,自动完成类的初始化和依赖注入工作。

java.lang.NoSuchMethodError

原因:基本都是由JVM的“全盘负责委托机制”引发的问题,因为在类路径下放置了多个不同版本的类包,如commans-lang 2.x.jar和commans-lang 3.x.jar;都未列于路径中, 代码用到了commans-lang 3.x.jar中的某个方法,而2中没有,则运行时就会出现该错误。

Spring中的Bean对象比。JavaBean对象更宽泛。 JavaBean满足:1、有一个无参构造函数2、简单的setter和getter方法,3、序列化 Spring中的Bean是指所有可以被Spring容器实例化并管理的Java类。都可以成为Bean.

如果说BeanFactory是Spring的心脏,那么ApplicationContext则是完整的身躯

WebApplicationContext(针对web应用),它允许从相对于web(WEB-INF)根目录的路径中装载配置文件完成初始化工作。WebApplicationContext整个web应用上下文对象将作为属性放置在ServletContext中,以便web应用环境能够访问Spring应用上下文。Spring专门为此提供了一个工具类WebApplicationContextUtils.通过该类的getWebApplicationContext(ServletContext sc)方法,即可以从ServletContext中获取WebApplicationContext实例。WebApplicationContext定义了一个常量ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE,在上下文启动时,WebApplicationContext实例,就将此作为键放置在ServletContext中。因此我们可以通过获得。 WebApplicationContext wac = (WebApplicationContext)servletContext.getAttribute( WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);

WebApplicationContext初始化 它的初始化和BeanFactory和ApplicationContext有所区别,因为WebApplicationContext需要ServletContext实例,也就是说它必须在拥有Web容器前提下才能完成启动工作,web.xml中配置自启动的Servlet或者自定义的web容器(ServletContextListener),借助这两者中的任何一个,我们就可以完成启动Spring Web应用上下文的工作。 Spring分别提供了用于启动WebApplicationContext的Servlet和Web容器监听器:  org.springframework.web.context.ContextLoaderServlet;  org.springframework.web.context.ContextLoaderListener。

动态代理 JDK的动态代理通过接口的方式实现动态代理 CGLIB通过继承父类的方式进行动态代理。

Spring aop 增强:Advice就是定位位置,如:是放置方法前,方法后,还是环绕方法,异常时的代码。 切点:Advisor就是定义具体哪个类的哪个方法中。切点和连接的就如sql中,切点是sql语句,连接点是查询出来的结果。 切面(Aspect)切面由切点和增强(引介)组成,它既包括了横切的逻辑概念,也包括了连接点的定义,StringAOP就是负责实施切面的框架,它将切面所定义的横切逻辑织入到切面所指定的连接点中、 由于增强既包含横切代码,又包含部分的连接点()信息。所有我们可以通过一个增强类生成一个切面类。但切点仅代表目标类连接点的部分信息(类和方法的定位),所以仅有切点,我们无法制作出一个切面,必须结合增强才能制作出一个切面。 切面类型 静态切面(一次加载),动态切面(运行时加载,多次),流程切面:流程切点代表由某个方法直接或者间接发起调用的其他方法。引介切面,为对象添加接口的实现,复合切面(组合,多个切点)

定义切面的方式 1、基于@AspectJ注解方式 2、基于aop:aspect 3、基于aop:advisor 4、基于Advisor类的方式

LTW(Load Time Weaving) 在类加载期通过字节码编辑的技术,将切面织入到目标类中。

Spring DAO技术 数据库事务的ACID特性。

数据库并发问题可归结为:3类数据读取问题(脏读:A事务读取B事务尚未提交的数据,不可重复读:A事务读取了B事务提交的更改数据,幻想读:A事务读取了B事务增加的数据,此两者的区别是,前者是修改的数据,如:删除或者修改,后者是新增数据。避免方案:前者采取只锁住该行数据,而后者采取的是锁住整个表) 2类数据更新问题(第一类丢失更新:A事务撤销时,把已经提交的B事务的更新数据覆盖了;第二类丢失更新:A事务覆盖B事务已经提交的数据)

Spring管理事务SPI高层主要包含3个接口,PlatfromTransactionManager【对事务的管理,提交or回滚】,TransactionDefinition[定义了兼容Spring兼容的事务属性,这些属性对事务管理控制的若干 方面进行配置]和TransactionStatus[代表一个事务的具体运行状态]

转载于:https://my.oschina.net/ouyangtaohong/blog/759183

你可能感兴趣的文章
php扩展模块如何安装
查看>>
mysql数据库安装和基本操作
查看>>
02.学习笔记-Linux常见文件类型
查看>>
Linux TCP 链接状态
查看>>
ava对数组元素排序的三种方式
查看>>
TCP
查看>>
Linux对逻辑卷的创建与管理基本命令
查看>>
进制之间转换
查看>>
我的友情链接
查看>>
三、编译安装mysql-5.5.33
查看>>
重视习惯意识有效实现智能布线管理
查看>>
一位IT退休老兵的感言、工作、生活、前途、选择
查看>>
win8与win7一样最好直接用administrator用户进行使用
查看>>
STP知识点
查看>>
IBM DS3500 with Windows 2008 Multipathing
查看>>
获取优酷视频地址
查看>>
mysql手动同步工具,mk-table-sync
查看>>
简析Activity生命周期
查看>>
VM增加centos6.5磁盘容量
查看>>
Servlet容器启动过程
查看>>