![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
框架设计
云水之路
架构攻城师
展开
-
ThinkPHP框架总结之安全及使用
本片文章主要总结和介绍了使用TP过程中,加强项目安全的一些办法,具体是以例子为导向验证演示。原创 2016-02-19 21:32:31 · 3263 阅读 · 0 评论 -
RPC远程协议之Thrift入门
RPC远程协议之Thrift入门 在上一篇文章《RPC远程协议之原理分析》中,我介绍了RPC的工作原理及欲实现RPC框架功能应该做哪些事情,因为要做的事情太多,完全由开发人员研发实现,不是很现实,所以市面上出现了诸多RPC快捷框架,目前主流的有Facebook的Thrift、谷歌的gRPC,以及Dubbo,但就性能角度考虑,Thrift相对好些,并且是跨语言的,所以这里先以Thrift的介绍开始。...原创 2018-03-03 20:21:47 · 2822 阅读 · 0 评论 -
RPC远程协议之原理分析
RPC远程协议之原理分析 在近几年工作中发现,功能服务化或微服务化越来越流行,逐渐成为实现中大型分布式系统架构的主要方式,而在分布式系统中的不同节点应用间的通信中,RPC远程协议扮演关键作用。实际上,在日常工作中,我们也多多少少使用过RPC协议方案,对于初级的程序员来说,RPC显得很神秘,而经验丰富些的程序员虽可使用,但对其工作原理理解的并不是很深刻,往往会误用,这里就我理解来详细介绍下。 l ...原创 2018-03-02 17:07:33 · 2526 阅读 · 0 评论 -
Spring整合Hibernate实现Spring Data JPA
Spring整合Hibernate实现Spring Data JPA在上一篇文章《Spring整合Hibernate实现JPA持久化》中,我们已经介绍了怎样在Spring容器中合理地集成Hibernate来实现JPA的ORM机制。但是,细心的读者会发现,上一篇文章中使用了EntityManager来直接与数据库交互,存在这一定的耦合度,更重要的是每当新增或修改新的实体Entity的管理时,都需要重复的实现EntityManager在Dao层的逻辑,有些过于模版化,重复劳动的问题存在,所以这篇文章就来介绍原创 2017-11-24 15:11:15 · 6223 阅读 · 0 评论 -
Spring整合Hibernate实现JPA持久化
Spring整合Hibernate实现JPA持久化本篇文章主要介绍Spring如何集成JPA的功能,并实现基本的CURD操作。JPA,全称为Java Persistence API,诞生与EJB2实体Bean之上,是一种新的Java持久化标准,也是基于POJO的持久化机制,它的设计灵感来源于Hibernate和Java数据对象(JDO)。 Maven管理软包依赖 配置实体管理器工厂 用JPA方式实现CURD原创 2017-11-21 13:28:25 · 7520 阅读 · 0 评论 -
Spring整合JMS异步消息
Spring整合JMS异步消息 在应用程序之间通信的消息,可分为同步消息和异步消息两种。前者就是当请求的程序端发出请求后,一直处于等待状态(阻塞),直到接收请求方反馈正确的结果后,请求方才能继续往下执行。而异步消息,则请求的程序端发出请求后,则可以继续向下执行,不需要阻塞当前流程,很多时候大大提高了用户的即时体验。当然,选择同步还是异步形式的通信,全凭应用的场景而做出合理的选择,比如:针对用户的即时操作要求较高的功能,则建议采用异步通信;而例如工作流或对即时性要求不高的功能实现,则可采用同步原创 2017-11-03 12:00:22 · 3055 阅读 · 0 评论 -
Spring框架总结之Profile使用
在实际开发中,有一个比较大的挑战就是将程序从一个环境迁移或切换到另一个环境。我们知道,测试或开发环境与正式或生产环境中的某些配置是不同的,如:数据库配置、加密算法等。所以传统的做法就是每次发布或测试时,都手动修改相关配置信息,十分繁琐和低效率,并且在发布时容易忽略修改的信息导致环境切换不正确。虽然,在早期时,我们可以在服务器存放配置信息,然后通过程序动态读取配置,但这样作的效率、灵活性及安全方面不是和好,所以鉴于这些问题,Spring在3.1版引入了Bean Profile的功能,它的产生可以完美的解决上面原创 2017-06-25 22:58:40 · 13199 阅读 · 4 评论 -
Spring框架总结之依赖注入(一)
DI(Depandency Injection),也叫“依赖注入”,与人也称其为“控制反转(IOC)”,而我更喜欢把它称之为DI。传统的Java对象,对其本身及关联的对象(Bean),都是自主创建和管理的,这样就导致高度耦合和难以测试的问题。而Spring框架则意识到这个问题,其提供的DI功能,可以完美的解决Bean及其依赖的Bean的创建、装配及生命周期等管理工作,这个管理机制称为“Spring容器”,也是Spring框架的核心模块。这里我会从Spring的DI原理、Bean生命周期及Bean装配三方面介原创 2017-02-26 14:46:02 · 2175 阅读 · 0 评论 -
Spring框架总结之面向切面(一)
AOP(Aspect Oriented Programming),称之为“面向切面编程”,它是Spring框架的又一核心模块,与其支持的DI功能同样处于重要地位。相比于Java传统的继承体系(柱体体系结构),AOP则实现了横向切割程序生产线,产生若干切面体,而每个切面体含有特定的横切动作、目标对象及触发动作的契机点,触发之后,在横向实现了各种方式的非业务相关的动作,将业务和非业务模块分离,一般用来处理日志、缓存、事务及其它非业务通用部分功能。而AOP的实现机制,实际上是通过代理方式实现,那么接下来从AOP的原创 2017-02-28 11:38:47 · 2993 阅读 · 1 评论 -
Spring框架研究总结之AOP(二)
Spring是一个开源的企业应用框架,是一个分层架构,由7个定义稳定的模块所组成,而所有的模块都是在核心容器基础上搭建;其体系本身提供了强大的IOC(控制反转)、AOP(面向切面)以及DI(依赖注入)等较显著的功能,那么下面就来详细介绍下Spring框架的模块组成及相关特点。 AspectJ使用 AOP的例子原创 2016-10-06 18:26:33 · 971 阅读 · 0 评论 -
Spring框架研究总结之AOP(一)
AOP(Aspect-Oriented Programming),即为面向切面或方面编程,被认为是OOP(Object-Oriented Programming),面向对象编程的拓展和完善。OOP引入了继承、封装及多态等特性来搭建一种对象层次结构,是垂直方向上的层级结构;而当我们要为分散的对象引入公共行为时,OOP则显得力不从心,也就是说OOP允许你定义从上到下的逻辑关系,却不适合定义从左到右的逻辑关系,比如:异常处理,它散布在所有对象结构中,这种散布在各处的无关代码片段被称之为横切代码片段,在OOP中导致原创 2016-10-04 11:27:21 · 749 阅读 · 0 评论 -
Spring框架研究总结之IOC
Spring是一个开源的企业应用框架,是一个分层架构,由7个定义稳定的模块所组成,而所有的模块都是在核心容器基础上搭建;其体系本身提供了强大的IOC(控制反转)、AOP(面向切面)以及DI(依赖注入)等较显著的功能,那么下面就来详细介绍下Spring框架的模块组成及相关特点。 框架结构 依赖注入 控制反转原创 2016-09-27 15:45:16 · 855 阅读 · 0 评论 -
Spring框架研究总结之SpEL
在Spring3以后,引入了强大的表达式语言-Spring Expression Language,即SpEL语言。SpEL能够在运行时构建复杂的表达式,存取对象属性,对象方法及正则表达式匹配等功能,并且其都支持XML和注解两种实现方式,其语法格式为#{SpEL Expression},并需要spring-expression这个jar包。原创 2016-10-09 11:32:10 · 4458 阅读 · 0 评论 -
ThinkPHP框架总结之基础及使用
对于TP框架,我想大家应该知道它的广泛性了,在这里不再进行说明。下面我就从TP的获取、目录结构、入口文件、使用及相关说明为例进行说明。原创 2016-02-17 18:54:20 · 1650 阅读 · 0 评论 -
ThinkPHP框架总结之配置及使用
TP框架提供了灵活的全局参数变量配置功能,使用高效的返回php数组定义,支持惯例、公共、模块、调试及动态参数配置功能。下面会结合例子来介绍最常用的默认PHP数组配置方式(xml/json/ini/yaml方式不进行介绍),如何读取数组配置及动态配置,对于拓展配置实际用的不多,这里不赘述,感兴趣的读者可自行查资料,。原创 2016-02-18 21:35:54 · 1771 阅读 · 0 评论 -
ThinkPHP框架总结之缓存及使用
在实际项目中,合理使用缓存技术可以很好地提高性能。TP提供了多种缓存机制,包括数据缓存、查询缓存、静态缓存及快速缓存,同时支持Memcache、Redis、Xcache、Apc、Db、Shmop、Sqlite及Eaccelerator等的动态缓存。原创 2016-02-23 14:47:23 · 9986 阅读 · 0 评论 -
RPC远程协议之Thrift非阻塞多线程处理
RPC远程协议之Thrift非阻塞多线程处理 在上一篇文章《RPC远程协议之Thrift入门》中,我已经介绍了Thrift的基本使用,并举例验证了如何使用,当然这个例子是阻塞单线程的模式,实际客户端请求增多,单线程处理时间变长时,无可厚非就会卡顿延迟,所以需要实现非阻塞多线程的通信模式,而Thrift已经想到,并且为我们提供好了几种Server的实现方式,以供在实际业务需求下做出合适的选择。本篇文...原创 2018-03-06 17:25:37 · 4250 阅读 · 3 评论