● 架构之美
文章平均质量分 82
武哥聊编程
同济大学硕士,第一批华为5G研发人员,拼多多广告投放部门,全网20w+粉丝。微信公众号:武哥聊编程
展开
-
【java设计模式】之 单例(Singleton)模式
原文链接:http://www.itcodai.com/blog/291. 单例模式的定义 单例模式(Singleton Pattern)是一个比较简单的模式,其原始定义如下:Ensure a class has only one instance, and provide a global point of access to it. 即确保只有一个实例,而且自行实例化并向...原创 2016-04-21 12:17:06 · 10080 阅读 · 12 评论 -
【Shiro】Apache Shiro架构之身份认证(Authentication)
Apache Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理功能,可为任何应用提供安全保障。本文主要介绍一下Shiro中的身份认证功能,参考自Apache Shiro的官方文档,原文档地址:http://shiro.apache.org/authentication.html。 本文遵循以下流程:先介绍Shiro中的身份认证,再通过一个实例来具体说明一下(基于mav原创 2016-07-02 11:12:26 · 17757 阅读 · 11 评论 -
【Lucene】Apache Lucene全文检索引擎架构之入门实战
Lucene是一套用于全文检索和搜寻的开源程式库,由Apache软件基金会支持和提供。Lucene提供了一个简单却强大的应用程式接口,能够做全文索引和搜寻。在Java开发环境里Lucene是一个成熟的免费开源工具。就其本身而言,Lucene是当前以及最近几年最受欢迎的免费Java信息检索程序库。——《百度百科》 这篇博文主要从两个方面出发,首先介绍一下Lucene中的全文搜索原理,其次通过原创 2016-07-07 19:23:21 · 13136 阅读 · 5 评论 -
【java设计模式】之 代理(Proxy)模式
代理模式的核心作用就是通过代理,控制对对象的访问。这跟实际中是一样的,比如说明星都有经纪人,这就是一个代理,比如有人要找某明星拍戏,那么首先处理这事的是他的经纪人,虽然拍戏需要自己拍,但是拍戏前后的一些必须要做的事等等,都由这个经纪人来处理。 在程序中也是如此,通过代理,可以详细控制访问某个或者某类对象的方法,在调用这个方法前做前置处理,调用这个方法后做后置处理。这也是AOP的实现原理。原创 2016-08-03 20:22:33 · 8297 阅读 · 2 评论 -
【WebService】CXF拦截器的设置以及自定义CXF拦截器
CXF的拦截器和以前学过的servlet的拦截器类似的,都是在开始或结束切入一段代码,执行一些逻辑之类的。我们可以在调用ws服务前设置拦截器,也可以在调用ws服务后设置拦截器,当然了,拦截器也可以添加多个,CXF中有自己内置的拦截器,先来写个简单CXF自带的拦截器实例熟悉一下在CXF中如何添加,然后再来自定义CXF拦截器。1. CXF内置的拦截器设置还是使用上一节的ws,在原来的基础上原创 2016-07-31 20:29:22 · 16294 阅读 · 7 评论 -
【WebService】CXF处理javaBean等复合类型以及Map等复杂类型的数据
在实际中除了传入一些基本的参数以外,还需要传入一些类似于javaBean等复合类型,或者Map等复杂类型的数据,这一篇博文主要来写两个demo,模拟一下CXF处理这类数据的过程。1. CXF处理javaBean等复合类型的数据 客户端提交一个数据过去,要检查权限,比如是管理员的话,就拥有多个权限,普通用户可能就一个权限之类的。这样的话需要一个用户的bean和权限的bean,然后数据库的数原创 2016-07-30 18:14:53 · 11650 阅读 · 7 评论 -
【WebService】wsdl配置详解以及使用注解修改wsdl配置
WebService系列文章: 【WebService】带你走进webservice的世界 【WebService】自定义WebService服务及其调用 前面分析了一下关于ws的基本知识,我们知道,wsdl是ws中很重要的文档,我们可以通过解析该wsdl文档获取ws的相关信息,其实,如果不了解该文档结构的话,问题也不大,只要会解析即可进行开发。但是如果想要生成一个符合自己项目原创 2016-07-28 18:21:36 · 46321 阅读 · 7 评论 -
【WebService】自定义WebService服务及其调用
其实在实际中,我们自定义ws的可能性比较小,一般都是去调用已有的ws较多,除非项目需要发布一个ws。但是为了更好的理解ws,这一篇博文主要来总结一下如何自定义ws,然后如何去调用自定义的ws,内容比较基础,完全针对小白。1. 自定义webservice1.1 原生态jdk定义 使用jdk自定义一个ws只需要做两件事:一是使用注解@WebService,二是调用Endpoint原创 2016-07-28 08:45:48 · 15423 阅读 · 7 评论 -
【WebService】带你走进webservice的世界
1. webservice是啥 准确的来说,webservice不是一种技术,而是一种规范。是一种跨平台,跨语言的规范,用于不同平台,不同语言开发的应用之间的交互。 举个例子,比如在Windows Server服务器上有个C#.Net开发的应用A,在Linux上有个Java语言开发的应用B,现在B应用要调用A应用,或者是互相调用,用于查看对方的业务数据,就需要webservice的规范。原创 2016-07-26 10:51:12 · 23208 阅读 · 12 评论 -
【java设计模式】之 策略(strategy)模式
策略模式在实际中使用的还是挺多的,先来看一个场景:某个市场人员接到单儿后的报价策略,保价策略很复杂,但是可以简单做如下归类: 新客户小批量报价 新客户大批量报价 老客户小批量报价 老客户大批量报价 具体选用哪个报价策略,这需要根据实际情况来确定,这时候采用策略模式即可解决这个问题。这个问题中,如果我们不采用策略模式会怎样处理呢?很自然的会想到使用if判断,或者sw原创 2016-08-04 18:20:36 · 7440 阅读 · 5 评论 -
【java设计模式】之 责任链(chain of resposibility)模式
责任链模式,顾名思义,就是一条链。这个链到底是怎么运行的呢?它主要是将能够处理同一类请求的对象连成一条链,所提交的请求沿着链传递,链上的对象逐个判断是否有能力处理该请求,如果能则处理,如果不能则传递给链上的下一个对象进行处理,以此类推。 比如说公司请假需要审批,举个不恰当的例子,如果请假小于3天,主管审批;3-10天的,经理审批;10-30天的,总经理审批;超过30天的,不批准等等。这就得一原创 2016-08-05 19:11:34 · 10345 阅读 · 1 评论 -
【Shiro】Apache Shiro架构之权限认证(Authorization)
上一篇博文总结了一下Shiro中的身份认证,本文主要来总结一下Shiro中的权限认证(Authorization)功能,即授权。如下: 本文参考自Apache Shiro的官方文档:http://shiro.apache.org/authorization.html。 本文遵循以下流程:先介绍Shiro中的权限认证,再通过一个简单的实例来具体说明一下API的使用(基于maven)。1原创 2016-07-03 17:07:07 · 17364 阅读 · 6 评论 -
【Shiro】Apache Shiro架构之集成web
前面两节内容介绍了Shiro中是如何进行身份和权限的认证,但是只是单纯的进行Shiro的验证,简单一点的话,用的是.ini配置文件,也举了个使用jdbc realm的例子,这篇博文主要来总结一下Shiro是如何集成web的,即如何用在web工程中。 写在前面:本文没有使用web框架,比如springmvc或者struts2,用的是原始的servlet,使用的是.ini配置文件,旨在简单粗暴,说明原创 2016-07-04 17:43:37 · 12116 阅读 · 7 评论 -
【java设计模式】之 建造者(Builder)模式
我们还是举上一节的例子:生产汽车。上一节我们通过模板方法模式控制汽车跑起来的动作,那么需求是无止境的,现在如果老板又增加了额外的需求:汽车启动、停止、鸣笛引擎声都由客户自己控制,他想要什么顺序就什么顺序,那该如何做呢?1. 汽车无休止的改造 假如现在要生产两种车,奔驰和宝马,这两辆车都有共性,我们所需要关注的是单个车的运行过程,这才是老板所关心的点所在。我们先...原创 2016-05-06 08:59:09 · 13417 阅读 · 4 评论 -
【java设计模式】之 模板方法(Template Method)模式
1. 模板方法的一个实例 这一节主要来学习一下设计模式中的模板方法模式。我们先来看一个例子:假如现在老板让你做一个汽车的模型,要求只要完成基本功能即可,不考虑扩展性,那你会怎么做呢?我们首先会根据经验设计一个类图: 由这个类图可知,非常简单的实现了悍马车,该车有两个型号H1和H2。那现在我们开始实现这两个型号的悍马车,首先我们得把抽象类写好,然后两个不同的模型...原创 2016-05-06 08:57:43 · 17278 阅读 · 7 评论 -
【java设计模式】之 抽象工厂(Abstract Factory)模式
1. 女娲的失误 上一节学习了工厂模式,女娲运用了该模式成功创建了三个人种,可是问题来了,她发现没有性别……这失误也忒大了点吧……竟然没有性别,那岂不是……无奈,只好抹掉重来了,于是所有人都被消灭掉了,重新造人。 女娲开始分析了,既然要区别男女,那么生产人种的工厂(八卦炉)要重新改造了,因为一个设备要么全男性,要么全女性。所以只能将八卦炉拆开了,把原先的一个变两...原创 2016-04-26 23:49:42 · 16425 阅读 · 7 评论 -
【java设计模式】之 工厂(Factory)模式
1.工厂模式的定义 工厂模式使用的频率非常高,我们在开发中总能见到它们的身影。其定义为:Define an interface for creating an object, but let subclasses decide which class to instantiate. Factory Method lets a class defer instantiation t...原创 2016-04-23 10:48:57 · 38712 阅读 · 14 评论 -
【Lucene】Apache Lucene全文检索引擎架构之构建索引
上一篇博文大致写了个建立索引的类,对建立索引的过程有了大致的了解,这篇文章主要来总结一下构建索引,会从添加文档、删除文档和修改文档三个部分来展开。原创 2016-07-09 20:49:09 · 10026 阅读 · 3 评论 -
【Maven】快速走进Maven的世界
写在前面,本文主要是针对那些没有使用过maven的,想快速入门的盆友,已经熟练使用maven的盆友就可以绕道了~1. Maven的简单介绍 maven是一个管理项目的工具,关于maven我就不多做介绍了,引用一段百度百科上对maven的介绍吧: Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。 Maven 除了以程序构建能力为特色原创 2016-06-29 07:44:01 · 11378 阅读 · 9 评论 -
【Lucene】Apache Lucene全文检索引擎架构之搜索功能
上一节主要总结了一下Lucene是如何构建索引的,这一节简单总结一下Lucene中的搜索功能。主要分为几个部分,对特定项的搜索;查询表达式QueryParser的使用;指定数字范围内搜索;指定字符串开头搜索以及多条件查询。1. 对特定项的搜索 要使用Lucene的搜索功能,首先得有索引,也就是说Lucene首先得针对特定的文件生成特定的索引,然后我们才能搜索,这在第一节里描述的很清楚,那么构建索引原创 2016-07-11 18:08:23 · 13355 阅读 · 6 评论 -
【Lucene】Apache Lucene全文检索引擎架构之中文分词和高亮显示
前面总结的都是使用Lucene的标准分词器,这是针对英文的,但是中文的话就不顶用了,因为中文的语汇与英文是不同的,所以一般我们开发的时候,有中文的话肯定要使用中文分词了,这一篇博文主要介绍一下如何使用smartcn中文分词器以及对结果的高亮显示。1. 中文分词使用中文分词的话,首先到添加中文分词的jar包。<!-- lucene中文分词器 --><dependency> <groupId>原创 2016-07-12 18:02:04 · 11044 阅读 · 7 评论 -
【Shiro】Apache Shiro架构之自定义realm
之前写的博客里都是使用.ini文件来获取信息的,包括用户信息,角色信息,权限信息等。进入系统时,都是从.ini文件这读取进入的。实际中除非这个系统特别特别简单,一般都不是这样干的,这些信息都是需要在数据库中进行维护的,所以就需要用到自定义realm了。原创 2016-07-05 19:02:04 · 10167 阅读 · 9 评论 -
【Shiro】Apache Shiro架构之实际运用(整合到Spring中)
写在前面:如题,这篇博文主要是总结一下如何将Shiro运用到实际项目中,本来准备将Shiro整到Spring中就行了,后来想想既然要整,就索性把SpringMVC和MyBatis也整进去吧,整个比较完整的,也能帮助更多的初学者。所以本文实际是将Shiro整到SSM中(基于maven)。其实Shiro整合到Spring中并没有想象的那么困难,整到Spring中后,我们自定义的realm啊、se原创 2016-07-06 21:05:38 · 27749 阅读 · 192 评论