- 博客(121)
- 资源 (14)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Maven搭建Spring+Struts2+Hibernate项目详解
前言 这篇主要采用Maven搭建Spring+Struts2+Hibernate的整合项目,复习一下SSH框架,虽然spring提供自己的MVC框架,但是Spring也提供和其他框架的无缝整合,采用组件形式对个框架进行管理,项目实例是按照真实企业里面的开发搭建,也是web的最后一片了。数据库使用mysql,连接池使用的是Druid数据源(这些都无关紧要,可以随时的替换),下面就将详
2015-03-01 13:39:34
12124
23
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Maven搭建SpringMVC+Hibernate项目详解
前言 今天复习一下SpringMVC+Hibernate的搭建,本来想着将Spring-Security权限控制框架也映入其中的,但是发现内容太多了,Spring-Security的就留在下一篇吧,这篇主要搭建SpringMVC4.1.4和Hibernate4.3.8,之前也打了好多SpringMVC的,这部分已经非常的熟悉了,毕竟业开发过一年多SpringMVC的,这次持久层采用Hi
2015-02-08 11:39:31
18138
30
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Maven搭建SpringMVC项目详解
前言 上一次复习搭建了SpringMVC+Mybatis,这次搭建一下SpringMVC,采用的是SpringJDBC,没有采用任何其他的ORM框架,SpringMVC提供了一整套的WEB框架,所以如果想搭建纯的SpringMVC的话,而且不必映入别的任何框架,SpringMVC都给我们提供了,下面试Spring + SpringMVC的详细搭建过程。 项目包含:数
2015-02-02 15:04:15
18652
7
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Maven搭建SpringMVC+Mybatis项目详解
前言 最近比较闲,复习搭建一下项目,这次主要使用Spring+SpringMVC+Mybatis。项目持久层使用Mybatis3,控制层使用SpringMVC4.1,使用Spring4.1管理控制器,数据库连接池使用druid数据源,该项数据库暂使用MySQL。1、 数据库表结构以及maven项目结构 数据表非常的简单(不是重点),如下:
2015-01-29 10:23:18
34653
68
原创 Spring事务使用最佳实践
1.4、问题汇总通过现状梳理来看,虽然数据库最近未曾出现大事务告警,一方面是和我们设置阈值较高有关,另一方面和业务体量有关,随着业务增长还是存在相关的潜在风险,主要事物问题汇总如下 事务问题分类 详细问题 备注 无需事务 单条更新、插入、删除无需单独显试引入事务,因为对于这类SQL数据库本身开启事务处理 对于全部为查询操作,无需引入事务 ..
2021-05-29 15:10:19
821
原创 Elasticsearch版本控制理解
目录背景具体使用说明背景Elasticsearch 是分布式的。当文档创建、更新或删除时, 新版本的文档必须复制到集群中的其他节点。Elasticsearch 也是异步和并发的,这意味着这些复制请求被并行发送,并且到达目的地时也许顺序是乱的。 Elasticsearch 提供了版本 _version 功能,实际上和大多数并发场景处理一样,版本号属于乐观锁的应用范畴当我们 index , GET 和 delete 请求时,我们指出每个文档都有一个 _version (版本)号,当文档被..
2021-03-15 11:46:17
748
原创 Elasticsearch概念介绍&文档路由与存储
目录1 基本介绍1.1 什么是Elasticsearch1.2 发展历程1.2.1 美好的事物总有一个浪漫的开始1.2.2 分布式为其注入了新的活力1.2.3 开源力量助其腾飞1.2.4 快速成长1.3 搜索引擎对比1.3.1 和Lucene的区别1.3.2 和solr对比1.3.3 search Engine排名1.4 使用场景1.5 有谁在使用1.5.1 国内外使用情况1.5.2 我团的使用2 基础概念2.1 准实时NRT(Near R
2021-03-11 14:33:22
561
原创 Redis实现分布式锁
在集群等多服务器中经常要使用到同步处理一下业务,这时普通的事务是满足不要业务需求,需要分布式锁。分布式锁的实现方式有多种,如redis实现分布式锁,zookeeper实现分布式锁等,这篇先实现redis分布式锁。实现原理:1、通过setnx(lock_timeout)实现,如果设置了锁返回1,已经有值没有设置成功返回0。2、死锁问题:通过时间来判断是否过期,如果已经过期,重新加锁。3、针对集群服务器时间不一致问
2016-12-10 22:08:21
16877
13
原创 Nginx配置HTTPS和HTTP
HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer)安全超文本传输协议,是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即将HTTP用SSL/TLS协议进行封装,HTTPS的安全基础是SSL/TLS1、HTTP和HTTPS比较2、Nginx上部署HTTPS和HTTP。3、Nginx上层CND和SLB等上配置HTTPS
2016-12-03 13:41:27
13659
原创 微信支付-企业付款到个人详解
微信支付-企业付款到个人企业付款实现企业向个人付款,实现付款到用户零钱。项目实现了企业付款到个人和企业付款个人账单查询。代码包括签名实现,双向证书验证,付款功能等支付流程付款功能 企业付款到授权用户的零钱企业付款注意注意: 1、所有接口需要双向证书验证 2、需要设置接口秘钥,签名用详细参考:微信企业付款开发文档项目结构和上一篇一样,需要配置证书以及商户id、appid等支付功能包含企业转账和企
2016-11-17 19:05:26
38956
20
原创 微信支付-App支付服务端详解
微信App支付服务端详解引言主要实现app支付统一下单、异步通知、调起支付接口、支付订单查询、申请退款、查询退款功能;封装了https对发起退款的证书校验、签名、xml解析等。支付流程具体支付流程参考“微信APP”文档,文档地址APP支付:APP端点击下单—-服务端生成订单,并调起“统一下单”,返回app支付所需参数—–APP端“调起支付接口“,发起支付—-微信服务器端调用服务端回调地址—–服务端按
2016-11-17 14:45:41
15632
11
原创 Http和Https网络同步请求httpclient和异步请求async-http-client
Http和https网络请求 主要总结一下使用到的网络请求框架,一种是同步网络请求org.apache.httpcomponents的httpclient,另一种是异步网络请求com.ning的async-http-client,总结一下常用的http请求方式封装使用,如post、get、put、delete等,以及涉及到ssl证书https请求的双向证书验证。 一、apach
2016-11-09 16:26:18
11970
2
原创 Linux下安装NFS共享文件资源
在集群环境下有可能我们需要将实时共享文件,不仅可以节约本地资源而且可以实现所有服务器之间操作文件数据的共享,从而减少文件管理的麻烦以及实现共享文件。譬如,集群服务器之间上传图片、语音等文件资源。NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源,便于安装。但是也存在在容灾备份就有缺陷,当然也可
2016-11-04 18:58:12
2771
原创 Java实现DFA算法对敏感词、广告词过滤功能
开发中经常要处理用户一些文字的提交,所以涉及到了敏感词过滤的功能,参考资料中DFA有穷状态机算法的实现,创建有向图。完成了对敏感词、广告词的过滤,而且效率较好,所以分享一下。具体实现: 1、匹配大小写过滤 2、匹配全角半角过滤 3、匹配过滤停顿词过滤。 4、敏感词重复词过滤。
2016-08-31 11:47:35
21674
22
原创 Redis Cluster集群的搭建与实践
Redis Cluster集群一、redis-cluster设计Redis集群搭建的方式有多种,例如使用zookeeper等,但从redis 3.0之后版本支持redis-cluster集群,Redis-Cluster采用无中心结构,每个节点保存数据和整个集群状态,每个节点都和其他所有节点连接。其redis-cluster架构图如下:其结构特点: 1、所有的redis节点彼此互联(PI
2016-05-11 00:17:08
37183
16
原创 zookeeper分布式协调服务的使用一
Zookeeper是一个高性能,分布式的应用协调服务。提供服务:1、集群成员的管理(Group Membership)2、分布式锁(Locking)3、选主(Leader Election)4、同步(Synchronization)5、发布/订阅(Publisher/Subsriber)一、数据模型分层结构属性结构的中的每个节点叫做Znode
2016-04-01 15:20:38
4007
原创 Redis实现Mybatis的二级缓存
一、Mybatis的缓存 通大多数ORM层框架一样,Mybatis自然也提供了对一级缓存和二级缓存的支持。一下是一级缓存和二级缓存的作用于和定义。 1、一级缓存是SqlSession级别的缓存。在操作数据库时需要构造 sqlSession对象,在对象中有一个(内存区域)数据结构(HashMap)用于存储缓存数据。不同的sqlSession之间的缓存数据区域(HashMap)是互相
2016-01-25 17:56:42
17964
3
原创 Redis实现分布式session功能的共享
最近项目设计集群,实现了一下session的共享功能,其原理是将session保存到分布式缓存数据库中如:redis, memcache等,然后多个服务器tomcat每次请求都通过NoSql数据库查询,如果存在,则获取值;反之存放值。我是通过redis来实现session的共享,其主要有一下两种方法:1、通过tomcat服务器的拓展功能实现 这种方式比较简单,主要是通过继承sessio
2016-01-25 17:00:50
19449
29
原创 Maven使用yuicompressor-maven-plugin打包压缩css、js文件
最近项目想使用在maven打包的时间压缩js,css文件,采用yuicompressor-maven-plugin插件进行压缩,但只是压缩减小大小,提高请求速度,并没有对js进行混淆。下面就写一下这个插件的使用。假设项目包含如下结构需要把项目中设计的css和js全部压缩,但是需要配出已经压缩过的css,js文件,不然会报错。 shop net.alc
2016-01-19 15:21:17
12232
4
原创 Mybatis使用技巧
以下就总结一下Mybatis的使用中的一些不太注意的技巧,算是Mybatis的总结笔记。1、插入时主键返回 我们向数据库插入一条记录是,使用Mybatis的是无法返回插入的主键的,而我们需要这个刚插入的主键,可以如下返回 自增主键:使用last_insert_id()查询刚插入的key的id,该方法需要和insert配合使用,是插入之后获取。
2015-12-12 11:26:24
3981
原创 Linux常用到的命令
记录一下日常用到的Linux命令,就当做日志了1、查看Linux 端口号 netstat -apn | grep 802、杀死进程 kill -s 9 pid(tomcat 启动不起来有可能是远程调试端口未关闭 或者tomcat端口未关闭)3、改变文件的权限 chmod 755 文件名4、解压:tar xzvf FileName.tar.gz
2015-12-09 18:43:13
1551
原创 Linux下mysql数据库的自动备份与还原 远程备份和本地备份
Linux系统下Mysql备份还原MySql的还原与备份1 备份 mysqldump -u root -p shop > /home/andy/shop20150910.sql 其中:root为用户名,shop为要备份的数据库,自动会备份到/home/andy/文件目录下 也可以压缩备份 mysqldump -u root -p shop |
2015-12-09 18:32:28
2026
原创 App开放接口api安全性—Token签名sign的设计与实现
前言 在app开放接口api的设计中,避免不了的就是安全性问题,因为大多数接口涉及到用户的个人信息以及一些敏感的数据,所以对这些接口需要进行身份的认证,那么这就需要用户提供一些信息,比如用户名密码等,但是为了安全起见让用户暴露的明文密码次数越少越好,我们一般在web项目中,大多数采用保存的session中,然后在存一份到cookie中,来保持用户的回话有效性。但是在app提供的开放
2015-09-27 17:44:55
81677
8
原创 Nginx+Tomcat负载平衡
Nginx负载均衡最近项目要设计到并发,所以设计项目架构时考虑到用Nginx搭建Tomcat集群,再用Redis搭建分布式Session,下面将一步步分享我摸索的过程。 Nginx虽然小,但是功能方面确实非常的强大,支持反向代理,负载平衡,数据缓存,URL重写,读写分离,动静分离等方面。下面最要说一下负载均衡的配置,下一篇将试验与Redis的结合。Nginx负载均衡调度的
2015-08-17 16:40:05
4571
2
原创 Nginx配置文档详解
Nginx的配置文档详解,在这儿做个总结,以便以后使用的时间查看。 以下大部分自己整理,部分来自参考 #设置用户#user nobody;#启动进程数(一般和服务器的CPU相同)#可以使用 $ cat /proc/cpuinfo 查看内核数worker_processes 2;#设置错误文件存放的路径#error_log logs
2015-08-17 15:52:37
1760
原创 jQuery判断浏览器是移动端还是电脑端自动跳转
一个段小代码,同一个网站针对移动端查看和电脑端查看跳转不同的页面。首先加载jQuery文件。$(function(){ var MobileUA = (function() { var ua = navigator.userAgent.toLowerCase(); var mua = { IOS: /ipod
2015-07-27 19:13:16
9677
原创 Nginx在Linux下的安装部署
一、Nginx简介 Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 服务器。Nginx作为负载均衡服务器:Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务,也可以支持作为 HTTP代理服务器对外进行服务。nginx网站国内的用户有:百度、新浪、网易、腾讯等等。
2015-07-23 12:29:06
1654
原创 微信支付-公众号支付H5调用支付详解
最近项目需要微信支付,然后看了下微信公众号支付,,虽然不难,但是细节还是需要注意的,用了大半天时间写了个demo,并且完整的测试了一下支付流程,下面分享一下微信公众号支付的经验。
2015-05-11 11:14:08
69866
71
原创 Eclipse调试远程服务器
Eclipse提供能调试远程服务器的功能,最近做微信开发,需要部署到远程服务器上才能和手机互调,所以配置了本地Eclipse调试远程服务器tomcat,下面做一个分享。1、首先在tomcat的catalina文件中配置 window下配置catalina.bat,Linux下配置catalina.sh 添加到任意行,8787位监控端口(可随便
2015-04-19 10:12:52
3667
原创 Git操作的基本命令
最近项目组使用git作为版本控制工具,下面就总结一下工作中使用的git做版本的git命令按照一般的工作流程,首先你需要在官网(https://github.com/)注册一个git账号,安装git软件。安装成功后,新建目录,存放git项目,然后右键会出现如下: 选择Git Bash1、初始化git git config --gl
2015-04-16 11:44:20
1669
1
原创 HashMap实现原理及源码分析
在数据结构与算法中,给我们介绍了常用的几种数据结构:数组,链表,哈希表。 数组结构:其在内存分配是一段连续的内存空间,可能会占用内存空间严重,空间复杂度很大,时间复杂度小,其优点是易于寻址,但是插入、删除困难。 链表结构:其在内存分配是一系列离散的内存空间,占用内存少,空间复杂度很小,时间复杂度很大,其优点是易于插入和删除,寻址困难。 哈希表:哈希表是集合数组和链表的存储结构,满足寻址方便,易于操作,占用内存空间较小,时间复杂度有较小。其例如下:
2015-04-11 20:16:20
1721
1
原创 Poi读写Excel文件
Apache的Poi读写Excel比较强大,对xlsx和xls都能够支持,当然也支持更多的设置,下面是Poi的demo。详细查看poi的api:http://poi.apache.org/spreadsheet/quick-guide.html一、使用的包 maven的相关依赖坐标 org.apache.poi poi
2015-04-09 12:21:09
1807
原创 Jxl读写Excel文件
最近要使用Excel文件的导入导出,比较了一下Jxl和poi两种方式,Jxl相对简单,但是不支持xlsx格式的(2003之上版本的),下面先写一下Jxl的demo。无论是那方式,将Excel分为 Workbook(代表Excel的整个工作空间),Sheet(代表Workbook的每一个Sheet页),Row(代表Sheet中的每一行),Cell(代表Row中的每一个块元素)。一、使用到的包
2015-04-09 12:14:41
2795
原创 多线程之生产者与消费者问题
生产者消费者问题(Producer-consumer problem):生产者不断地生产产品,消费者取走生产者生产的产品。生产者生产出产品后将其放到一个区域之中,消费者从这个地方去除数据。涉及的问题:要保证生产者不会在缓冲区满时加入数据,消费者也不会在缓冲区中空时消耗数据。 主要涉及:多线程的同步问题。 1、假设生产者线程刚向数据存储空间添加了产品的名称,还没有添加产品的内容,程序就切到了消费者的线程,消费这的 线程将吧产品的名称和上
2015-03-20 11:51:31
2030
原创 Java实现单链表翻转
单链表翻转比如有如下链表: 需要按照C B A 输出,我们可以有好几种方法:package org.andy.test;import java.util.ArrayList;import java.util.List;/** * @author andy * @version:2015-2-4 上午9:41:12 * * */public clas
2015-03-19 17:10:32
2184
原创 控制层SpringMVC和Struts2的区别
我们现在流行的常用的MVC层,控制层Controller层的框架主要有Struts2和SpringMVC两个框架,分别对应着Action和Controller。那么SpringMVC和Struts的主要区别有那些呢?一、框架机制 我们知道Struts2采用Filter实现,而SpringMVC则采用Servlet实现。 Struts2使用StrutsPrepar
2015-03-18 17:06:11
4258
原创 spring整合SpringMVC Controller 和 Struts2 Action控制层Bean的默认作用域
Spring在整合SpringMVC 时的Controller作用域默认是单例。Spring在整合Strut2时Action是作用域原型。 我们知道Spring在配置bean时默认是单例。那么对于的service和dao层的bean也是使用的单例模型。 我们做个测试package com.pyc.test.controller;import org.sprin
2015-03-03 17:38:53
4906
6
原创 Maven搭建Spring Security3.2项目详解
前言 这篇主要是采用 Maven搭建Spring+SpringMVC+Hibernate+Security整合,而Spring+SpringMVC+Hibernate已经在上一篇介绍了,在这篇将不再重复写了,主要说明一下SpringSecurit配置,权限管理,以及权限认证国际化提示等。数据库采用MySQL,连接池c3p0,等
2015-02-12 18:27:51
5333
2
原创 Hibernate二级缓存以及ehcache的搭建配置
Session级别的以及缓存总是有效的,当应用保持持久化实体、修改持久化实体时,Session并不会吧这种改变flush到数据库,而是缓存在当前Session的一级缓存中,除非程序显示调用session的flush方法,或者查询关闭session时,才会把这先改变一次性的flush到底层数据库,这样可以减少与数据库的交互,从而提高数据库的访问性能。 SessionFactory级别的二级缓存是全局的,应用的所有的Seeion都共享这个二级缓存,当Session需要抓取数据时,Session就会优
2015-02-07 20:27:36
14328
1
原创 Java类的加载顺序
一个类中有静态方法,有静态代码块,普通代码块,构造函数,普通方法,静态方法,那么它们的加载顺序是什么?如果有之类继承该类,也有如上的方法,那么加载顺序又是如何? 先加载父类的静态代码块/静态成员(父类中中都有或有多个有,按书写顺序) ------------- 加载子类的静态代码块/静态成员(字类中都有或有多个,按书写顺序)---------父类的普通代码块/非静态成员(父类中中都有或有多个有,按书写顺序)------------父类的构造方法-----------------子类的普通代码块/非静
2015-02-04 15:51:49
1936
支付宝支付-APP支付服务端代码下载
2017-01-01
Java微信支付-微信App支付服务端源代码
2016-11-18
Java微信支付-微信企业付款到个人
2016-11-17
分布式session分享tomcat-redis-session-manager-master
2016-01-25
Maven搭建spring_struts2_Hibernate_demo
2015-03-01
springmvc_hibernate_security_demo
2015-02-13
Maven搭建SpringMVC+Hibernate项目源码
2015-02-08
Maven搭建SpringMVC+Mybatis项目源码
2015-01-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人