- 博客(103)
- 资源 (8)
- 收藏
- 关注
转载 支付中心设计与方案
支付中心方案一、项目目标支付中心架构将各业务的公共交易、支付、财务等沉淀到支付中心,并主要解决了以下三个主要问题:1.建立基础订单、支付、财务统一体系,抽象和封装公共处理逻辑,形成统一的基础服务,降低业务的接入成本及重复研发成本;2.构建安全、稳定、可扩展的系统,为业务的快速发展和创新需求提供基础支撑,解决业务「快」和支付「稳」之间的矛盾;3.沉淀核心交易数据,同时为应用端、物业公司、用户提供数据支撑。二、具体调用流程在目标的指导下,我向集采、o2o、收费易三个项目组的相关开发咨询了业务逻辑
2021-09-03 14:02:49 508
转载 springboot:Mybatis 多数据源最简解决方案
说起多数据源,一般都来解决那些问题呢,主从模式或者业务比较复杂需要连接不同的分库来支持业务。我们遇到的情况是后者,网上找了很多,大都是根据 Jpa 来做多数据源解决方案,要不就是老的 Spring 多数据源解决方案,还有的是利用 Aop 动态切换,感觉有点小复杂,其实我只是想找一个简单的多数据支持而已,折腾了两个小时整理出来,供大家参考。废话不多说直接上代码吧我们以 Mybatis X...
2019-05-20 11:17:18 493
转载 微服务 2.0 技术栈选型手册
一、前言 二、选型准侧 三、微服务基础架构核心关注点 四、服务框架选型 五、运行时支撑服务选型 六、服务监控选型 七、服务容错选型 八、后台服务选型 九、服务安全选型 十、服务部署平台选型 十一、写在最后 一、前言2014年可以认为是微服务1.0的元年,当年有几个标志性事件,一是...
2019-02-20 10:05:17 747
转载 zookeeper实现分布式锁
一、分布式锁介绍 分布式锁主要用于在分布式环境中保护跨进程、跨主机、跨网络的共享资源实现互斥访问,以达到保证数据的一致性。二、架构介绍 在介绍使用Zookeeper实现分布式锁之前,首先看当前的系统架构图 解释: 左边的整个区域表示一个Zookeeper集群,locker是Zookeeper的一个持久节点,node_1、no...
2018-02-09 15:56:59 298
原创 java实现验证码功能
import java.awt.Color;import java.awt.Font;import java.awt.Graphics2D;import java.awt.image.BufferedImage;import java.io.IOException;import java.util.Random;import javax.imageio.ImageI
2018-02-06 15:21:06 363
原创 B树
平衡二叉排序树便于动态查找,因此用平衡二叉排序树来组织索引表是一种可行的选择。当用于大型数据库时,所有数据及索引都存储在外存,因此,涉及到内、外存之间频繁的数据交换,这种交换速度的快慢成为制约动态查找的瓶颈。若以二叉树的结点作为内、外存之间数据交换单位,则查找给定关键字时对磁盘平均进行㏒㏒次访问是不能容忍的(树的深度过大而造成磁盘I/O读写过于频繁,进而导致查询效率低下)。磁盘读取
2018-01-23 17:38:45 235
转载 数据库常用SQL优化总结
一、百万级数据库优化方案1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null最好不要给数据库留NULL,尽可能的使用 NOT
2018-01-08 09:50:51 867
原创 System.out.println对线程安全的影响
volatile与system.out组合产生的误区Volatile关键字大家并不是很陌生,他有两个特性,一个是可见性,第二个就是禁止重排序(具体说明是重排序,感兴趣的话去搜下就有,我这里就不做讲解),但是大家也非常清楚,他并不保证原子性。下面有个例子就可以说明: 代码如下:public class VolatileTest { public static volatil
2017-12-11 09:41:28 5894 8
原创 对jvm堆中年轻代,老年代,永久代的理解
1.为什么会有年轻代我们先来屡屡,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能。你先想想,如果没有分代,那我们所有的对象都在一块,GC的时候我们要找到哪些对象没用,这样就会对堆的所有区域进行扫描。而我们的很多对象都是朝生夕死的,如果分代的话,我们把新创建的对象放到某一地方,当GC的时候先把这块存“朝生夕死”对象的区域进行回收,这样就会
2017-11-13 18:07:08 9630 3
转载 jstack(查看线程)、jmap(查看内存)和jstat(性能分析)命令
1.Jstack 1.1 jstack能得到运行java程序的java stack和native stack的信息。可以轻松得知当前线程的运行情况。如下图所示 注:这个和thread dump是同样的结果。但是thread dump是用kill -3 pid命令,还是服务器上面少用kill为妙 1.2 命名行格式 jstack [ option ] pid j
2017-07-13 14:09:42 551
原创 Linux下防火墙开启相关端口及查看已开启端口
最近利用Apache Mina实现了一个http服务,发布到linux下发现无法访问,通过HttpClient来发送http请求时,报如下错误:Exception in thread "main" org.apache.http.conn.HttpHostConnectException: Connection to http://10.5.20.96:8011 refused
2016-01-22 12:49:57 3984
原创 Redis的常用命令及高级应用
Redis提供了丰富的命令对数据库和各种数据库类型进行操作,这些命令可以在Linux终端使用。1.键值相关命令2.服务器相关命令一:键值相关命令keys * :返回满足给定pattern的所有key,*代表取出多有key ,xiaojun* ,代表xiaojun大头的keysexists : 确认一个key是否存在。 exists name .
2015-12-17 11:34:07 430
原创 spring+jsonp
/** * 根据分类id,取新闻列表 jsonp对象 * @param stub * @param newsItemId rss分类id编号 * @param function jsonp回调函数名 * @return * @return jsonp对象 */ @RequestMapping(value ="/news/l") @Res
2015-10-28 15:00:33 559
转载 SVN使用教程之-分支/标记 合并 subeclipse
首先说下为什么我们需要用到分支-合并。比如项目demo下有两个小组,svn下有一个trunk版。由于客户需求突然变化,导致项目需要做较大改动,此时项目组决定由小组1继续完成原来正进行到一半的工作【某个模块】,小组2进行新需求的开发。那么此时,我们就可以为小组2建立一个分支,分支其实就是trunk版【主干线】的一个copy版,不过分支也是具有版本控制功能的,而且是和主干线相互独立的,当然,到最后我们
2015-10-09 20:28:31 403
原创 java.util.ConcurrentModificationException 解决办法
从API中可以看到List等Collection的实现并没有同步化,如果在多 线程应用程序中出现同时访问,而且出现修改操作的时候都要求外部操作同步化;调用Iterator操作获得的Iterator对象在多线程修改Set的时 候也自动失效,并抛出java.util.ConcurrentModificationException。这种实现机制是fail-fast,对外部 的修改并不能提供任何保证。网上查
2015-07-21 20:47:09 424
原创 在监听器中注入spring bean
在监听器启动之前得先加载spring-bean,所以注解在监听器里是不能用的。可以通过下面的方法获取需要的beanpublic void contextInitialized(ServletContextEvent sce) {WebApplicationContext appctx = WebApplicationContextUtils.getWebApplicationCon
2015-02-09 16:19:45 5207
转载 "ORA-01502: 索引''或这类索引的分区处于不可用状态"的解决方案
这个问题的原因是索引失效,select index_name ,status from user_indexes where Status = 'UNUSABLE' 可以查询出失效的索引,通过 select 'alter index ' || index_name || ' rebuild;' from user_indexes where Status = 'UNUSABLE'
2015-01-09 08:58:03 7171
原创 ThreadPoolTaskExecutor的配置使用
ThreadPoolTaskExecutor的配置在网上找了很多解释没找到,看了下ThreadPoolExecutor的配置,名字差不多,应该含义也差不多。只不过ThreadPoolTaskExecutor对ThreadPoolExecutor做了包装。 线程的配置文件:corePoolSize: 线程池维护线
2014-12-31 13:55:10 5589
原创 ehcache的使用
首先,引入需要的jarnet.sf.ehcacheehcache-core2.6.5net.sf.jsr107cachejsr107cache1.1配置文件 ehcache.xml<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespace
2014-12-23 16:03:10 702
原创 java按行分割大文件
/** * 按行分割文件 * @param rows 为多少行一个文件 * @param sourceFilePath 为源文件路径 * @param targetDirectoryPath 文件分割后存放的目标目录 */ public void splitDataToSaveFile(int rows, String sourceFilePath, String
2014-12-23 15:52:57 6482
原创 Nginx负载均衡配置实例详解
负载均衡是我们大流量网站要做的一个东西,下面我来给大家介绍在Nginx服务器上进行负载均衡配置方法,希望对有需要的同学有所帮助哦。负载均衡先来简单了解一下什么是负载均衡,单从字面上的意思来理解就可以解释N台服务器平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。那么负载均衡的前提就是要有多台服务器才能实现,也就是两台以上即可。测试环境由于没有服务器,所以
2014-12-23 15:49:25 423
转载 Oracle中分区表的使用
前提: 查询分区:Select *From user_extents WHERE partition_name='分区名';1)创建表空间create tablespace HRPM0datafile '/oradata/misdb/HRPM0.DBF' size 5m autoextend on next 10m maxsize unlimited2)删除表空间(同时把数
2014-12-12 16:16:52 463
转载 maven常用命令
Java代码 Maven库: http://repo2.maven.org/maven2/ Maven依赖查询: http://mvnrepository.com/ mavn 常用命令1. 创建Maven的普通java项目: mvn archetype:create -DgroupId=packageName -
2014-11-21 11:48:53 676
原创 Oracle 根据字符串的长度排序
select * from student s where s.sno=183 order by nvl(length(trim(s.sname)),0) asc -- 递增排序-- nvl(attribute,default value) 当属性值为空时就将其值设默认值 -- length(attrbute) 得到字符串的长度 -- trim(attribute) 去掉字符的空格
2014-11-14 17:17:32 6572
原创 oracle中修改已存在数据的列
在oracle中,如果已经存在的数据的某些列,假如要更换类型的话,有的时候是比较麻烦的, 会出现:ORA-01439: column to be modified must be empty to change datatype-- 修改khi_cdocument表,PRETREATMENT_WEIGHT类型改为 numberalter table khi_cdocumen
2014-11-14 09:05:56 637
原创 java正则解析读取csv文件
private static final String SPECIAL_CHAR_A = "[^\",//n ]";private static final String SPECIAL_CHAR_B = "[^\",//n]";
2014-10-23 09:57:34 2346
原创 通过代码查找调用类的位置
FtpClient.class.getResource('/' + FtpClient.class.getName().replace('.','/').concat(".class"));Ftpclient为所调用的类
2014-10-23 09:44:04 464
原创 jsp页面格式化数字或时间
Tags fmt:requestEncoding fmt:setLocale fmt:timeZone fmt:setTimeZone fmt:bundle fmt:setBundle fmt:message fmt:param fmt:formatNumber fmt:parseNumber fmt:formatDate fmt:parseDa
2014-06-18 11:53:49 1179
转载 来自苹果的编程语言——Swift简介
关于这篇文章简要介绍了苹果于WWDC 2014发布的编程语言——Swift。原文作者:Lucida Blog新浪微博豆瓣转载前请保留出处链接,谢谢。前言在这里我认为有必要提一下Brec Victor的Inventing on Principle,Swift编程环境的大部分概念都源自于Brec这个演讲。接下来进入正题。Swi
2014-06-03 11:05:38 1088
原创 get和post的区别
前几天今天看到了一些关于讨论post和get的区别,特贴出来和大家分享: post和get的区别post 地址栏不会出现一大串?bjnghfgreygt这样的东西如果是get,就会出现了1、Get 方法通过 URL 请求来传递用户的数据,将表单内各字段名称与其内容,以成对的字符串连接,置于 action 属性所指程序的 url 后
2014-05-30 10:51:13 1054
转载 Eclipse中Velocity插件安装注意事项
今天安装了velocity Editor Eclipse插件,但是安装后颜色没有改变。后来选择点击右键Open with 选择安装后的插件才可以。把安装操作步骤记录一下:1. 在Eclipse的Help->Install New Software... 2. 点击“Add加 Veloeclipse,值: http://veloeclipse.googlecode.com/svn/tru
2014-05-20 09:38:39 9714 2
转载 js时间戳转为日期格式
转自:http://wyoojune.blog.163.com/blog/static/57093325201131193650725/这个在php+mssql(日期类型为datetime)+ajax的时候才能用到,js需要把时间戳转为为普通格式,一般的情况下可能用不到[php] view plaincopy function g
2014-05-15 17:38:40 2351
转载 MyBatis之传入参数
在MyBatis的select、insert、update、delete这些元素中都提到了parameterType这个属性。MyBatis现在可以使用的parameterType有基本数据类型和JAVA复杂数据类型基本数据类型:包含int,String,Date等。基本数据类型作为传参,只能传入一个。通过#{参数名} 即可获取传入的值复杂数据类型:包含JAVA实体类、Map。通过#{属性
2014-03-28 18:12:52 6940 1
转载 SQL Server 存储过程
SQL Server 存储过程Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用。当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句。这样就可以提高存储过程的性能。Ø 存储过程的概念 存储过程Procedure是一组为了完成特定功能的SQL语句集合,经编译后存储在数据库中,用户通过指定存储过程的名称并给出参数来执行
2014-03-26 13:13:08 491
原创 mac端口转发
用 ipfw 监听本地 80 端口然后转发到 8080 等端口,方便本地开发时调试操作。ipfw 是 OS X 自带的防火墙程序,类似 Linux 下的 iptables。 1. 查看当前 ipfw 规则:sudo ipfw show 1. port 80 to 8080 forward:sudo ipfw add 100
2014-03-19 20:17:59 3357
原创 使用ngrok将web服务映射到公网
作为一个 web 开发者,有时候,你需要将你本地正在开发中的网站远程展示给别人看,例如让别人评价下你的设计,协助调试等。之前我能想到的办法,就是在自己的 VPS 上搭建一个测试站点,将开发代码部署上去。今天,发现了 ngrok 这个神奇,再也不用这么麻烦了!假如,你的本地站点运行在 8000 端口。注册 ngrok 后,你会得到一串授权码。根据提示,运行下面的命令:
2014-03-17 17:15:41 9427 3
原创 修改cocos2dx背景色
要把背景色设置白色; 只需要在AppDelegate的设置FPS后面加入一行glClearColor(1.0, 1.0, 1.0, 1.0); 同理如果要修改成其它颜色,只需修改里面的值即可( r, g, b, a);
2014-02-08 10:48:54 6621 1
原创 从java到c++
学习怎样从一种编程语言转移到另一种编程语言是今日的程序员必须面对的现实,还好,C++和Java有很多共同的特点,所以从Java转到C++就容易许多。C++比Java复杂很多,本文并没打算涵盖所有C++的功能。但是如果你能够熟练掌握本文中的所有知识点,也足够有效的使用C++了。这里我们只讲Java与C++的不同之处。像流程控制(if, while, for)这些在C++与Java中完全一样的内容
2014-02-07 13:52:19 1054
原创 Windows环境下搭建Cocos2dx的android开发环境
1.下载android sdk、ndk、cygwinhttp://dl.google.com/android/android-sdk_r20.0.1-windows.ziphttp://dl.google.com/android/ndk/android-ndk-r8b-windows.ziphttp://cygwin.com/setup.exe2.android s
2014-01-03 10:54:50 7514 1
转载 原生JavaScript技巧大收集100
1、原生JavaScript实现字符串长度截取function cutstr(str, len) { var temp; var icount = 0; var patrn = /[^\x00-\xff]/; var strre = ""; for (var i = 0; i if (icount temp = s
2013-12-27 16:02:29 1223
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人