06 2018 档案
摘要:一、介绍 foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合。 foreach元素的属性主要有 item,index,collection,open,separator,close。 语法: item表示集合中每一个元素进行迭代时的别名 index指定一个名字,用于表示在迭
阅读全文
摘要:方案一: DAO层的函数方法 对应的Mapper.xml 其中,#{0}代表接收的是dao层中的第一个参数,#{1}代表dao层中第二参数,更多参数一致往后加即可。 方案二: 此方法采用Map传多参数. Dao层的函数方法 对应的Mapper.xml Service层调用 个人认为此方法不够直观,见
阅读全文
摘要:方法一:使用转义字符 附:XML转义字符 < < 小于号 > > 大于号 & & 和 ' ’ 单引号 " " 双引号 方法二:使用<![CDATA[ ... ]]>
阅读全文
摘要:一、介绍 #{}:占位符号,可以防止sql注入(替换结果会增加单引号‘’) ${}:sql拼接符号(替换结果不会增加单引号‘’,like和order by后使用,存在sql注入问题,需手动代码中过滤) 二、具体分析 动态 SQL 是 mybatis 的强大特性之一,也是它优于其他 ORM 框架的一个
阅读全文
摘要:一、配置数据源 二、配置SqlSessionFactory 三、Mybatis全局配置文件(非必须) 四、配置mapper路径 五、配置sqlSessionTemplate(非必须)
阅读全文
摘要:一、基本数据类型的绑定 表单代码: controller代码: 注意: 方法形参中的参数名要和前台传进来的名一样,才能完成参数的绑定。 若不一样,我们可以使用@RequestParam注解标明传进来参数的名称,完成参数的绑定。 二、pojo类型的绑定 Model代码: 表单代码: Controlle
阅读全文
摘要:一、SpringMVC的主要组件 前端控制器(DisatcherServlet):接收请求,响应结果,返回可以是json,String等数据类型,也可以是页面(Model)。 处理器映射器(HandlerMapping):根据URL去查找处理器,一般通过xml配置或者注解进行查找。 处理器(Hand
阅读全文
摘要:一、添加依赖 二、配置web.xml 三、配置spring-mvc.xml 四、创建controller 五、测试
阅读全文
摘要:一、编程式事务 1. 编程式和声明式事务的区别 Spring提供了对编程式事务和声明式事务的支持,编程式事务允许用户在代码中精确定义事务的边界,而声明式事务(基于AOP)有助于用户将操作与事务规则进行解耦。 简单地说,编程式事务侵入到了业务代码里面,但是提供了更加详细的事务管理;而声明式事务由于基于
阅读全文
摘要:1. 事务的特性:ACID 原子性(Atomicity):事务是一个原子操作,由一系列动作组成。事务的原子性确保动作要么全部完成,要么完全不起作用。 一致性(Consistency):一旦事务完成(不管成功还是失败),系统必须确保它所建模的业务处于一致的状态,而不会是部分完成部分失败。在现实中的数据
阅读全文
摘要:一、介绍 AOP(Aspect Orient Programming),我们一般称为面向方面(切面)编程,作为面向对象的一种补充,用于处理系统中分布于各个模块的横切关注点,比如事务管理、日志、缓存等等。 AOP代理主要分为静态代理和动态代理: 静态代理:以AspectJ为代表,在编译阶段生成AOP代
阅读全文
摘要:一、添加依赖(maven) spring-aop包中定义了相应的接口 aspectjweaver包中提供了相应的注解 二、基于注解的Spring AOP开发 1. 定义目标类接口和实现类 2. 编写Spring AOP的aspect 类 3. 编写配置文件 4. 编写测试类 运行结果: 二、基于XM
阅读全文
摘要:一. 添加依赖包(maven) 二. 创建测试基类 三. 创建测试类
阅读全文
摘要:一、基于XML的配置 适用场景: Bean实现类来自第三方类库,如:DataSource等 需要命名空间配置,如:context,aop,mvc等 二、基于注解的配置 适用场景: 项目中自己开发使用的类,如controller、service、dao等 步骤如下: 1. 在applicationCo
阅读全文
摘要:一、单机redis配置
二、哨兵模式配置
三、Cluster集群配置
阅读全文
摘要:一、方案 1. 介绍 redis3.0及以上版本实现,集群中至少应该有奇数个节点,所以至少有三个节点,官方推荐三主三从的配置方式 使用哈希槽的概念,Redis 集群有16384个哈希槽,每个key通过CRC16校验后对16384取模来决定放置哪个槽。集群的每个节点负责一部分hash槽。 使用主从复制
阅读全文
摘要:一、 方案 1. 介绍redis集群分为服务端集群(Cluster)和客户端分片(Sharding)服务端集群:redis3.0以上版本实现,使用哈希槽,计算key的CRC16结果再模16834。此处暂不介绍客户端分片:3.0以下使用,采用Key的一致性hash算法来区分key存储在哪个Redis实
阅读全文
摘要:一、sentinel介绍 Redis 2.8中提供了“哨兵”工具来实现自动化的系统监控和故障恢复功能。 Redis 2.6 版也提供了哨兵工具,但此时的哨兵是1.0版,存在非常多的问题,任何情况下都不应该使用这个版本的哨兵。 1. Sentinel功能: 监控:哨兵不断的检查master和slave
阅读全文
摘要:一、引言 Redis有三种集群模式: 第一个就是主从模式 第二种“哨兵”模式,在Redis 2.6版本开始提供,2.8版本稳定 第三种是Cluster集群模式,在Redis 3.x以后的版本才增加进来的 二、主从介绍: 1. 工作原理: Slave启动并连接到Master之后,它将主动发送一个SYN
阅读全文
摘要:环境:CentOS6.4 + redis3.2.4 一、安装 二、设置开机启动redis 1. 修改配置文件 将 daemonize no 改为 daemonize yes 2. 配置启动脚本 此脚本是/usr/redis/redis-3.2.4/utils/redis_init_script,需修
阅读全文
摘要:一、VM选项 - : 标准VM选项,VM规范的选项 -X: 非标准VM选项,不保证所有VM支持 -XX: 高级选项,高级特性,但属于不稳定的选项 参见 Java HotSpot VM Options 二、Trace跟踪参数 -XX:+printGC:打印GC的简要信息 -XX:+PrintGCDet
阅读全文
摘要:概述 如果说收集算法是内存回收的方法论,那垃圾收集器就是内存回收的实践者。《Java虚拟机规范》中对垃圾收集器应该如何实现并没有做出任何规定,因此不同的厂商、不同版本的虚拟机所包含的垃圾收集器都可能会有很大差别,不同的虚拟机一般也都会提供各种参数供用户根据自己的应用特点和 要求组合出各个内存分代所使
阅读全文
摘要:一、如何确定垃圾? 在堆里面存放着Java世界中几乎所有的对象实例,垃圾收集器在对堆进行回收前,第一件事情就是要确定这些对象之中那些还“存活”着,哪些已经“死去”(即不可能再被任何途径使用的对象)了。 1. 引用计数法: 在 Java 中,引用和对象是有关联的。如果要操作对象则必须用引用进行。因此,
阅读全文
摘要:概述 1. 基本概念: JVM 是可运行 Java 代码的假想计算机 ,包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收,堆 和一个存储方法域。JVM 是运行在操作系统之上的,它与硬件没有直接的交互。 2. 运行过程: 我们都知道 Java 源文件,通过编译器,能够生产相应的.Class 文件
阅读全文

浙公网安备 33010602011771号