随笔分类 -  Spring学习

摘要:一. 什么是命名空间 在 XML 中,元素名称是由开发者定义的,当两个不同的文档使用相同的元素名时,就会发生命名冲突。类似package的作用。 这个 XML 文档携带着某个表格中的信息: 1 <table> 2 <tr> 3 <td>Apples</td> 4 <td>Bananas</td> 5 阅读全文
posted @ 2019-01-03 12:29 Hermioner 阅读(620) 评论(0) 推荐(0)
摘要:如果我们有多个通知想要在同一连接点执行,那执行顺序如何确定呢?Spring AOP使用AspectJ的优先级规则来确定通知执行顺序。总共有两种情况:同一切面中通知执行顺序、不同切面中的通知执行顺序。 首先让我们看下 1) 同一切面中通知执行顺序:如图所示 图 同一切面中的通知执行顺序 而如果在同一切 阅读全文
posted @ 2018-12-31 17:44 Hermioner 阅读(293) 评论(0) 推荐(0)
摘要:前边章节已经介绍了声明通知,但如果想获取被被通知方法参数并传递给通知方法,该如何实现呢?接下来我们将介绍两种获取通知参数的方式。 一. 使用JoinPoint获取 pring AOP提供使用org.aspectj.lang.JoinPoint类型获取连接点数据,任何通知方法的第一个参数都可以是Joi 阅读全文
posted @ 2018-12-31 17:37 Hermioner 阅读(965) 评论(0) 推荐(0)
摘要:参考https://jinnianshilongnian.iteye.com/blog/1420691 阅读全文
posted @ 2018-12-31 17:24 Hermioner 阅读(124) 评论(0) 推荐(0)
摘要:Spring除了支持Schema方式配置AOP,还支持注解方式:使用@AspectJ风格的切面声明。 一. 启用对@AspectJ的支持 Spring默认不支持@AspectJ风格的切面声明,为了支持需要使用如下配置 二. 声明切面 @AspectJ风格的声明切面非常简单,使用@Aspect注解进行 阅读全文
posted @ 2018-12-31 17:14 Hermioner 阅读(213) 评论(0) 推荐(0)
摘要:基于Schema的AOP从Spring2.0之后通过“aop”命名空间来定义切面、切入点及声明通知。 在Spring配置文件中,所以AOP相关定义必须放在<aop:config>标签下,该标签下可以有<aop:pointcut>、 <aop:advisor>、<aop:aspect>标签,配置顺序不 阅读全文
posted @ 2018-12-31 12:14 Hermioner 阅读(250) 评论(0) 推荐(0)
摘要:一. 什么是AOP 考虑这样一个问题:需要对系统中的某些业务做日志记录,比如支付系统中的支付业务需要记录支付相关日志,对 于支付系统可能相当复杂,比如可能有自己的支付系统,也可能引入第三方支付平台,面对这样的支付系统该如何解决 呢? 1. 传统解决方案 1)日志部分提取公共类LogUtils,定义“ 阅读全文
posted @ 2018-12-30 23:23 Hermioner 阅读(159) 评论(0) 推荐(0)
摘要:一. 准备环境 1 org.springframework.aop-3.0.5.RELEASE.jar 2 com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar 3 com.springsource.org.aopalliance-1.0.0.j 阅读全文
posted @ 2018-12-30 23:23 Hermioner 阅读(243) 评论(0) 推荐(0)
摘要:作为Spring提供的较之BeanFactory更为先进的IoC容器实现,ApplicationContext除了拥有 BeanFactory支持的所有功能之外,还进一步扩展了基本容器的功能,包括BeanFactoryPostProces- sor、BeanPostProcessor以及其他特殊类型 阅读全文
posted @ 2018-12-29 15:24 Hermioner 阅读(269) 评论(0) 推荐(0)
摘要:什么是作用域呢?即“scope”,在面向对象程序设计中一般指对象或变量之间的可见范围。而在Spring容器 中是指其创建的Bean对象相对于其他Bean对象的请求可见范围。Spring提供“singleton”和“prototype”两种基本作用域,另外提供“request”、“session”、“ 阅读全文
posted @ 2018-12-28 22:27 Hermioner 阅读(154) 评论(0) 推荐(0)
摘要:一. 延迟初始化 延迟初始化也叫做惰性初始化,指不提前初始化Bean,而是只有在真正使用时才创建及初始化Bean。配置方式很简单只需在<bean>标签上指定 “lazy-init” 属性值为“true”即可延迟初始化Bean Spring容器会在创建容器时提前初始化“singleton”作用域的Be 阅读全文
posted @ 2018-12-28 22:04 Hermioner 阅读(186) 评论(0) 推荐(0)
摘要:一. 依赖和依赖注入的基本概念 1. 类之间的关系 传统应用程序设计中所说的依赖一般指“类之间的关系”,那先让我们复习一下类之间的关系:泛化:表示类与类之间的继承关系、接口与接口之间的继承关系;实现:表示类对接口的实现;依赖:当类与类之间有使用关系时就属于依赖关系,不同于关联关系,依赖不具有“拥有关 阅读全文
posted @ 2018-12-28 21:07 Hermioner 阅读(175) 评论(0) 推荐(0)
摘要:Spring IoC容器如何实例化Bean呢?传统应用程序可以通过new和反射方式进行实例化Bean。而Spring IoC容器则需 要根据Bean定义里的配置元数据使用反射机制来创建Bean。在Spring IoC容器中根据Bean定义创建Bean主要有以下 几种方式: 一. 使用构造器实例化Be 阅读全文
posted @ 2018-11-27 21:07 Hermioner 阅读(193) 评论(0) 推荐(0)
摘要:一. Bean的命名 每个Bean可以有一个或多个id(或称之为标识符或名字),在这里我们把第一个id称为“标识符”,其余id叫做 “别名”;这些id在IoC容器中必须唯一。如何为Bean指定id呢,有以下几种方式; 1. 不指定id,只配置必须的全限定类名,由IoC容器为其生成一个标识,客户端必须 阅读全文
posted @ 2018-11-25 10:12 Hermioner 阅读(168) 评论(0) 推荐(0)
摘要:一. 基础概念 1. 什么是IOC Ioc Inversion of control,即“控制反转”,它只是一种设计思想。它意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。 (1)谁控制谁 传统的是通过new来创建对象;但是IOC思想是通过一个专门的容器来创建这些对象。即:I 阅读全文
posted @ 2018-11-21 23:38 Hermioner 阅读(232) 评论(0) 推荐(0)
摘要:1.1.1 Spring是什么 Spring是一个开源的轻量级Java SE(Java 标准版本)/Java EE(Java 企业版本)开发应用框架,其目的是用于简化企业级应用程序开发。应用程序是由一组相互协作的对象组成。在传统的开发中,我们需要通过new关键字来创建对象。并且很多业务中,对象之间会 阅读全文
posted @ 2018-11-21 22:17 Hermioner 阅读(159) 评论(0) 推荐(0)
摘要:初次系统学习Spring。现在主要是在看《spring揭秘》+张开涛老师的博客,然后再整理成我习惯的逻辑。我用的spring版本是3.1.2 , JDK版本是1.8.0_171 待我踩完坑回来,我会更新我学习spring的方法,所有的途径,回馈给像我一样在IT路上奋斗的小伙伴们。毕竟,我也是刚踏进去 阅读全文
posted @ 2018-11-21 21:49 Hermioner 阅读(115) 评论(0) 推荐(0)
摘要:一. 配置环境 开发工具:SpringSource Tool Suite,简称STS,是个基于Eclipse的开发环境,用以构建Spring应用,其最新版 开始支持Spring 3.0及OSGi开发工具,但由于其太庞大,很多功能不是我们所必需的所以我们选择Eclipse+ SpringSource 阅读全文
posted @ 2018-11-21 20:51 Hermioner 阅读(154) 评论(0) 推荐(0)