自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

SomeoneMH的博客

I hear and I forget. I see and I remember. I do and I understand.

  • 博客(38)
  • 资源 (4)
  • 收藏
  • 关注

原创 设计模式的简单实战-坦克大战

设计模式的简单实战 序言: 距离上次写博客也将近两年了吧,毕业至今两年多,似乎丢失了大学那时候的自律,技能和知识点也有点停滞不前。最近换工作,重新开始。常用的设计模式,我之前的博客也总结了几个,最近空闲时间写了个坦克大战的项目,尽可能的应用到了常用的设计模式,实在无法应用的,也写了相应的demo示例,希望一起学习。GitHub地址:https://github.com/yiminghuihui77/aligo-tank.会持续更新…...

2020-12-18 21:05:05 435 1

原创 使用Spring Security Oauth2实现第三方登录认证

最近接手一个需求,在已有的登录系统下,为第三方平台提供一个登录认证功能。这里涉及的协议是OAuth2,关于该协议的具体内容不是本文讲述的主要内容,具体可以参考如下链接: Oauth2协议相关: http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html https://github.com/jeansfish/RFC6749....

2019-03-19 11:29:30 9475 1

转载 SLF4J简介与整合其他日志框架

原文出处:https://blog.csdn.net/jiapengcs/article/details/73359918 一、概念SLF4J的全称是Simple Logging Facade for Java,即简单日志门面。SLF4J并不是具体的日志框架,而是作为一个简单门面服务于各类日志框架,如java.uti...

2018-08-06 09:24:48 455

转载 关系型数据库和非关系型数据库区别(附加oracle与mysql的区别)

原文出处:https://blog.csdn.net/oChangWen/article/details/53423301 一、关系型数据库    关系型数据库,是指采用了关系模型来组织数据的数据库。    关系模型是在1970年由IBM...

2018-07-16 18:19:08 379

原创 从源码角度理解ThreadLocal

从源码角度理解ThreadLocal

2018-07-10 18:57:10 274

转载 IDEA常用快捷键

从MyEclipse到IntelliJ IDEA——让你摆脱鼠标,全键盘操作 从MyEclipse转战到IntelliJ IDEA的经历我一个朋友写了一篇“从Eclipse到Android Studio”博文,于是心潮澎湃我也想...

2018-07-09 20:10:11 518

原创 Java Socket编程

代码已共享到GitHub:https://github.com/SomeoneMH/socket-tcp.githttps://github.com/SomeoneMH/socket-tcp.githttps://github.com/SomeoneMH/socket-tcp.githttps://github.com/SomeoneMH/socket-tcp.git

2018-07-09 14:46:54 196

原创 小白学Redis系列:主从复制

    Redis系统一般以"一主多从"的形式部署,以实现数据库读写分离,提高系统的容错性和降低单个Redis实例的负载压力。主数据库一般具有读和写的权限,而从数据库只有读权限。为了保证主从数据库数据的一致性,Redis提供了复制功能,使得主数据库中的数据向从数据库中同步。    Redis中实现主从数据库部署很简单,下面提供一个测试案例:在同一台服务器上分别开启两个数据库实例,端口号分别是637...

2018-07-07 12:25:54 265

原创 小白学Redis系列:Redis持久化

    Redis作为缓存数据库,区别于常规数据库的地方就在于Redis将数据存储在内存中,而不是硬盘中,因此数据的IO就十分快速,非常适合一些电商网站等数据IO频繁的场景。当然,内存中的数据在掉电之后就会被清空,而Redis的持久化功能使得内存中的数据能够以某种形式保存到硬盘中,当Redis重启时会自动从硬盘中恢复数据,从而保证数据不丢失。    Redis默认会将快照文件存储在Redis当前进...

2018-07-07 00:07:05 358

原创 小白学Redis系列:哨兵机制(下)

    在上篇文章中,我们模拟了哨兵进程的一次完整工作流程,我们将在本文继续探讨哨兵机制的工作原理。     在此之前,我们先插个题外话,实际上生产环境中对一个Redis系统一般不止部署一个哨兵,为了保证系统足够稳健(单个哨兵进程也有可能挂掉),我们一般同时使用多个哨兵监控整个系统。此时,哨兵不仅监控主从数据库,哨兵之间还需要相互监控,系统架构如下图所示:  好的,回到正题,回顾一下哨兵启动时的配...

2018-07-06 21:19:52 872

原创 小白学Redis系列:哨兵机制(上)

     Redis一般以一主多从的形式部署,以实现读写分离,减轻单个Redis实例的负载压力。今天我们来讨论下,在主数据库宕机停止服务的情况下,如何恢复主数据库,保持整个Redis系统的高可用性。方式一:手工通过从数据库恢复主数据库    手工通过从数据库恢复主数据是一个相对繁琐且危险的过程,操作不当可能导致整个Redis系统数据丢失。因此,手工操作时需要严格按照以下两步进行:从备选从数据库中选...

2018-07-06 17:30:25 1334 1

转载 Spring系列之 Bean的生命周期

Spring作为当前Java最流行、最强大的轻量级框架,受到了程序员的热烈欢迎。准确的了解Spring Bean的生命周期是非常必要的。我们通常使用ApplicationContext作为Spring容器。这里,我们讲的也是 ApplicationContext中Bean的生命周期。而实际上BeanFactory也是差不多的,只不过处理器需要手动注册。 转载请注明地址 http://www.cnb...

2018-07-02 08:41:39 193

原创 面向对象的SOLID法则

一、单一职责原则(SRP)定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。解决方案:遵循单一职责原则。分别建立两个类T1、T2,使T1完成职责P1功能,T2完成职责P2功能。这样,当修改类T1时,不会使职责P2发生故障风险;同理...

2018-06-28 23:17:29 284

原创 浅析设计模式:单例模式(Songleton)

    在实际编程中,我们可能有这样的需求:确保某个类在Java堆内存中只存在一个实例,这样的场景一般出现在该类实例作为控制器,或者在GUI编程中的视图窗口。    本文介绍单例模式的4中常用实现方式,并分析它们各自的优缺点:1)、饿汉式    饿汉式实现简单,能够满足大部分应用场景,即使是在并发环境下也能够保证单例模式的正确性。    但是饿汉式也存在一些弊端:饿汉式的实例在类加载的初始化阶段就...

2018-06-28 22:10:55 328

原创 JVM参数汇总

JVM参数汇总:参数名称含义默认值 -Xms初始堆大小物理内存的1/64(<1GB)默认(MinHeapFreeRatio参数可以调整)空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制.-Xmx最大堆大小物理内存的1/4(<1GB)默认(MaxHeapFreeRatio参数可以调整)空余堆内存大于70%时,JVM会减少堆直到 -Xms的最小限制-Xmn年轻代大小(1.4o...

2018-06-26 16:52:01 193

转载 JVM虚拟机调优参数与实战

原文出处:https://blog.csdn.net/kthq/article/details/8618052堆内存设置原理JVM堆内存分为2块:Permanent Space 和 Heap Space。Permanent 即 持久代(Permanent Generation),主要存放的是Java类定义信息,与垃圾收集器要收集的Java对象关系不大。Heap = { Old + NEW = {E...

2018-06-26 16:18:51 391

转载 SpringBoot中使用AOP

原文出处:http://blog.didispace.com/springbootaoplog/    AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是Spring框架中的一个重要内容,它通过对既有程序定义一个切入点,然后在其前后切入不同的执行内容,比如常见的有:打开数据库连接/关闭数...

2018-06-26 09:01:21 623

转载 深入理解代理与AOP

原文出处:https://my.oschina.net/huangyong/blog/161338 今天我要和大家分享的是 AOP(Aspect-Oriented Programming)这个东西,名字与 OOP 仅差一个字母,其实它是对 OOP 编程方式的一种补充,并非是取而代之。翻译过来就是“面向方面编程”,可我更倾向于翻译为“面向切面编程”。它听起有些的神秘,为什么呢?当你看完这篇文章的...

2018-06-25 14:55:35 254

转载 Nginx配置文件详解

原文出处:https://blog.csdn.net/tjcyjd/article/details/50695922Nginx的配置文件nginx.conf配置详解如下:user nginx nginx ;Nginx用户及组:用户 组。window下不指定 worker_processes 8;工作进程:数目。根据硬件调整,通常等于CPU数量或者2倍于CPU。 error_log  logs/er...

2018-06-24 00:40:35 784 1

原创 Oracle数据库常见对象

以下总结常见的数据库对象,供自己复习如有错误希望指出,共同学习!一、索引什么是索引?  索引是一种用于提高查询效率的数据库对象,使用索引可以快速定位数据,减少磁盘IO操作次数。索引是由数据库自动维护,删除或破坏索引不会对数据表造成影响,只会影响查询速度。索引的创建语法?create [unique| bitmap]  INDEX index_name ON table_name(column1[,...

2018-06-23 00:25:07 7075

转载 探秘JVM虚拟机之7种垃圾收集器

原文出处:https://crowhawk.github.io/2017/08/15/jvm_3/    如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。Java虚拟机规范中对垃圾收集器应该如何实现并没有任何规定,因此不同的厂商、版本的虚拟机所提供的垃圾收集器都可能会有很大差别,并且一般都会提供参数供用户根据自己的应用特点和要求组合出各个年代所使用的收集器。接下来讨论的收集...

2018-06-23 00:24:39 181

转载 CentOS7中安装Mysql数据库

 在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB。1 下载并安装MySQL官方的 Yum Repository[root@localhost ~]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noa...

2018-06-23 00:24:22 269

原创 java多线程之创建线程与死锁

线程创建篇    java中的线程创建有多种方式,笔者(ymh)这里分别根据线程执行完毕后是否有返回值讨论线程创建的四种方式。 1、通过继承Thread类重写run方法(无返回值) 示例代码: 2、通过实现Runnable接口(无返回值) 示例代码: &nbs...

2018-06-22 14:25:29 277

原创 java中的序列化与transient关键字

    序列化和transient关键字应该属于java中较高级的话题,笔者(ymh)今天花一点时间小结一些这部分知识,希望能给初学者一些帮助。若有错误希望指出,学无止境。转载请注明出处! 什么是序列化?       ...

2018-06-22 14:22:44 504

转载 vue.js前端项目部署到nginx服务器

原文出处:https://blog.csdn.net/sherry_chan/article/details/79055211 注:本文选择了nginx做web服务器。因为在本文vue前端项目中,需要从接口获取数据,可是数据与vue前端项目是在同一ip地址但不同端口号,所以需要跨域读取数据。本文的跨域处理是使用了ng...

2018-06-22 12:03:04 8143

转载 玩转Linux之常用指令篇

玩过Linux的人都会知道,Linux中的命令的确是非常多,但是玩过Linux的人也从来不会因为Linux的命令如此之多而烦恼,因为我们只需要掌握我们最常用的命令就可以了。当然你也可以在使用时去找一下man,他会帮你解决不少的问题。然而每个人玩Linux的目的都不同,所以他们常用的命令也就差异非常大,而我主要是用Linux进行...

2018-06-22 11:55:16 185

转载 Redis报错:protected mode is enabled

(error) DENIED Redis is running in protected mode because protected mode is enabledRedis protected-mode 是3.2 之后加入的新特性,在Redis.conf的注释中,我们可以了解到,他的具体作用和启用条件...

2018-06-22 11:52:30 708

转载 Redis客户端之Jedis

目前Redis大概有3中基于Java语言的Client:Jredis:https://github.com/alphazero/jredisJedis:https://github.com/xetorthio/jedisRedis4J:https://github.com/guming/redis4jJedis是官方提供的唯...

2018-06-22 11:49:42 282

转载 IDEA中Maven的常用配置

原文出处:https://blog.csdn.net/u013679744/article/details/66974790     maven配置几个问题记录一下在Idea中配置maven遇到的几个问题:        1. 看到网上说maven模板加载(模板...

2018-06-22 11:42:52 829

转载 Git使用:上传本地项目之GitHub

        很早之前就注册了Github,但对其使用一直懵懵懂懂,很不熟练。直到昨天做完百度前端技术学院的task,想把代码托管到Github上的时候发现自己对于Git的操作是如此之愚钝,所以今天决定把Git好好学习一遍,好让自己以后能更好地使用Github,主要还是通过Git教程...

2018-06-22 11:35:41 259

转载 编程原则浅析

作者:pengdai出处:https://www.cnblogs.com/pengdai一、开发原则S:单一职责SRPO:开放封闭原则OCPL:里氏替换原则LSPI:接口隔离法则D:依赖倒置原则DIP合成/聚合复用原则迪米特法则在软件开发中,前人对软件系统的设计和开...

2018-06-22 11:31:18 284

原创 浅析设计模式:复合模式(Composite)

复合模式(Composite)

2018-06-08 11:53:34 2464 1

原创 浅析设计模式:策略模式(Strategy)

策略模式(Strategy)

2018-06-08 10:36:44 1308

原创 浅析设计模式:责任链模式(Chain of Responsibility)

  先来看一个案例:     上述案例在现实生活中更像是一种"推卸责任"的行为,但在编程世界中,我们也许需要这种"推卸责任"的模式。这就是我们接下来要讨论的责任链模式(Chain of Responsibility )。什么是责任链模式? 将用于解决问题的对象(Handler)组成一条职责链,对于每一个对象,当自己能够解决问题时就必须解决,否则将问题传递给职责链中的下一个对象,即按照对象在职...

2018-06-07 14:55:22 394

原创 浅析设计模式:访问者模式(Visitor)

观察者模式(Visitor)

2018-06-07 00:15:58 4799 1

原创 浅析设计模式:装饰模式(Decorator)

装饰者模式

2018-06-06 12:40:35 234

原创 支付宝第三方登录具体实现

具体请参考官方文档:https://docs.open.alipay.com/263/105809/本文由于支付宝官方并没有提供网站第三方登录的demo,因此笔者结合自己的实践经验做如下总结。具体步骤:Step One:创建应用访问https://open.alipay.com/platform/home.htm,创建自己的应用,如下图因为我要实现的是网站使用支付宝登录,因此上图中选择"自定义接入...

2018-05-25 16:43:52 16599 2

原创 阿里云短信服务使用简介

笔者最近的SpringBoot项目中使用到了阿里云的短信服务,在此做些总结。阿里云短信服务官方指导教程:https://help.aliyun.com/document_detail/59210.html?spm=a2c4g.11174283.4.1.n6Pa55步骤:1、注册阿里云账号通过实名认证2、开通短信服务(开通免费)开通后可在控制台短信服务栏中查看3、创建Access Key,获取Acc...

2018-05-19 11:58:31 3914 2

Vue.js权威指南

Vue.js权威指南,从Vue.js基础入门到项目实践,适合Vue.js新手入门。

2018-06-09

Spring源码深度解析

《Spring源码深度解析》从核心实现和企业应用两个方面,由浅入深、由易到难地对Spring源码展开了系统的讲解,包括Spring的设计理念和整体架构、容器的基本实现、默认标签的解析、自定义标签的解析、bean的加载、容器的功能扩展、AOP、数据库连接JDBC、整合MyBatis、事务、SpringMVC、远程服务、Spring消息服务等内容。

2018-06-09

cboard官方手册

大数据可视化框架,界面和图表美观大方,Bootstrap原生支持移动端访问。

2018-06-09

MongoDB权威指南

MongoDB权威指南(高清完整版),高清完整版,仅供学习。

2018-03-13

空空如也

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

TA关注的人

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