- 博客(19)
- 资源 (19)
- 收藏
- 关注
原创 Spring学习(10)Spring应用之事务
事务管理是AOP的应用。在Spring中使用三种方法,来实现对事务的管理:使用事务代理工厂管理事务 使用事务注解管理事务 使用AspectJ的AOP配置管理事务一、Spring事务管理APISpring的事务管理,主要用到两个事务相关的接口。(1)事务管理器接口事务管理器是PlatformTransactionManager接口对象。其主要完成事物的提交、回滚,以及事务的状态...
2019-01-25 10:26:10 160
原创 Spring学习(10)Spring应用之JDBC(Spring与Mybatis整合)
目录一、导入jar二、搭建测试环境1、定义Student2、定义数据库3、定义接口4、定义mapper5、定义mybatis.xml6、service层7、spring-dao.xml文件的编写第一步:引入jdbc.properties第二步:接下来配置数据源,(1)Spring默认的数据源DriverManagerrDataSource(2)D...
2019-01-24 17:29:28 290
原创 Spring学习(9)AOP之AspectJ
AspectJ其实是基于AOP思想的一个框架,在之前的通知顾问等等各种技术,在AspectJ同样能够实现。并且实现的更加方便和简单。平时开发的时候,就是使用这种方式进行开发的,在AspectJ中常见的通知有五种类型,比之前的增加了一个最终通知。前置通知 后置通知 环绕通知 异常通知 最终通知最终通知是指,无论程序执行是否正常,这个通知都会执行,类似于finally语句。并且A...
2019-01-24 16:27:34 348
原创 Spring学习(8)AOP之自动代理生成器
在上一篇博客中,看到我们前面通知或者是顾问所使用的代理对象,都是使用的是ProxyFactoryBean,这个代理存在着以下几个缺点:一个代理对象只能代理一个bean。 在测试代码中我们使用的id是代理类的id,不是目标类的id。(看下面)既然有很大的缺点,肯定就有解决办法,spring容器提供了自动代理生成器,用于解决上面的问题。常用的自动代理生成器有两个:默认顾问自动代理生成器...
2019-01-24 15:43:50 296
原创 Spring学习(7)AOP之顾问
上一篇博客是介绍了通知,但是通知有很大的缺陷,那就是在我们把通知织入到目标方法的时候,只能将切面织入到目标类的所有方法中,不能指定目标类中具体的方法。顾问是另一种切面,它可以完成更加复杂的功能。它可以指定具体的切入点。PointcutAdvisor是顾问的一种,可以制定具体的切入点。这个接口有两个常见的实现类:NameMatchMethodPointcutAdvisor:名称匹配方法切入点...
2019-01-24 15:17:28 347
原创 Spring学习(6)AOP之通知
在前面我们提到过,通知其实就是一种切面,这种切面可以完成简单的织入功能。常见的通知有四种:前置通知 后置通知 环绕通知 异常通知一、使用通知之前的准备1、导入jar包2、定义目标类beanpackage com.fdd.aop01;public class SomeServiceImpl implements ISomeService { public void d...
2019-01-24 13:43:35 226
原创 Spring学习(5)AOP概述和关键术语
AOP是面向切面编程的意思。比如说我们在bean的某一个方法前后添加一些自己的方法,进行处理,这就是切面编程,把自己的方法嵌入到bean方法的前后。举一个例子。我们有一个系统类:public class SystemService { public static void doLog() { System.out.println("执行日志代码"); } public...
2019-01-24 10:32:13 178
原创 Spring学习(4)IoC之Bean的注入(XML方式)
在上一篇博客中主要是bean的装配,这一篇看bean的注入。Bean实例在调用无参构造器之后就开始初始化其属性。初始化是由容器进行完成的,也被称之为注入。注入有两种类型:设值注入和构造注入。一、设值注入设值注入是指通过setter方法传入bean的实例。这种方式简单而且直观。1、定义beanpackage com.fdd.di01;public class Student...
2019-01-23 17:31:55 337
原创 分布式系统(2)系统模型
一、系统模型引言这篇文章描述系统模型。我们知道在上一篇博客当中主要介绍了分布式系统的概念、前景和挑战。这篇文章主要介绍系统模型。什么是系统模型呢?系统模型也就是分布式系统是如何设计的、整体的架构是什么?在这里从三个方面来介绍,物理模型、体系结构模型、基础模型。下面先看一下这三个模型的介绍以便在下面详细介绍时有更加深刻的认识。物理模型:考虑分布式系统中计算机是如何互联的,以及这些设备的类型,...
2019-01-23 08:57:25 4491
原创 Spring学习(3)IoC之Bean的装配
Bean的装配,也就是bean对象在容器中的创建。然后容器根据我们的代码需求,将Bean对象传递过来。这里有三种装配方式:默认装配方式 动态工厂方式 静态工厂方式先看项目结构:先给出applicationContext<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.spri...
2019-01-22 21:36:14 235
原创 Spring学习(2)IoC之第一个程序
IoC就是通过容器来实现对象的装配与管理,当下比较流行的主要有两种实现方式:依赖注入和依赖查找。依赖查找(DL):容器提供回调接口和上下文环境给组件,程序代码则需要提供具体的查找方式。比较典型的是依赖于JNDI系统的查找。 依赖注入(DI):程序代码不做定位,这些工作全都是由容器自行完成(比较常用)怎么去理解依赖注入呢?也就是我们在逻辑代码中假如要使用到一个对象Student,此时我们不用...
2019-01-22 17:58:39 153
原创 Spring学习(1)概述
前言什么是Spring?在百度百科上说:Spring就是一个轻量级的java开发框架,是为了解决企业开发的复杂性而创建的。其核心是控制反转和面向切面编程,也就是IoC和AOP。在形式上是降低了代码之间的耦合度。其体系结构如下: 一、下载Spring可以直接在网站上下载jar包。http://spring.io下载之后解压,导入自己的项目即可。有一点需要注意:...
2019-01-22 10:03:18 158
原创 Mybatis学习(15)查询缓存之ehcache二级缓存
Mybatis并不擅长缓存数据,因此引入了第三方缓存产品。如何使用ehcache来进行缓存呢?一、导入jar包https://github.com/mybatis/ehcache-cache/releases这里有两个jar包,一个是ehcache的核心jar包,另外一个是mybatis与ehcache整合的jar包。二、添加ehcache.xml文件将解压...
2019-01-21 20:30:44 250
原创 Mybatis学习(14)查询缓存之内置二级缓存
前言mybatis查询缓存的作用域是根据映射文件mapper的namespace划分的,相同namespace的mapper查询数据存放在同一个缓存区域中。不同namespace下的数据互不干扰。无论是一级缓存还是二级缓存都是按照namespace进行分别存放的。但是一级、二级缓存的不同之处在于,SqlSession一旦关闭,则SqlSession中的数据将不存在,但是二级缓存的生命周期会...
2019-01-21 18:38:59 208
原创 Mybatis学习(13)查询缓存之一级缓存
设置缓存的目的就是为了提高查询访问速度。mybatis根据缓冲区的作用域划分为两种:一级查询缓存和二级查询缓存基于PerpetualCache 的 HashMap本地缓存,其存储作用域为 Session,当 Session flush 或 close 之后,该Session中的所有 Cache 就将清空。也就是当SqlSession结束后,该SqlSession中的一级缓存也就不存在了。myb...
2019-01-21 16:58:55 265
原创 Mybatis学习(12)多表之延迟加载
前言什么是延迟加载?比较官方的意思是:在进行关联查询的时候,按照设置延迟规则推迟对关联对象的select查询。举一个例子。比如说我要查询一个订单的数据,但是我在查询订单的时候可能也会查这个订单的用户,但是如果我要用到这个订单用户信息的时候再去加载,此时也就是用户信息推迟一段时间加载。就用到了延迟加载技术。那么延迟加载有什么好处呢?他可以有效地减少数据库的压力。一、延迟加载的时机My...
2019-01-21 15:43:07 224
原创 Mybatis学习(11)多表之多对多查询
多对多查询指的是,一个学生可以选择很多门课程,一门课程可以有很多个学生去选择。此时两者的关系就需要一个中间表来建立,比如说选课表。一、定义实体由于讨论的是学生和课程之间的关系,所以,先定义实体(由于我数据库有了student 所以这里以student2代替)public class Student2 { private Integer sid; private String sn...
2019-01-21 14:29:36 359
SSM整合入门案例
2018-07-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人