自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(234)
  • 收藏
  • 关注

原创 Dagger2依赖注入单例化介绍及验证

业务组件单例化其实在现在企业级应用中都有大量应用场景,企业化应用中,频繁创建和销毁对象实例场景下对JVM的开销可以大到不可想象,单例化在减轻JVM内存管理负担、提升应用性能、尤其是在电子商务、大数据应用场景下,大批量、爆发式请求涌入服务器的过程中,如果组件没有做单例化处理,可能直接导致系统崩溃,尤其有些共享JVM的应用甚至会挤爆JVM设定内存导致内存溢出,拖垮其他系统应用,甚至带来整个平台雪崩。这也是企业级应用中对单例化模式大量使用的原因,也是单例化的重要价值所在。针对Android设备这样少的可怜的性能

2021-11-20 20:54:43 3192

原创 Dagger2对Java多态场景的处理

日常开发过程中,总会遇到一个接口拥有多个子类,同时都需要进行实例化并完成自动依赖注入过程,有些DI框架针对这种场景的问题是通过ByName的方式处理的,也就是说,给实例化后的子类实例一个别名,实际使用过程中通过自动注入到引用别名的地方来使用的。在Dagger2中也就类似的功能来支撑这种业务场景的对象实例自动依赖注入,接下来,我们将简要说明多态场景下Dagger2的使用。4.1 Dagger2对简单多态场景的处理首先定义一个MyBusinessInterface接口,此接口将被多个子类继承:

2021-11-14 21:48:25 2667

原创 Dagger2集成之数据依赖注入

Dagger2有两种依赖注入的方式,用起来都还不错,我们可以根据自身项目业务需求的实际特点,采用这两种方法中的任意一种,或者组合使用都挺好用,下面我们单独分别介绍Dagger2的两种不同的依赖注入方式2.1通过Module声明的方式自动注入假设MyBusinessXService为实际进行业务处理的一个组件类,在MyBusinessXService类进行实际业务处理时会用到MyBusinessApiService实例,如下面代码所示:package com.tc.app.dagger2.d

2021-11-14 14:51:51 1369

原创 Dagger2集成之业务服务依赖注入

Dagger2有两种依赖注入的方式,用起来都还不错,我们可以根据自身项目业务需求的实际特点,采用这两种方法中的任意一种,或者组合使用都挺好用,下面我们单独分别介绍Dagger2的两种不同的依赖注入方式2.1通过Module声明的方式自动注入假设MyBusinessXService为实际进行业务处理的一个组件类,在MyBusinessXService类进行实际业务处理时会用到MyBusinessApiService实例,如下面代码所示:package com.tc.app.dagger2.d

2021-11-14 10:30:50 600

原创 Dagger2集成之环境配置及简单验证

1.1 配置Dagger2依赖关系目前android应用的代码管理大多采用Gradle来做,但是在集成Dagger2的过程中,Gradle的版本与Dagger2的依赖方式存在一定的相关性,在网上一些介绍集成Dagger2的资料中,大多采用“com.neenbedankt.gradle.plugins:android-apt:1.4”来作为Dagger2的辅助依赖工具,而实际上对稍高一些的Gradle来说,要继续采用apt的方式对接Dagger会显得比较困难,而且对Gradle来说,也不建议再继续使用ap

2021-11-12 15:41:46 1662

原创 让mybatis支持管理和操作多个不同的业务数据库实例

在微服务大行其道的今天,一个工程中同时操作多个不同的业务数据库这种情况已经很少见了,但并不意味不存在这样的需求。MyBatis世界上流行最广泛的SQL映射框架,由ClintonBegin在2002年创建,其后,捐献给了Apache基金会,成立了iBatis项目。 2010年5月,将代码库迁致GoogleCode,并更名为MyBatis。但是Mybatis对多个不同业务数据库的支持并没...

2017-05-07 21:25:28 545

Spring Acegi鉴权管理之基础模式(BASIC)

Acegi久负盛名,这个家伙是一个spring中广泛使用的认证和安全工具,最初由spring社区爱好者发起,目的是为spring应用提供一个安全服务,比如用户认证及授权等。后来spring官方觉得这个东西很不错,就收编了,并且在2006年发布了spring官方的1.0版本。虽然是基于Acegi,但springsecurity已经在原有基础上增加了很多新的特性进来。为了能够方便一窥Acegi的真容...

2017-05-01 01:25:56 318

集成https方式的rest服务

虽然REST架构是Roy Fielding(他也是HTTP和URI规范的主要作者之一)在一篇论文中描述的,没有被官方指定相关的标准,但在REST服务大行其道的今天,其实已经成为事实的开发选型过程中的首选。 REST服务能够大行其道,有一定原因在里头。对系统层级关系的减负之类我们本次不表,单说对团队角色职责清晰化带来的影响,比如,交互采用JSON串,这样就可以很方便的通过js技术以最少的编...

2017-04-23 01:25:11 823

原创 构建安全的restful服务docker

说明:本例子基于上一篇构建restful服务的文章:http://danlley.iteye.com/blog/2369553 话开两端,我们先说说如何构建基于springboot的普通基于http请求的rest服务,然后在分说如何将其改造为https的rest服务 一、构建基于springboot的普通基于http请求的rest服务  1、获取JDK镜像roo...

2017-04-19 00:26:58 298

Restful架构服务构建指南

REST定位为“分布式超媒体应用(Distributed Hypermedia System)”的架构风格。REST是“REpresentational State Transfer”的缩写,可以翻译成“表现状态转换”,但是在绝大多数场合中我们只说REST或者RESTful。REST,即Representational State Transfer的缩写。RESTful架构,是目前最流行的一...

2017-04-17 01:19:25 290

原创 集成ibatis的spring工程升级到spring4.0实操手册

Spring4及已经的版本放弃了对ibatis的集成支持,那有什么办法可以将自己的框架迁移升级到spring4呢。 我这里有2个办法可供参考: 1、改造spring-orm包:        A、首先从spring-orm的jar包中将ibatis相关的class文件及包结构全部复制出来,以备后用。        B、更改工程的spring版本号到spring4    

2017-04-06 16:05:25 1356

原创 GIT使用批处理完成日常代码管理

本文默认读者的本机是已经安装好了GIT本地端,因此对于GIT的安装说明,此处不再说明。一般情况下,我们日常对GIT的使用过程中常用的步骤和指令如下:1、获取代码,执行命令如下:git clone https://github.com/***/***.git执行结果如下:Administrator@5NYFP69N5F3TA1K MINGW64 /d/git_re

2017-04-06 16:05:16 3921

原创 Nginx的安装部署及负载均衡设置

Nginx是一个自由、开源、高性能及轻量级的HTTP服务器及反转代理服务器,其性能与IMAP/POP3代理服务器相当。Nginx以其高性能、稳定、功能丰富、配置简单及占用系统资源少而著称。Nginx 超越 Apache 的高性能和稳定性,使得国内使用 Nginx 作为 Web 服务器的网站也越来越多Nginx的官方网站:http://nginx.orgNginx文档地址:http

2017-04-06 16:05:08 436

原创 Docker使用之Java web应用部署

此篇博客一部分内容有赖于上一篇博客中已经陈述过的信息,如需了解,请移步:http://danlley.iteye.com/blog/2365651切入正题,上一篇中介绍了如何在Docker中部署Tomcat,接下来将详细说明如何在Docker的Tomcat容器中部署war包。通常情况下,一个web应用都脱不开数据库操作,这里我们以MySQL为例来说明一个web应用Docke

2017-04-06 16:04:58 544

原创 Docker使用之Tomcat容器环境设置

Docker 是 PaaS 提供商 dotCloud 开源的一个基于 LXC 的高级容器引擎,源代码托管在 Github 上, 基于go语言并遵从Apache2.0协议开源。Docker自2013年以来非常火热,无论是从 github 上的代码活跃度,还是Redhat在RHEL6.5中集成对Docker的支持, 就连 Google 的 Compute Engine 也支持 docker 在其之上运

2017-04-06 16:04:51 7866 1

原创 Java设计设计模式之单例模式(Singleton)

单例模式在日常应用开发过程中被大量使用到,如在计算机系统中,线程池、缓存、日志对象、对话框、打印机、显卡的驱动程序对象常被设计成单例。单例模式的特点如下:1、运行时只有一个实例供其他对象使用,同时只允许创建唯一一个实例2、对象的初始化工作由自身来完成3、从对象的加载方式来分,可分为乐观加载和悲观加载两种方式单例模式应用的场景一般发现在以下条件下:(1)资源共享的情况

2017-04-06 16:04:44 272

原创 Java设计设计模式之组合模式(Composition)

那王麻子自从做了肉夹馍生意后,真是风生水起,分店开的跟下饺子似的,没多久这分店经营就开遍全国了,一时半会儿连自己都数不过来开了哪些分店了,为了方便管理他在各个地区都设立了分公司。于是这期我们分享设计模式里的组合模式。组合模式在处理复杂的树形结构操作中有他的独到的地方,对于树形结构层次简单,叶子有限的数据结构处理过程中,如果使用组合模式就有些卖艺之嫌。他的优点是简单有效、运算方式清晰明了。

2017-04-06 16:04:37 2297

原创 Java设计设计模式之外观模式(Facade)

上一篇博客我们陈述了适配器模式,这篇文章的例子接上上一个设计模式中用到的例子继续讲外观模式。==========================================话说,自从王麻子开始从李四那里买肉夹馍以后,随着时间的推移,王麻子觉得越来越不爽了。为啥呢?张三每次给自己卖肉的时候总是把肉剁好就不管了,具体夹馍的过程是王麻子自己来的。这肉夹馍好吃,可是还挺麻烦的。要是

2017-04-06 16:04:29 283

原创 Java设计设计模式之适配器模式(Adaptor)

我的博客自从2008年以后就一直没有持续的维护和更新了,自从2014年离职后回了老家,已经两年时间过去了,重新开启了我的职业生涯,那一切都从头开始吧,博客也继续维护起来。废话少说,我们切入正题。=============================================================适配器模式的概念:我不喜欢抠字眼,概念的东西总是给人有玩深沉的感觉,就像纯净

2017-04-06 16:04:21 1231

原创 Java JNI 编程进阶

JNI一直以来都很少去关注,但却是我心中的一个结,最近这几天刚好手头有点时间,因此抽空看了一下这方面的东西,整理了一份文档,JNI技术的出现主要是基于三个方面的应用需求: 1. 解决性能问题Java具有平台无关性,这使人们在开发企业级应用的时候总是把它作为主要候选方案之一,但是性能方面的因素又大大削弱了它的竞争力。为此,提高Java的性能就显得十分重要。Sun公司及Java的支持者们为提高Ja

2017-04-06 16:04:11 304

原创 Windows工作必备注册表信息,右键开动DOS窗口到特定目录

Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\file\shell\MS-DOS]@="MS-DOS 命令提示符"[HKEY_CLASSES_ROOT\file\shell\MS-DOS\command]@="cmd.exe /K CD %1"[HKEY_CLASSES_ROOT\Directory\shell\MS-

2017-04-06 16:04:03 300

原创 RBAC原理介绍及开源框架kasai使用分析

RBAC 模型作为目前最为广泛接受的权限模型。而Kasai是基于Java开发的开源RBAC软件,网上很多关于Kasai的介绍都仅仅是局限于一些低层次的新闻介绍性质的。而对于该软件的使用以及它与RBAC模型的关系却是很少涉及。这也是我写此片文章的初衷。Kasai的官方网址:http://kasai.manentiasoftware.com/NIST (The National Ins

2017-04-06 16:03:54 1210 1

原创 基于OSGi的JSF Web组件开发问题求解

最近一直在研究OSGi Web组建开发,跑了一些小程序中间出现了不少问题,其中很多是由于对OSGi理解不够深入,当然还有些问题,目前也没有解决的办法,因此贴出来想让大伙帮帮忙。具体情况如下:1.拿纯Java代码编写的JSP页面进行测试,结果一切正常,说明JspServlet已经成功加载。2.编写简单的JSF页面进行测试,结果出现错误提示,具体如下:osgi> Jul 4, 2008

2017-04-06 16:03:47 463

原创 软件开发中,各个字符集之间的区别

在软件开发过程中,可能接触到了很多字符集,但是其之间有什么细节上的差异呢,我想很多概念性的东西还是应该拿出来,做一个比较供我们日后开发过程中的参考只用。这几天闲来无事,在网上差了一下各个字符集之间的区别,整理出来一方面供自己日后查阅,另一方面也贴出来供大家参考,其中有什么不当之处恳请指正。我们一般通常使用的字符集有:ASCII ISO-8859-1  GB2312 big5 GBK 

2017-04-06 16:03:41 464

原创 用Maven Plug-In来构建Corba开发环境

这两天研究Corba,总是感觉需要在Java的命令行执行“idlj”命令。而且为了产生BaseImpl,总是需要带上一大堆的参数,让人感觉浑身不舒服,今天在网上闲逛,发现居然Maven早就开发出了支持Corba开发的Plug-in插件,为了不失完整性,先在这里将生成Corba服务的两种方式分别进行陈述:1)利用JDK自带的工具:a.撰写IDL文件:module ChinaApp{

2017-04-06 16:03:34 1001

原创 LDAP介绍

1.1. LDAP是什么LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP。它是基于X.500标准的,但是简单多了并且可以根据需要定制。与X.500不同,LDAP支持TCP/IP,这对访问Internet是必须的。LDAP的核心规范在RFC中都有定义,所有与LDAP相关的RFC都可以在LDAPman RFC网页中

2017-04-06 16:03:27 267

原创 Java与CORBA技术结合的前景展望

随着Internet、Intranet及Extranet在全球范围内的普及和发展,下一代的Web必须能够处理企业-企业(business-to- business)交易和客户-企业(consumer-to-business)多步骤交易过程中的复杂需求。为了实现这一目的,Web必须发展成为一种能够执行在线交易软件的一种成熟的客户机/服务器结构。现在的HTTP/CGI结构存在一些不足,它不能满足上述这

2017-04-06 16:03:15 910

原创 用自定义按钮控制multiple型select元素的上下移动

写JS脚本最烦心之处莫过于由于浏览器标准不统一导致的程序复杂性,现在,尽管已经有很多AJAX框架对各种浏览器的区分都做了封装,但现实中一些小问题的处理上,考虑使用这些东西似乎不太现实。这几天,刚好需要做一个小小的demo页面其中有些东西刚好可以写出来以备后用。需求如下:1.现有一select框,代码如下:xml 代码 select name="hasitem" multi

2017-04-06 16:03:07 346

原创 Inner class与匿名类相关问题汇总

1)如果存在3个类,一个是普通类A其中有个方法a(),接口B有个方法a(),这时,当类C既继承A又实现B的时候,会出现方法混乱现象。这样的情况在编译器中是不允许存在的。2)内部类中无法定义static静态块。3)匿名类对于接口的实现才有存在的实际价值,但是对于普通类,如果通过匿名类对其进行继承,顶多只是对现有类的复写,由于在向上转型的过程中会对实现类的接口按照父类的方法进行窄化处理,因此

2017-04-06 16:03:00 220

原创 在Maven2插件中用Velocity对配置文件的集中管理

正如我在“用Velocity进行配置文件信息的集中管理 ”————http://danlley.iteye.com/blog/106130 中的许诺,这个专题将专门说说如何在Maven2插件中用Velocity对配置文件的集中管理。有了上个专题的基础,我这里也就化繁就简了。下面这段代码是通过上个专题的例子进行改写、整理、重构以后的代码,核心任务就是处理配置文件。 java 代码

2017-04-06 16:02:48 533

原创 用Velocity进行配置文件信息的集中管理

Apache从他诞生的那天起就改变着我们的生活方式。而Velocity的出现也不是个例外。Velocity是一个基于java的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。 当Velocity应用于web开发时,界面设计人员可以和java程序开发人员同步开发一个遵循MVC架构的web站点,也就是说

2017-04-06 16:02:39 440

原创 转载 遗传算法的概念

是建立在自然选择和自然遗传学机理基础上的迭代自适应概率性搜索算法,在1975年Holland教授提出。生物的进化是一个奇妙的优化过程,它通过选择淘汰,突然变异,基因遗传等规律产生适应环境变化的优良物种。遗传算法是根据生物进化思想而启发得出的一种全局优化算法。 遗传算法的概念最早是由Bagley J.D在1967年提出的;而开始遗传算法的理论和方法的系统性研究的是1975年,这一开创性工作是由Mic

2017-04-06 16:02:31 1073

原创 用Java实现的顺序链表

java 代码 package org.danlley.util;    /**    * @version 1.0    * @since 2006 年 9 月 17 日     14 : 42 pm    * @author weixm    * 说明:这是一个用数组实现的顺序表,实现了基本的增、删、查操作。    */

2017-04-06 16:02:24 301

原创 HTTP 协议请求状态码及其含义

状态码                               含义100                               客户端必须继续发出请求信息 101                               客户端要求服务器端根据请求转换HTTP版本 200                               交易成功 201         

2017-04-06 16:02:16 279

原创 FTP协议结构简析及其相应状态响应码细则

协议结构命令                                描述 ABOR                        中断数据连接程序 ACCT               系统特权帐号 ALLO                 为服务器上的文件存储器分配字节 APPE              添加文件到服务器同名文件 CDUP              改变

2017-04-06 16:02:09 350

原创 详解Axis2实现Web Services之ADB篇

构建一个新的Web Services服务,会有很多种不同的方法,你即可以用pojo结合rpc模式来写,也可以用axis2自己的axiom api从底层写,也可以从wsdl生成相应框架,然后填写相应逻辑。对于wsdl生成框架代码这种形式,又有不同的数据绑定可以使用。axis2 1.1 可以使用adb(axis2自己的data binding)、xmlbeans、jibx、jaxme、jaxbri。

2017-04-06 16:02:00 1194

原创 详解Axis2实现Web Services之AXIOM篇

AXIOM——AXis 对象模型(AXis Object Model,AXIOM)是 Apache Axis 2 的 XML 对象模型,Axiom采用pull解析方式,基于StAX(JSR173),其目标是提供强大的特性组合彻底改变 XML 处理技术(Axiom和StAX紧密相关,要使用Axiom,StAX相关的jar包也必须在classpath下)。 AXIOM 还不仅仅是另一种对象模型。它

2017-04-06 16:01:51 2357

原创 详解Axis2实现Web Services之POJOs篇

在Axis2对Web Services的众多实现方式中,POJOs方式很明显是最简单的一种了。对于Axis2的相关配置,由于我在此前专题(http://danlley.iteye.com/blog/101975)中已经进行过相关的说明,因此,这里我就不再重复阐述了。   为了能够很快进入状态,我们立即开始一个简单的工程,用来说明POJOs的发布和使用,该例子程序用于完成一个简单的更新和查

2017-04-06 16:01:41 293

原创 Web Services体系结构及相关概念

Web Services体系结构是面向对象分析与设计(OOAD)的一种合理发展(logical evolution),同时也是电子商务解决方案中,面向体系结构、设计、实现与部署而采用的组件化的合理发展(logical evolution of components geared towards the architecture, design, implementation, and deploy

2017-04-06 16:01:33 887

原创 测试驱动开发与EasyMock的使用

测试驱动开发并不是什么时髦的词汇,只不过最近以来一直都被炒得风风火火。其大体思想就是,尽管我们并没有实现定义的接口,但是我们可以通过预先了解到的接口行为为我们现有的程序提供服务了。  这一点尤其是在系统各个模块在同一时间进行开发时,显得格外有优势,传统情况下,由于别人提供的接口尚未实现,因此该接口的调用者就或者只能够静静等待,知道接口实现,或者先写程序然后在接口实现完成的时候不仅需要测试自己

2017-04-06 16:01:25 387

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除