- 博客(106)
- 资源 (1)
- 收藏
- 关注
原创 自定义Ribbon的IRule实现服务之间的灰度发布
考虑如何在服务之间实现灰度,切入点在哪里?服务与服务之间的调用时通过HTTP协议,如果要实现灰度,只能在调用的时候来实现。在Springcloud体系中,负责服务间调用的组件就是Ribbon。Ribbon是负责客户端的负载均衡,默认的规则是区域轮训。因此,如果要实现服务间的灰度发布,则需要重新定义Ribbon的调度规则即可。Ribbon的规则,则是通过IRule实现(ribbon的loadbalance)
2022-10-21 23:58:34
356
1
原创 关于依赖倒置原则的一次思考
概念 Highlevelmodulesshouldnotdependuponlowlevelmodules;Bothshoulddependuponabstractions.Abstractions should not depend upon details.Details should depend upon abstractions; 三层含义: 高层模块不应该依赖底层模块,两者都应该依赖其抽象; 底层模块:指的就...
2021-01-29 18:19:33
222
1
原创 整数反转及问题解析
一、算法题 LeetCode中有这样一个算法: 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1: 输入: 123 输出: 321示例 2: 输入: -123 输出: -321示例 3: 输入: 120 输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231,231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。...
2020-06-30 10:56:02
3051
原创 一步一步实现基于redis的分布式锁
前提 通过多线程请求一个接口,实现抢单的实现。 总数:10 线程数:200 测试方式:Jmeter 无锁状态 在无锁状态下,实现了库存的减少的业务逻辑。测试过程中,在没有并发情况下,redis中的库存数量按照理论逐渐递减。但是当使用Jmeter测试时,线程数量为200时,出现了库存数量重复的现象...
2019-10-18 17:05:46
268
原创 微信网页开发异常——签名失败
错误信息:{ "errMsg": "config:invalid signature" }错误原因:微信分享的时候,需要在页面中配置签名,时间戳,随机数等信息,但是生成的签名和微信公众号的签名不一致。解决方案: 按照如下顺序检查: 1.确认签名算法正确,可用 http://mp.weixin.qq.com/debug/cgi-b
2017-08-10 16:28:55
1597
原创 微信网页开发——随手笔记
一、公众号设置 1.账号详情: 公众号的头像、二维码、名称都是必须填写的,如果没有这些信息,是不能进行网页开发的。2.功能设置 JS接口安全域名: 设置JS接口安全域名后,公众号开发者可在该域名下调用微信开放的JS接口。例如,在做分享的时候,需要引入微信的js文件,微信会对请求的域名校验是否合法。
2017-08-10 16:26:47
1248
3
原创 springboot项目搭建(二)——直接生成项目架构
spring-Boot是Spring的新东东,为了让人尽快的使用,它提供了一个非常好的辅助工具,直接为我们生成Maven架构的工程。下面,我们通过helloworld看一、在浏览器中打开http://start.spring.io/,如图在Artifact中输入spring-boot-sample-helloworld,点击“Switch to th
2017-07-02 21:21:47
1697
1
原创 springboot项目搭建(一)
一、创建maven聚合工程 这个比较简单,就不在此赘述了。 给出结构图: 二、配置pom文件 1.配置setting文件(这个不是本文重点,也就先不多说了) 2.配置pom文件 a.pom文件一般主要需要配置一下几个部分: b.因为现在只是简
2017-07-02 21:12:48
399
原创 <![CDATA[]]>和转义字符的使用和联系
一、转义方法介绍第一种方法:用了转义字符把>和 SELECT * FROM test WHERE 1 = 1 AND start_date < = CURRENT_DATE AND end_date >= CURRENT_DATE常用的转义字符如下:
2017-05-17 21:54:46
4767
转载 logback 配置详解(一)
一:根节点包含的属性: scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。debug:当此属性设置为true时,将打印出logback内部日志信
2017-01-20 10:07:19
444
原创 redis创建集群失败——can't connect to node 192.168.*.*
就为了一个redis集群,整整浪费了我两天的时间。搞的我几近崩溃了……说道这里,突然想到一个笑话: 我问大师:“我是搞IT的,每天压力很大,吃也吃不好,睡也睡不好,又不能顾家,还挣不着多少钱,每天还要面对各种问题,别人都有时间休假,而我却不行。” 禅师右手捂左胸,不语。 我追问大师:“您是说不要抱怨,要问心无愧,要对得起心中梦想,对吗?” 禅
2016-08-06 16:32:47
46953
14
原创 Java反射机制
一直以来,不论是C#还是java,反射都是一个非常实用的技术。因为有了反射,在数据库的切换上更加得容易;因为有了反射,一些本不肯能的事情,成为了现实;因为有了反射,在java中,才有了那么多经典的框架……在此,跟大家分享一下自己的一些比较粗浅的认识,希望能给刚开始学习的你,带来一丁点帮助。在说反射之前,首先要搞懂几个比较专业的概念:1.在java中,每一个类都有一个与之对应的class
2016-08-01 11:56:56
666
2
原创 FastDFS服务器的使用
FastDFS服务器搭建完成之后,仍然是不能访问的,因为没有Http服务,所以需要借助nginx来实现访问操作。 一、 nginx服务搭建:可以使用官方提供的nginx插件。要使用nginx插件需要重新编译。fastdfs-nginx-module_v1.16.tar.gz1、解压插件压缩包2、修改/root/fastdfs-nginx-module/src/config文件,
2016-07-31 21:51:03
4028
3
原创 fastDFS安装
FastDFS图片服务器主要有两个部分组成——Tracker和Storage。大致的原理就是客户端通过调用Tracker服务来获取Storage服务中的存储图片所属的组,然后再调用Storage来读取图片信息。盗用一张图:FastDFS的具体的安装步骤如下:第一步:把fastDFS都上传到linux系统。第二步:安装FastDFS之前,先安装libevent工具包。在安装前
2016-07-31 20:05:52
870
3
原创 Linux为CentOS 7配置静态IP地址
在安装虚拟机的时候总是会遇到这样那样的问题,由于自己对Linux系统不是很熟悉,所以但凡一点小问题,也得被卡住很长时间。比如配置静态IP地址的问题。每次在安装CentOS7的时候,在执行vagrat up命令后就会被卡在下面这个地方,直至———超时! 说实话,这个问题,我已经不是第一次遇到了,也不是第二次了,而是第三次!!第三次!!!这就是有问题不总结的教训啊,血淋淋的教训。
2016-07-27 22:22:44
4224
3
原创 Linux常用命令
一,注销,关机,重启注销系统的logout命令 1,Logout注销是登陆的相对操作,登陆系统后,若要离开系统,用户只要直接下达logout命令即可: [root@localhostroot]#logoutRedHatLinuxrelease9(Shike Kernel2.4.20.8onani686 Login:←回到登陆的画面2,关机或重新启动的sh
2016-06-30 20:55:15
378
1
原创 shiro介绍
一、什么是shiro 1.shiro是apache的一个开源框架,是一个权限管理的框架,实现 用户认证、用户授权。2.spring中有spring security (原名Acegi),是一个权限框架,它和spring依赖过于紧密,没有shiro使用简单。3.shiro不依赖于spring,shiro不仅可以实现 web应用的权限管理,还可以实现c/s系统,分布式系统权限管理,sh
2016-06-30 20:51:27
700
原创 Maven的生命周期
Maven强大的一个重要的原因是它有一个十分完善的生命周期模型(lifecycle),这个生命周期可以从两方面来理解,第一,顾名思义,运行Maven的每个步骤都由它来定义的,这种预定义的默认行为使得我们使用Maven变得简单,相比而言,Ant的每个步骤都要你手工去定义。第二,这个模型是一种标准,在不同的项目中,使用Maven的接口是一样的,这样就不用去仔细理解每个项目的构建了,一般情况下,mvn
2016-06-30 20:45:11
384
2
原创 MyBatis零散的总结
1输入映射——parameterType 所谓的输入映射,也就是在Mapper.xml文件中的传入参数的类型的设置。 在映射文件中通过parameterType指定输入参数的类型。类型可以是简单类型、hashmap、pojo的包装类型,如在程序中自定义的User实体类型。 2输出映射——resultType 同上边所说的类似,输出映射也就是Mapper.x
2016-06-28 20:06:18
408
1
原创 EL表达式
简介 EL即Expression Language(表达式语言),EL的语法:${ EL exprission }、${ bean.name } 或 ${ bean['name'] },说白了,EL是用来显示数据的,功能跟表达式%>一样,使用EL不需要引入任何jar包,只需要jsp/servlet容器实现J2EE1.4/Servlet2.4、JSP2.0规范就可以了。使用
2016-05-31 19:44:33
530
2
原创 AOP——配置文件方式实现
接着上篇文章,分享一下在spring中用配置文件来实现AOP的安全检查。 (一)环境搭建不变 1.创建java项目 2.引入spring相关jar包 3.引入aspectJ相关jar包(二)代码实现 1.切入类public class SecurityHandler { private void checkSecurity() {
2016-05-30 21:36:56
760
2
原创 spring中AOP——注解实现
之前在刚接触AOP的时候总是感觉AOP是一种技术,就像SSH一样,有具体的实现步骤。然而,最近这几天再次细致的学习AO之后,才发现,它就是一种编程的思想。就像“面向对象”一样,在编程的过程中很多地方都可以体现,但是如果说AOP是怎么实现的,那就不确定了。因为在不同的框架里,它的实现方式也是不一样的。 我先说说我自己对AOP的理解。在回顾了Spring中的AOP之后,我认为,AOP就像我们
2016-05-30 20:48:22
478
3
原创 SSH总结
刚刚学习完SSH框架,但是如果让自己独立完成整个SSH环境的搭建还是十分困难的。今天自己也在一边回顾刚刚学习到的知识,一边实践地搭建了一个比较完美的SSH框架,当然也有一个非常简单的功能实现了。 说实话,看别人讲课或者跟着老师一起动手学习,真的比不上自己去独立的完成一次!接下来,我也是根据自己的学习总结,一步一步的跟大家分享SSH框架的知识。 Hibernate主要是一个
2016-05-14 11:08:13
496
4
原创 Hibernate中的映射关系(二)
前面跟大家分享了Hibernate中的单向一对一、双向一对一、多对一映射关系,接下来跟分享一下其他的比较重要的映射关系。(一)单向一对一唯一外键关联映射 案例:其实单向的一对一唯一外键关联就是之前说的那个一对一映射和多对一映射关系的特例,还用那个人和身份号的例子来说明,单项一对一唯一外键关联顾名思义就是在一个实体对象中加入关联对象的外键。例如: 在t_person表
2016-04-29 20:20:19
463
2
原创 Hibernate中的映射关系(一)
在Hibernate的学习中,最最主要的就是Hibernate中的几种常用的映射关系了。(一)单项一对一的映射 案例:在生活中,我们每个人都有一个身份证号,所以当我们存储人和身份证号信息的时候就是一种一对一的映射关联关系:实现方式的原理很简单,就是将Person表和IDCard表的主键设置成一致的,这样就可以使得Person表中的每条记录都与IDCard表中的记录唯一对应
2016-04-27 21:37:00
409
2
原创 Hibernate中的N+1 问题(一)
【简单连接查询导致的N+1问题】 所谓的简单连接查询就是“select * from user s join s.classesid where idpublic void testQuery(){ Session session=null; try{ session=HibernateUtils.getSession(); session.beg
2016-04-26 15:12:53
514
5
原创 Hibernate(一)——简介
关于Hibernate的,很早之前就听说了,当时也顺手查了查其大致的含义。我们都知道,在程序开发的时候,我们通常将程序分为三层,其中将数据保存到数据库的就是数据持久化层,也就是我们常说的dao层。而Hibernate就是在数据持久化层的一个常用框架。Hibernate的作用就是封装了java程序和数据库之间的的桥梁——JDBC。在此之前我们在开发的过程中,会花费大量的时间去处理怎样和数据库连接的问
2016-04-24 15:56:51
446
4
原创 自己对IOC的理解
今天有幸研究一下IOC的相关知识。以前总是听别人再说IOC怎么怎么样好,怎么怎么用之类的,而自己听着也是一个什么都不懂的小白。 上网查了一些关于IOC的知识,关于大牛的说法自己在此记录一下自己的理解。 IOC 是什么? Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控
2016-03-30 23:07:35
1091
6
转载 网上——对于IOC的理解
首先要分享的是Iteye的开涛这位技术牛人对Spring框架的IOC的理解,写得非常通俗易懂,以下内容全部来自原文,原文地址:http://jinnianshilongnian.iteye.com/blog/14138461.1、IoC是什么 Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将
2016-03-30 23:05:01
537
3
原创 初识mybatis
初次学习myBatis,以前就知道它和Hibernate差不多都是数据持久层的框架。之所以称之为框架,就是因为其将java工程和数据库的连接部分做了充分的封装。以至于我们不需要再去配置jdbc哪些比较底层的复杂的东西了。相反我们需要做的就是在java项目中简单的引用几个jar包,然后在xml配置文件中简单的配置一下就可以轻松的实现和数据库的连接了。 接下来就详细的记录一下myBatis的
2016-03-29 20:11:09
923
8
原创 HTML5+Spring-MVC实现手机端上传图片
项目是挂在微信端的,所以手机图片上传的功能的比较难的就是怎样打开手机的相册,然后读取照片。最后在Controller中读取文件,然后copy到指定的路径下。 小白在网上找了一些资料然后结合了大神给的例子,简单的实现了手机端上传图片的功能。以下就是具体的代码:1.在jsp页面中的代码:/complaint" onSubmit="return emptyCheck()
2016-03-29 09:50:55
2854
4
原创 XAML
XAML是eXtensible Application Markup Language的英文缩写,相应的中文名称为可扩展应用程序标记语言,它是微软公司为构建应用程序用户界面而创建的一种新的描述性语言。XAML提供了一种便于扩展和定位的语法来定义和程序逻辑分离的用户界面,而这种实现方式和ASP.NET中的"代码后置"模型非常类似。XAML是一种解析性的语言,尽管它也可以被编译。它的优点是简化编程式上
2016-02-29 19:09:35
744
5
原创 终止线程的方法
线程作为一种轻量级的进程而且可以并发进行共享资源的在.net或者Java中被经常用到。然而,有时候我们在启动线程以后,由于各种原因又不得不终止……有三种方法可以使终止线程。 1. 使用退出标志,使线程正常退出,也就是当run方法完成后线程终止。 2. 使用stop方法强行终止线程(这个方法不推荐使用,因为stop和suspend、resume一样,也可能发生
2016-02-29 14:50:44
584
5
原创 JSP取得绝对路径和相对路径方法
刚开始做SSH网上商城的时候,在前台的JSP页面中发现所有的图片地址都会这样写:“${pageContext.request.contextPath} /image /.....”。或许是因为之前做的都是.net的项目,其路径的写法很是简单,所以当我看到这个的时候就顿时觉得这个很让人反感。不过,反感归反感,自己只要在Java界呆一天就得和他频繁的打交道……首先了解一下${pageContext
2016-02-29 10:54:51
3526
3
原创 MVC,MVP 和 MVVM 的图示
一、MVCMVC模式的意思是,软件可以分成三个部分。视图(View):用户界面。控制器(Controller):业务逻辑模型(Model):数据保存各部分之间的通信方式如下。所有通信都是单向的。二、互动模式接受用户指令时,MVC 可以分成两种方式。一种是通过 View 接受指令,传递给 Controller。
2016-02-29 10:13:33
562
3
原创 Java程序向MySql数据库中插入的数据变成了问号
最近在做的一个Java实例项目中,有一个功能就是想数据库中添加记录。功能的业务逻辑本身是很简单的,但是结果却是插入的记录中的汉字全部都变成了问号。数据库:其实,当我们看到这个问题的时候都会很快的想到是编码格式的问题。但是当我查看MyEclipse中的编码格式的时候发现,编码方式是没有问题的,而且自己写的JSP页面中的编码格式也是没有问题的。那么这会嘛原因的?后来在查看M
2016-01-31 20:32:41
11974
7
原创 SSH框架搭建总结
前言:本篇文章主要是编者作为刚刚接触Java学习项目后不久的学习总结,以此来让自己能够熟练的搭建SSH框架和使用MyEclipse。1.创建WEB工程——NEW WEB Project2.引入jar包(Struts2 jar包,spring jar包和json jar包),放到WEB-INF下的lib文件夹下
2016-01-31 19:47:53
697
2
原创 年终总结
俗话说:“小寒、大寒,吃过腊八饭过年还有二十二天半……”。眼瞅着这腊八饭已经吃完过去几个星期了,过年的气氛越来越弄了。感觉2015年过的还是如往年一样迅速,那些跟亲人朋友一起度过的快乐时光依然在脑海中活灵活现,可是回头一想,却已经过去一年了…… 其实,每年到了这个时候,看着身边人谈论着过年的预约时刻的时候,总是让我情不自禁的去回忆自己在过去的一年都在忙碌些什么。而今年亦是如此……工作
2016-01-27 17:39:55
613
9
原创 Ninject的使用
1、是什么 Ninject是一个快如闪电、超轻量级的基于.Net平台的依赖注入框架。它能够帮助你把应用程序分离成一个个松耦合、高内聚的模块,然后用一种灵活的方式组装起来。通过使用Ninject配套你的软件架构,那么代码将会变得更加容易编写、重用性强、易于测试和修改。2.为什么要用Ninject?Ninject是一个IOC容器,用来解决程序中组件的耦合问题,它的目的在于做到最少配置。其他的的
2016-01-26 15:05:18
2668
3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人