摘要: Zookeeper为分布式环境提供灵活的协调基础架构。ZooKeeper框架支持许多当今最好的工业应用程序。我们将在本章中讨论ZooKeeper的一些最显着的应用。 雅虎 ZooKeeper框架最初是在“Yahoo!”中构建的。设计良好的分布式应用程序需要满足诸如数据透明度,更好的性能,稳健性,集中 阅读全文
posted @ 2018-09-01 14:49 Borter 阅读(179) 评论(0) 推荐(0)
摘要: ZooKeeper有一个绑定Java和C的官方API。Zookeeper社区为大多数语言(.NET,python等)提供非官方API。使用ZooKeeper API,应用程序可以连接,交互,操作数据,协调,最后断开与ZooKeeper集合的连接。 ZooKeeper API具有丰富的功能,以简单和安 阅读全文
posted @ 2018-09-01 14:48 Borter 阅读(233) 评论(0) 推荐(0)
摘要: ZooKeeper命令行界面(CLI)用于与ZooKeeper集合进行交互以进行开发。它有助于调试和解决不同的选项。 要执行ZooKeeper CLI操作,首先打开ZooKeeper服务器(“bin/zkServer.sh start”),然后打开ZooKeeper客户端(“bin/zkCli.sh 阅读全文
posted @ 2018-09-01 14:47 Borter 阅读(149) 评论(0) 推荐(0)
摘要: 让我们分析如何在ZooKeeper集合中选举leader节点。考虑一个集群中有N个节点。leader选举的过程如下: 所有节点创建具有相同路径 /app/leader_election/guid_ 的顺序、临时节点。 ZooKeeper集合将附加10位序列号到路径,创建的znode将是 /app/l 阅读全文
posted @ 2018-09-01 14:46 Borter 阅读(127) 评论(0) 推荐(0)
摘要: 在安装ZooKeeper之前,请确保你的系统是在以下任一操作系统上运行: 任意Linux OS - 支持开发和部署。适合演示应用程序。 Windows OS - 仅支持开发。 Mac OS - 仅支持开发。 任意Linux OS - 支持开发和部署。适合演示应用程序。 Windows OS - 仅支 阅读全文
posted @ 2018-09-01 14:46 Borter 阅读(433) 评论(0) 推荐(0)
摘要: 一旦ZooKeeper集合启动,它将等待客户端连接。客户端将连接到ZooKeeper集合中的一个节点。它可以是leader或follower节点。一旦客户端被连接,节点将向特定客户端分配会话ID并向该客户端发送确认。如果客户端没有收到确认,它将尝试连接ZooKeeper集合中的另一个节点。 一旦连接 阅读全文
posted @ 2018-09-01 14:45 Borter 阅读(265) 评论(0) 推荐(0)
摘要: ZooKeeper的架构 看看下面的图表。它描述了ZooKeeper的“客户端-服务器架构”。 作为ZooKeeper架构的一部分的每个组件在下表中进行了说明。 客户端,我们的分布式应用集群中的一个节点,从服务器访问信息。对于特定的时间间隔,每个客户端向服务器发送消息以使服务器知道客户端是活跃的。 阅读全文
posted @ 2018-09-01 14:44 Borter 阅读(680) 评论(0) 推荐(0)
摘要: 在深入了解ZooKeeper的运作之前,让我们来看看ZooKeeper的基本概念。我们将在本章中讨论以下主题:1、Architecture(架构)2、Hierarchical namespace(层次命名空间)3、Session(会话)4、Watches(监视) 阅读全文
posted @ 2018-09-01 14:43 Borter 阅读(114) 评论(0) 推荐(0)
摘要: 分布式应用可以在给定时间(同时)在网络中的多个系统上运行,通过协调它们以快速有效的方式完成特定任务。通常来说,对于复杂而耗时的任务,非分布式应用(运行在单个系统中)需要几个小时才能完成,而分布式应用通过使用所有系统涉及的计算能力可以在几分钟内完成。 通过将分布式应用配置为在更多系统上运行,可以进一步 阅读全文
posted @ 2018-09-01 14:42 Borter 阅读(695) 评论(0) 推荐(0)
摘要: Apache ZooKeeper是由集群(节点组)使用的一种服务,用于在自身之间协调,并通过稳健的同步技术维护共享数据。ZooKeeper本身是一个分布式应用程序,为写入分布式应用程序提供服务。 ZooKeeper提供的常见服务如下 : 命名服务 - 按名称标识集群中的节点。它类似于DNS,但仅对于 阅读全文
posted @ 2018-09-01 14:42 Borter 阅读(367) 评论(0) 推荐(0)
摘要: ZooKeeper是一种分布式协调服务,用于管理大型主机。在分布式环境中协调和管理服务是一个复杂的过程。ZooKeeper通过其简单的架构和API解决了这个问题。ZooKeeper允许开发人员专注于核心应用程序逻辑,而不必担心应用程序的分布式特性。 ZooKeeper框架最初是在“Yahoo!"上构 阅读全文
posted @ 2018-09-01 14:41 Borter 阅读(111) 评论(0) 推荐(0)
摘要: 通过Hadoop安全部署经验总结,开发出以下十大建议,以确保大型和复杂多样环境下的数据信息安全。 1、先下手为强!在规划部署阶段就确定数据的隐私保护策略,最好是在将数据放入到Hadoop之前就确定好保护策略。 2、确定哪些数据属于企业的敏感数据。根据公司的隐私保护政策,以及相关的行业法规和政府规章来 阅读全文
posted @ 2018-09-01 14:37 Borter 阅读(864) 评论(0) 推荐(0)
摘要: Hadoop是原Yahoo的Doug Cutting根据Google发布的学术论文研究而来。Doug Cutting给这个Project起了个名字,就叫Hadoop。 Doug Cutting在Cloudera公司任职。Cloudera的Hadoop是商用版。不同于Apache的开源版。 如果要研究 阅读全文
posted @ 2018-09-01 14:36 Borter 阅读(515) 评论(0) 推荐(0)
摘要: Cloudera Cloudera Cloudera公司主要提供Apache Hadoop开发工程师认证(Cloudera CertifiedDeveloper for Apache Hadoop ,CCDH)和Apache Hadoop管理工程师认证(Cloudera CertifiedAdmin 阅读全文
posted @ 2018-09-01 14:36 Borter 阅读(1690) 评论(0) 推荐(0)
摘要: Hadoop Common: 在0.20及以前的版本中,包含HDFS、MapReduce和其他项目公共内容,从0.21开始HDFS和MapReduce被分离为独立的子项目,其余内容为Hadoop Common HDFS: Hadoop分布式文件系统(Distributed File System) 阅读全文
posted @ 2018-09-01 14:33 Borter 阅读(637) 评论(0) 推荐(0)
摘要: MapReduce 最简单的 MapReduce应用程序至少包含 3 个部分:一个 Map 函数、一个 Reduce 函数和一个 main 函数。main 函数将作业控制和文件输入/输出结合起来。在这点上,Hadoop 提供了大量的接口和抽象类,从而为 Hadoop应用程序开发人员提供许多工具,可用 阅读全文
posted @ 2018-09-01 14:32 Borter 阅读(888) 评论(0) 推荐(0)
摘要: MapReduce与Hadoop之比较 Hadoop是Apache软件基金会发起的一个项目,在大数据分析以及非结构化数据蔓延的背景下,Hadoop受到了前所未有的关注。 Hadoop是一种分布式数据和计算的框架。它很擅长存储大量的半结构化的数据集。数据可以随机存放,所以一个磁盘的失败并不会带来数据丢 阅读全文
posted @ 2018-09-01 14:31 Borter 阅读(1095) 评论(0) 推荐(0)
摘要: HBase和ZooKeeper HBase内置有ZooKeeper,也可以使用外部ZooKeeper。 让HBase使用一个已有的不被HBase托管的Zookeep集群,需要设置 conf/hbase env sh文件中的HBASE_MANAGES_ZK 属性为 false ... # Tell H 阅读全文
posted @ 2018-09-01 14:30 Borter 阅读(637) 评论(0) 推荐(0)
摘要: 在Zookeeper中,znode是一个跟Unix文件系统路径相似的节点,可以往这个节点存储或获取数据。如果在创建znode时Flag设置为EPHEMERAL,那么当创建这个znode的节点和Zookeeper失去连接后,这个znode将不再存在在Zookeeper里,Zookeeper使用Watc 阅读全文
posted @ 2018-09-01 14:29 Borter 阅读(433) 评论(0) 推荐(0)
摘要: ZooKeeper是以Fast Paxos算法为基础的,Paxos 算法存在活锁的问题,即当有多个proposer交错提交时,有可能互相排斥导致没有一个proposer能提交成功,而Fast Paxos作了一些优化,通过选举产生一个leader (领导者),只有leader才能提交proposer, 阅读全文
posted @ 2018-09-01 14:28 Borter 阅读(1252) 评论(0) 推荐(0)
摘要: ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。 ZooKeeper的目标就是封装好复杂易出错的关 阅读全文
posted @ 2018-09-01 14:27 Borter 阅读(721) 评论(0) 推荐(0)
摘要: 1. Dubbo是什么? Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样的分布式服务框架的需求,并且本质上是个服务调用的东东, 阅读全文
posted @ 2018-09-01 14:25 Borter 阅读(305) 评论(0) 推荐(0)
摘要: Provider 暴露服务方称之为“服务提供者”。 Consumer 调用远程服务方称之为“服务消费者”。 Registry 服务注册与发现的中心目录服务称之为“服务注册中心”。 Monitor 统计服务的调用次数和调用时间的日志服务称之为“服务监控中心”。 (1) 连通性: 注册中心负责服务地址的 阅读全文
posted @ 2018-09-01 14:23 Borter 阅读(192) 评论(0) 推荐(0)
摘要: Thymeleaf 3.0.9.RELEASE is the current stable version. It requires Java SE 6 or newer. Release date: 5 November 2017 Announcement: Thymeleaf 3.0.9 Cha 阅读全文
posted @ 2018-09-01 14:14 Borter 阅读(216) 评论(0) 推荐(0)
摘要: 本教程涵盖了常见的前端操作,比如,判断,循环,引入模板,常用函数(日期格式化,字符串操作)下拉,js和css中使用,基本可以应对一般场景。 怎么使用? 前端html页面标签中引入如下: 表达式 简单表达式 可用值表达式(后台设置): ${…} 所有可用值表达式: *{…} 比如*{name} 从可用 阅读全文
posted @ 2018-09-01 14:12 Borter 阅读(959) 评论(0) 推荐(0)
摘要: /* */ 阅读全文
posted @ 2018-09-01 14:08 Borter 阅读(192) 评论(0) 推荐(0)
摘要: 1、建议尽量不要使用Jsp,页面开发推荐使用Thymeleaf。Web项目建议独立部署Tomcat,不要使用内嵌的Tomcat,内嵌Tomcat部署Jsp项目会偶现龟速访问的情况。 2、服务编排是个好东西,主要的作用是减少项目中的相互依赖。比如现在有项目a调用项目b,项目b调用项目c...一直到h, 阅读全文
posted @ 2018-09-01 14:07 Borter 阅读(1042) 评论(0) 推荐(0)
摘要: 每个微服务都有自己独立的数据库,那么后台管理的联合查询怎么处理?这应该是大家会普遍遇到的一个问题,有三种处理方案。 1)严格按照微服务的划分来做,微服务相互独立,各微服务数据库也独立,后台需要展示数据时,调用各微服务的接口来获取对应的数据,再进行数据处理后展示出来,这是标准的用法,也是最麻烦的用法。 阅读全文
posted @ 2018-09-01 14:06 Borter 阅读(246) 评论(0) 推荐(0)
摘要: 使用微服务有一段时间了,这种开发模式和传统的开发模式对比,有很大的不同。 分工不同,以前我们可能是一个一个模块,现在可能是一人一个系统。 架构不同,服务的拆分是一个技术含量很高的问题,拆分是否合理对以后发展影响巨大。 部署方式不同,如果还像以前一样部署估计累死了,自动化运维不可不上。 容灾不同,好的 阅读全文
posted @ 2018-09-01 14:05 Borter 阅读(563) 评论(0) 推荐(0)
摘要: 在确定使用Spring Boot/Cloud这套技术栈进行微服务改造之前,先梳理平台的服务,对不同的服务进行分类,以确认演化的节奏。 先让团队熟悉Spring Boot技术,并且优先在基础服务上进行技术改造,推动改动后的项目投产上线 当团队熟悉Spring Boot之后,再推进使用Spring Cl 阅读全文
posted @ 2018-09-01 14:04 Borter 阅读(219) 评论(0) 推荐(0)
摘要: 服务拆分有以下几个原则和大家分享 横向拆分。按照不同的业务域进行拆分,例如订单、营销、风控、积分资源等。形成独立的业务领域微服务集群。 纵向拆分。把一个业务功能里的不同模块或者组件进行拆分。例如把公共组件拆分成独立的原子服务,下沉到底层,形成相对独立的原子服务层。这样一纵一横,就可以实现业务的服务化 阅读全文
posted @ 2018-09-01 14:04 Borter 阅读(2739) 评论(0) 推荐(0)
摘要: 当我们将所有的新业务都使用Spring Cloud这套架构之后,就会出现这样一个现象,公司的系统被分成了两部分,一部分是传统架构的项目,一部分是微服务架构的项目,如何让这两套配合起来使用就成为了关键,这时候Spring Cloud里面的一个关键组件解决了我们的问题,就是Zuul。在Spring Cl 阅读全文
posted @ 2018-09-01 14:03 Borter 阅读(530) 评论(0) 推荐(0)
摘要: 为什么选择使用Spring Cloud而放弃了Dubbo 可能大家会问,为什么选择了使用Dubbo之后,而又选择全面使用Spring Cloud呢?其中有几个原因: 1)从两个公司的背景来谈:Dubbo,是阿里巴巴服务化治理的核心框架,并被广泛应用于中国各互联网公司;Spring Cloud是大名鼎 阅读全文
posted @ 2018-09-01 14:02 Borter 阅读(7072) 评论(0) 推荐(0)
摘要: Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring并没有重复制造轮子,它只是将目前各家 阅读全文
posted @ 2018-09-01 14:01 Borter 阅读(231) 评论(0) 推荐(0)
摘要: 上图只是Spring Cloud体系的一部分,Spring Cloud共集成了19个子项目,里面都包含一个或者多个第三方的组件或者框架! Spring Cloud 工具框架 1、Spring Cloud Config 配置中心,利用git集中管理程序的配置。 2、Spring Cloud Netfl 阅读全文
posted @ 2018-09-01 14:01 Borter 阅读(1601) 评论(0) 推荐(0)
摘要: Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。用我的话来理解,就是Spring Boot其实不是什么新的框架,它默认配置了很多框架的使用方式,就像ma 阅读全文
posted @ 2018-09-01 13:59 Borter 阅读(211) 评论(0) 推荐(0)
摘要: 微服务的概念源于2014年3月Martin Fowler所写的一篇文章“Microservices”。 微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通(通常是基于 阅读全文
posted @ 2018-09-01 13:56 Borter 阅读(159) 评论(0) 推荐(0)
摘要: 复杂度可控:在将应用分解的同时,规避了原本复杂度无止境的积累。每一个微服务专注于单一功能,并通过定义良好的接口清晰表述服务边界。由于体积小、复杂度低,每个微服务可由一个小规模开发团队完全掌控,易于保持高可维护性和开发效率。 独立部署:由于微服务具备独立的运行进程,所以每个微服务也可以独立部署。当某个 阅读全文
posted @ 2018-09-01 13:56 Borter 阅读(1645) 评论(0) 推荐(0)
摘要: 我们从整体来看一下Spring Cloud主要的组件,以及它的访问流程 1、外部或者内部的非Spring Cloud项目都统一通过API网关(Zuul)来访问内部服务. 2、网关接收到请求后,从注册中心(Eureka)获取可用服务 3、由Ribbon进行均衡负载后,分发到后端的具体实例 4、微服务之 阅读全文
posted @ 2018-09-01 13:55 Borter 阅读(194) 评论(0) 推荐(0)
摘要: Spring Boot 是 Spring 的一套快速配置脚手架,可以基于Spring Boot 快速开发单个微服务,Spring Cloud是一个基于Spring Boot实现的云应用开发工具;Spring Boot专注于快速、方便集成的单个微服务个体,Spring Cloud关注全局的服务治理框架 阅读全文
posted @ 2018-09-01 13:53 Borter 阅读(1787) 评论(0) 推荐(0)
摘要: Spring Boot 是 Spring 的一套快速配置脚手架,可以基于Spring Boot 快速开发单个微服务,Spring Cloud是一个基于Spring Boot实现的云应用开发工具;Spring Boot专注于快速、方便集成的单个微服务个体,Spring Cloud关注全局的服务治理框架 阅读全文
posted @ 2018-09-01 13:52 Borter 阅读(865) 评论(0) 推荐(0)
摘要: Spring Boot简化了基于Spring的应用开发,通过少量的代码就能创建一个独立的、产品级别的Spring应用。 Spring Boot为Spring平台及第三方库提供开箱即用的设置,这样你就可以有条不紊地开始。多数Spring Boot应用只需要很少的Spring配置。 Spring Boo 阅读全文
posted @ 2018-09-01 13:51 Borter 阅读(407) 评论(0) 推荐(0)
摘要: Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring并没有重复制造轮子,它只是将目前各家 阅读全文
posted @ 2018-09-01 13:49 Borter 阅读(157) 评论(0) 推荐(0)
摘要: Hystrix 断路器可以防止一个应用程序多次试图执行一个操作,即很可能失败,允许它继续而不等待故障恢复或者浪费 CPU 周期,而它确定该故障是持久的。断路器模式也使应用程序能够检测故障是否已经解决。如果问题似乎已经得到纠正​​,应用程序可以尝试调用操作。 断路器增加了稳定性和灵活性,以一个系统,提 阅读全文
posted @ 2018-09-01 13:46 Borter 阅读(280) 评论(0) 推荐(0)
摘要: Ribbon Ribbon,主要提供客户侧的软件负载均衡算法。Ribbon客户端组件提供一系列完善的配置选项,比如连接超时、重试、重试算法等。Ribbon内置可插拔、可定制的负载均衡组件。下面是用到的一些负载均衡策略: 简单轮询负载均衡 加权响应时间负载均衡 区域感知轮询负载均衡 随机负载均衡 简单 阅读全文
posted @ 2018-09-01 13:45 Borter 阅读(679) 评论(0) 推荐(0)
摘要: Eureka 一个RESTful服务,用来定位运行在AWS地区(Region)中的中间层服务。由两个组件组成:Eureka服务器和Eureka客户端。Eureka服务器用作服务注册服务器。Eureka客户端是一个java客户端,用来简化与服务器的交互、作为轮询负载均衡器,并提供服务的故障切换支持。N 阅读全文
posted @ 2018-09-01 13:44 Borter 阅读(153) 评论(0) 推荐(0)
摘要: 服务发现——Netflix Eureka 客服端负载均衡——Netflix Ribbon 断路器——Netflix Hystrix 服务网关——Netflix Zuul 分布式配置——Spring Cloud Config 服务发现——Netflix Eureka 客服端负载均衡——Netflix 阅读全文
posted @ 2018-09-01 13:43 Borter 阅读(452) 评论(0) 推荐(0)
摘要: 最近一直在针对SpringCloud框架做项目,从中踩了不少的坑,也渐渐梳理出了一些内容,由于SpringCloud作为一个全家桶,其中东西太多,所以这时候就要有所取舍,这里就想把自己比较常用组件及架构推荐上来。本文基于SpringBoot 1.5.7和SpirngCloud Dalston.SR5 阅读全文
posted @ 2018-09-01 13:42 Borter 阅读(370) 评论(0) 推荐(0)
摘要: Spring Cloud对于中小型互联网公司来说是一种福音,因为这类公司往往没有实力或者没有足够的资金投入去开发自己的分布式系统基础设施,使用Spring Cloud一站式解决方案能在从容应对业务发展的同时大大减少开发成本。同时,随着近几年微服务架构和Docker容器概念的火爆,也会让Spring 阅读全文
posted @ 2018-09-01 13:41 Borter 阅读(274) 评论(0) 推荐(0)
摘要: Spring Cloud的子项目,大致可分成两类,一类是对现有成熟框架”Spring Boot化”的封装和抽象,也是数量最多的项目;第二类是开发了一部分分布式系统的基础设施的实现,如Spring Cloud Stream扮演的就是kafka, ActiveMQ这样的角色。对于我们想快速实践微服务的开 阅读全文
posted @ 2018-09-01 13:40 Borter 阅读(1003) 评论(0) 推荐(0)
摘要: Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只 阅读全文
posted @ 2018-09-01 13:39 Borter 阅读(402) 评论(0) 推荐(0)
摘要: 首先,SSH不是一个框架,而是多个框架(struts+spring+hibernate)的集成,是目前较流行的一种Web应用程序开源集成框架,用于构建灵活、易于扩展的多层Web应用程序。 集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层(实体层)。 Struts作为系统 阅读全文
posted @ 2018-09-01 13:12 Borter 阅读(5674) 评论(0) 推荐(0)
摘要: 使用SSM(Spring、SpringMVC和Mybatis)已经有三个多月了,项目在技术上已经没有什么难点了,基于现有的技术就可以实现想要的功能,当然肯定有很多可以改进的地方。之前没有记录SSM整合的过程,这次刚刚好基于自己的一个小项目重新搭建了一次,而且比项目搭建的要更好一些。以前解决问题的过程 阅读全文
posted @ 2018-09-01 13:07 Borter 阅读(297) 评论(0) 推荐(0)
摘要: 让我们重回到车辆管理系统和张三的故事中。 在 iBATIS SQL Maps 的世界里也存在 one-to-many、many-to-one 的关系,想必你已经对这些概念驾轻就熟了。好!还是每个 People 对应多条 AutoInfo 信息。 本系列文章第一部分提到过 iBATIS SQL Map 阅读全文
posted @ 2018-09-01 13:05 Borter 阅读(374) 评论(0) 推荐(0)
摘要: 对于任何框架而言,在使用前都要进行一系列的初始化,MyBatis也不例外。本章将通过以下几点详细介绍MyBatis的初始化过程。 1.MyBatis的初始化做了什么 2. MyBatis基于XML配置文件创建Configuration对象的过程 3. 手动加载XML配置文件创建Configurati 阅读全文
posted @ 2018-09-01 13:02 Borter 阅读(745) 评论(0) 推荐(0)
摘要: 在使用mybatis框架时,第一步就需要产生SqlSessionFactory类的实例(相当于是产生连接池),通过调用SqlSessionFactoryBuilder类的实例的build方法来完成。下面具体对这一过程涉及的源码进行分析。 首先用Eclipse工具查看SqlSessionFactory 阅读全文
posted @ 2018-09-01 13:00 Borter 阅读(332) 评论(0) 推荐(0)
摘要: 学习框架一个比较好的路径阅读源码.本文介绍的SqlSessionFactory和SqlSession.可以通过了解SqlSessionFactory接口和SqlSession接口以及两个的实现类入手,去看源码了解实现过程.最好能把项目下载到本地,慢慢分析实现过程. Myabtis官网:http:// 阅读全文
posted @ 2018-09-01 12:57 Borter 阅读(12675) 评论(0) 推荐(0)
摘要: 接触过Ajax请求的会遇到过异步调用的问题,为了保证调用顺序的正确性,一般我们会在回调函数中调用,也有用到一些新的解决方案如Promise相关的技术。 在异步编程中,还有一种常用的解决方案,它就是Generator生成器函数。顾名思义,它是一个生成器,它也是一个状态机,内部拥有值及相关的状态,生成器 阅读全文
posted @ 2018-09-01 12:54 Borter 阅读(289) 评论(0) 推荐(0)
摘要: 由于MyBatis属于一种半自动的ORM框架,所以主要的工作将是书写Mapping映射文件,但是由于手写映射文件很容易出错,所以查资料发现有现成的工具可以自动生成底层模型类、Dao接口类甚至Mapping映射文件。 一、建立表结构 CREATE TABLE `user` ( `id` varchar 阅读全文
posted @ 2018-09-01 12:52 Borter 阅读(253) 评论(0) 推荐(0)
摘要: Smalltalk Mac OS Android NEXTSTEP Mac OS X Microsoft Windows X Window System(类UnixOS、Linux) BTRON TownsOS MSX-View SX-Window BeOS Newton OS Zaurus OS 阅读全文
posted @ 2018-09-01 12:49 Borter 阅读(594) 评论(0) 推荐(0)
摘要: 20世纪80年代苹果公司首先将图形用户界面引入微机领域,推出的Macintosh以其全鼠标、下拉菜单操作和直观的图形界面,引发了微机人机界面的历史性的变革。而后微软公司推出了Windows系统,从Windows 3.0发展到Windows 10,使得GUI被应用于用户面更广的个人计算机平台。图形界面 阅读全文
posted @ 2018-09-01 12:48 Borter 阅读(617) 评论(0) 推荐(0)
摘要: 视窗 应用程序为使用数据而在图形用户界面中设置的基本单元。应用程序和数据在窗口内实现一体化。在窗口中,用户可以在窗口中操作应用程序,进行数据的管理、生成和编辑。通常在窗口四周设有菜单、图标,数据放在中央。 在窗口中,根据各种数据/应用程序的内容设有标题栏,一般放在窗口的最上方,并在其中设有最大化、最 阅读全文
posted @ 2018-09-01 12:47 Borter 阅读(629) 评论(0) 推荐(0)
摘要: GUI 即人机交互图形化用户界面设计。纵观国际相关产业在图形化用户界面设计方面的发展现状,许多国际知名公司早已意识到 GUI 在产品方面产生的强大增值功能,以及带动的巨大市场价值,因此在公司内部设立了相关部门专门从事 GUI 的研究与设计,同业间也成立了若干机构,以互相交流 GUI 设计理论与经验为 阅读全文
posted @ 2018-09-01 12:46 Borter 阅读(1892) 评论(0) 推荐(0)
摘要: GUI的广泛应用是当今计算机发展的重大成就之一,它极大地方便了非专业用户的使用。人们从此不再需要死记硬背大量的命令,取而代之的是可以通过窗口、菜单、按键等方式来方便地进行操作。而嵌入式GUI具有下面几个方面的基本要求:轻型、占用资源少、高性能、高可靠性、便于移植、可配置等特点。 阅读全文
posted @ 2018-09-01 12:46 Borter 阅读(299) 评论(0) 推荐(0)
摘要: 图形用户界面是一种人与计算机通信的界面显示格式,允许用户使用鼠标等输入设备操纵屏幕上的图标或菜单选项,以选择命令、调用文件、启动程序或执行其它一些日常任务。与通过键盘输入文本或字符命令来完成例行任务的字符界面相比,图形用户界面有许多优点。图形用户界面由窗口、下拉菜单、对话框及其相应的控制机制构成,在 阅读全文
posted @ 2018-09-01 12:45 Borter 阅读(769) 评论(0) 推荐(0)
摘要: 图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。 与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上更易于接受。然而这界面若要通过在显示屏的特定位置,以”各种美观而不单调的视觉消息“提示用户”状态的 阅读全文
posted @ 2018-09-01 12:44 Borter 阅读(2997) 评论(0) 推荐(0)
摘要: MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。MyBatis是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data 阅读全文
posted @ 2018-09-01 12:43 Borter 阅读(881) 评论(0) 推荐(0)
摘要: Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。 阅读全文
posted @ 2018-09-01 12:42 Borter 阅读(297) 评论(0) 推荐(0)
摘要: Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。Spri 阅读全文
posted @ 2018-09-01 12:41 Borter 阅读(126) 评论(0) 推荐(0)
摘要: IoC是一个很大的概念,可以用不同的方式实现。其主要形式有两种: ◇依赖查找:容器提供回调接口和上下文条件给组件。EJB和ApacheAvalon都使用这种方式。这样一来,组件就必须使用容器提供的API来查找资源和协作对象,仅有的控制反转只体现在那些回调方法上(也就是上面所说的类型1):容器将调用这 阅读全文
posted @ 2018-09-01 12:39 Borter 阅读(254) 评论(0) 推荐(0)
摘要: IoC最大的好处是什么?因为把对象生成放在了XML里定义,所以当我们需要换一个实现子类将会变成很简单(一般这样的对象都是实现于某种接口的),只要修改XML就可以了,这样我们甚至可以实现对象的热插拨(有点象USB接口和SCSI硬盘了)。 IoC最大的缺点是什么?(1)生成一个对象的步骤变复杂了(事实上 阅读全文
posted @ 2018-09-01 12:37 Borter 阅读(756) 评论(0) 推荐(0)
摘要: INSERT INTO STUDENT_TBL(STUDENT_ID, STUDENT_NAME, STUDENT_SEX, STUDENT_BIRTHDAY, STUDENT_PHOTO, CLASS_ID, PLACE_ID) VALUES (#{studentId}, #{studentNam 阅读全文
posted @ 2018-09-01 12:35 Borter 阅读(1052) 评论(0) 推荐(0)
摘要: OGNL支持各种纷繁复杂的表达式。但是最最基本的表达式的原型,是将对象的引用值用点串联起来,从左到右,每一次表达式计算返回的结果成为当前对象,后面部分接着在当前对象上进行计算,一直到全部表达式计算完成,返回最后得到的对象。OGNL则针对这条基本原则进行不断的扩充,从而使之支持对象树、数组、容器的访问 阅读全文
posted @ 2018-09-01 12:32 Borter 阅读(323) 评论(0) 推荐(0)
摘要: OGNL(Object-Graph Navigation Language),可以方便地操作对象属性的开源表达式语言,使页面更简洁; 支持运算符(如+-*/),比普通的标志具有更高的自由度和更强的功能; Struts 2默认的表达式语言是OGNL,原因是它相对其它表达式语言具有下面几大优势: 支持对 阅读全文
posted @ 2018-09-01 12:31 Borter 阅读(233) 评论(0) 推荐(0)
摘要: OGNL是Object-Graph Navigation Language的缩写,它是一种功能强大的表达式语言(ExpressionLanguage,简称为EL),通过它简单一致的表达式语法,可以存取对象的任意属性,调用对象的方法,遍历整个对象的结构图,实现字段类型转化等功能。它使用相同的表达式去存 阅读全文
posted @ 2018-09-01 12:30 Borter 阅读(318) 评论(0) 推荐(0)
摘要: OGNL(英文全称:Object Graph Navigation Language,中文名:对象导航图语言)是应用于Java中的一个开源的表达式语言(Expression Language),它被集成在Struts2等框架中,作用是对数据进行访问,它拥有类型转换、访问对象方法、操作集合对象等功能。 阅读全文
posted @ 2018-09-01 12:29 Borter 阅读(975) 评论(0) 推荐(0)
摘要: mybatis 的动态sql语句是基于OGNL表达式的。可以方便的在 sql 语句中实现某些逻辑. 总体说来mybatis 动态SQL 语句主要有以下几类:1. if 语句 (简单的条件判断)2. choose (when,otherwize) ,相当于java 语言中的 switch ,与 jst 阅读全文
posted @ 2018-09-01 12:28 Borter 阅读(530) 评论(0) 推荐(0)
摘要: orm工具的基本思想无论是用过的hibernate,mybatis,你都可以法相他们有一个共同点:1. 从配置文件(通常是XML配置文件中)得到 sessionfactory.2. 由sessionfactory 产生 session3. 在session 中完成对数据的增删改查和事务提交等.4. 阅读全文
posted @ 2018-09-01 12:26 Borter 阅读(249) 评论(0) 推荐(0)
摘要: IoC就是IoC,不是什么技术,与GoF一样,是一种设计模式。 InterfaceDrivenDesign接口驱动,接口驱动有很多好处,可以提供不同灵活的子类实现,增加代码稳定和健壮性等等,但是接口一定是需要实现的,也就是如下语句迟早要执行:AInterfacea=newAInterfaceImp( 阅读全文
posted @ 2018-09-01 11:55 Borter 阅读(182) 评论(0) 推荐(0)
摘要: 早在2004年,MartinFowler就提出了“哪些方面的控制被反转了?”这个问题。他总结出是依赖对象的获得被反转了。基于这个结论,他为控制反转创造了一个更好的名字:依赖注入。许多非凡的应用(比HelloWorld.java更加优美,更加复杂)都是由两个或是更多的类通过彼此的合作来实现业务逻辑,这 阅读全文
posted @ 2018-09-01 11:54 Borter 阅读(274) 评论(0) 推荐(0)
摘要: 控制反转(Inversion of Control,英文缩写为IoC),另外一个名字叫做依赖注入(Dependency Injection,简称DI),是一个重要的面向对象编程的法则来削减计算机程序的耦合问题,也是轻量级的Spring框架的核心。 阅读全文
posted @ 2018-09-01 11:53 Borter 阅读(1028) 评论(0) 推荐(0)
摘要: MVC已经是现代Web开发中的一个很重要的部分,下面介绍一下Spring MVC的一些使用心得。 之前的项目比较简单,多是用JSP 、Servlet + JDBC 直接搞定,在项目中尝试用 Struts(Struts MVC)+Spring+Hibernate, 严格按照分层概念驱动项目开发,因项目 阅读全文
posted @ 2018-09-01 11:52 Borter 阅读(351) 评论(0) 推荐(0)
摘要: 关于Spring MVC Controller 层的单元测试 测试准备工作: 1、搭建测试Web环境 2、注入Controller 类 3、编写测试数据 测试数据的文件名一定要与测试类的文件名相同,比如测试数据BeanControllerTest.xml ,测试类 BeanControllerTes 阅读全文
posted @ 2018-09-01 11:51 Borter 阅读(775) 评论(0) 推荐(0)
摘要: Lifecycle for overriding binding, validation, etc,易于同其它View框架(Tiles等)无缝集成,采用IOC便于测试。 它是一个典型的教科书式的mvc构架,而不像struts等都是变种或者不是完全基于mvc系统的框架,对于初学者或者想了解mvc的人来 阅读全文
posted @ 2018-09-01 11:50 Borter 阅读(166) 评论(0) 推荐(0)
摘要: 通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages( JSP)技术、Velocity、Tiles、iText 和 POI。Spring MVC 框架并不知道使用的视图,所以不会强迫您只使用 JSP 技术。Spring MVC 分离了 控制器、 阅读全文
posted @ 2018-09-01 11:48 Borter 阅读(313) 评论(0) 推荐(0)
摘要: MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的J 阅读全文
posted @ 2018-09-01 11:47 Borter 阅读(2329) 评论(0) 推荐(0)
摘要: 单独使用mybatis是有很多限制的(比如无法实现跨越多个session的事务),而且很多业务系统本来就是使用spring来管理的事务,因此mybatis最好与spring集成起来使用。 spring事务配置 copy 阅读全文
posted @ 2018-09-01 11:45 Borter 阅读(192) 评论(0) 推荐(0)
摘要: 框架架构讲解: mybatis结构(1)加载配置:配置来源于两个地方,一处是配置文件,一处是Java代码的注解,将SQL的配置信息加载成为一个个MappedStatement对象(包括了传入参数映射配置、执行的SQL语句、结果映射配置),存储在内存中。 (2)SQL解析:当API接口层接收到调用请求 阅读全文
posted @ 2018-09-01 11:44 Borter 阅读(205) 评论(0) 推荐(0)
摘要: MyBatis 最强大的特性之一就是它的动态语句功能。如果您以前有使用JDBC或者类似框架的经历,您就会明白把SQL语句条件连接在一起是多么的痛苦,要确保不能忘记空格或者不要在columns列后面省略一个逗号等。动态语句能够完全解决掉这些痛苦。 尽管与动态SQL一起工作不是在开一个party,但是M 阅读全文
posted @ 2018-09-01 11:44 Borter 阅读(601) 评论(0) 推荐(0)
摘要: 我们把Mybatis的功能架构分为三层: (1)API接口层:提供给外部使用的接口API,开发人员通过这些本地API来操纵数据库。接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理。 (2)数据处理层:负责具体的SQL查找、SQL解析、SQL执行和执行结果映射处理等。它主要的目的是根据调用 阅读全文
posted @ 2018-09-01 11:43 Borter 阅读(2891) 评论(0) 推荐(0)
摘要: (1)加载配置并初始化 触发条件:加载配置文件 处理过程:将SQL的配置信息加载成为一个个MappedStatement对象(包括了传入参数映射配置、执行的SQL语句、结果映射配置),存储在内存中。 (2)接收调用请求 触发条件:调用Mybatis提供的API 传入参数:为SQL的ID和传入参数对象 阅读全文
posted @ 2018-09-01 11:42 Borter 阅读(348) 评论(0) 推荐(0)
摘要: 简单易学:本身就很小且简单。没有任何第三方依赖,最简单安装只要两个jar文件+配置几个sql映射文件易于学习,易于使用,通过文档和源代码,可以比较完全的掌握它的设计思路和实现。 灵活:mybatis不会对应用程序或者数据库的现有设计强加任何影响。 sql写在xml里,便于统一管理和优化。通过sql基 阅读全文
posted @ 2018-09-01 11:41 Borter 阅读(205) 评论(0) 推荐(0)
摘要: MyBatis是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Ordinary Java Objects 阅读全文
posted @ 2018-09-01 11:40 Borter 阅读(313) 评论(0) 推荐(0)
摘要: MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Ob 阅读全文
posted @ 2018-09-01 11:39 Borter 阅读(527) 评论(0) 推荐(0)
摘要: MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。 iBATIS一词来源于“internet”和“abatis”的组合 阅读全文
posted @ 2018-09-01 11:38 Borter 阅读(1199) 评论(1) 推荐(0)
摘要: 优点: 1、简单易学 mybatis本身就很小且简单。没有任何第三方依赖,最简单安装只要两个jar文件+配置几个sql映射文件易于学习,易于使用,通过文档和源代码,可以比较完全的掌握它的设计思路和实现。 2、灵活 mybatis不会对应用程序或者数据库的现有设计强加任何影响。 sql写在xml里,便 阅读全文
posted @ 2018-09-01 11:37 Borter 阅读(4021) 评论(0) 推荐(0)
摘要: MyBatis应用程序根据XML配置文件创建SqlSessionFactory,SqlSessionFactory在根据配置,配置来源于两个地方,一处是配置文件,一处是Java代码的注解,获取一个SqlSession。SqlSession包含了执行sql所需要的所有方法,可以通过SqlSession 阅读全文
posted @ 2018-09-01 11:36 Borter 阅读(858) 评论(0) 推荐(0)
摘要: 1、Mybatis实现了接口绑定,使用更加方便。 在ibatis2.x中我们需要在DAO的实现类中指定具体对应哪个xml映射文件, 而Mybatis实现了DAO接口与xml映射文件的绑定,自动为我们生成接口的具体实现,使用起来变得更加省事和方便。 2、对象关系映射的改进,效率更高 3、MyBatis 阅读全文
posted @ 2018-09-01 11:35 Borter 阅读(1447) 评论(0) 推荐(0)
摘要: MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iB 阅读全文
posted @ 2018-09-01 11:34 Borter 阅读(235) 评论(0) 推荐(0)
摘要: SSM(Spring+SpringMVC+MyBatis)框架集由Spring、SpringMVC、MyBatis三个开源框架整合而成,常作为数据源较简单的web项目的框架。 其中spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。 SpringMVC分离了控制器、模型对象、 阅读全文
posted @ 2018-09-01 11:33 Borter 阅读(1506) 评论(0) 推荐(0)