自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

码农云帆哥的博客

求知若渴,虚心若愚。热爱编程,热爱生活。

原创 新人一看就懂:Spring Cloud Eureka服务注册发现的框架demo

Eureka是由Netflix开发的一款服务治理开源框架,Spring-cloud对其进行了集成。Eureka包含两个组件:Eureka Server和Eureka Client。Eureka服务端是一个服务注册中心(Eureka Server),提供服务的注册和发现,即当前有哪些服务注册进来可供使用;

2019-12-26 12:04:04 261 2

原创 新人一看就懂:Dubbo+Zookeeper的RPC远程调用框架demo

Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和Spring框架无缝集成。Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现

2019-09-24 23:42:26 3192 65

原创 新人一看就懂:Spring Boot+Spring mvc+Mybatis的基础框架demo

Spring Boot的设计目的是来简化新Spring应用的初始搭建以及开发过程,大大减少了代码量,通过这篇文章你可以清楚的看到。这是一个基于Spring Boot的简单demo,希望读者可以通过这篇文章大概能看懂这一个简单的框架搭建。后续我会陆续更新,微服务架构(Spring Boot、Spring Cloud)、分布式架构(Dobbo+Zookeeper)、大数据架构以及源码解析等相关的文章,感兴趣的话可以关注一下。

2019-07-29 08:41:54 14893 434

原创 Java架构师技术学习清单(2019修订版)

想成为java架构师,首先你自身得是一个高级java工程师,会使用各种框架并且很熟练,且知晓框架实现的原理。架构师是一个既需要掌控整体又需要洞悉局部瓶颈并依据具体的业务场景给出解决方案的团队领导型人物。一个架构师得需要足够的想像力,能把各种目标需求进行不同维度的扩展,为目标客户提供更为全面的需求清单。架构师在软件开发的整个过程中起着很重要的作用。

2018-08-02 22:24:48 1308 4

原创 Linux上安装Mycat和配置连接MySQL 8
原力计划

本篇文章主要介绍Mycat的安装和相关配置,以及阐述了连接MySQL 8遇到的问题,并提供了解决方案。

2020-06-02 02:14:00 428

原创 【Spring Boot实战与进阶】集成Druid数据库连接池和监控
原力计划

Druid是阿里巴巴开源平台上的一个项目,整个项目由数据库连接池、插件框架和SQL解析器组成。该项目主要是为了扩展JDBC的一些限制,可以让程序员实现一些特殊的需求,比如向密钥服务请求凭证、统计SQL信息、SQL性能收集、SQL注入检查、SQL翻译等,程序员可以通过定制来实现自己需要的功能。

2020-05-24 20:55:07 384

原创 Linux上搭建MySQL主从同步详解
原力计划

主从同步使得数据可以从一个数据库服务器复制到其他的服务器上。在复制数据时,一个服务器充当主服务器(master),其余的服务器充当从服务器(slave)。

2020-04-29 13:04:38 1247

原创 为什么要分表分库?

数据库数据会随着业务的发展而不断增多,因此数据操作,如增删改查的开销也会越来越大。再加上物理服务器的资源有限(CPU、磁盘、内存、IO 等)。最终数据库所能承载的数据量、数据处理能力都将遭遇瓶颈。

2020-04-25 16:30:28 1593 1

原创 强烈推荐几款IDEA开发必备的插件,实测非常好用
原力计划

IDEA有很多优秀的插件,使用它们大大增加了开发效率。我推荐几款好用的插件:CodeGlance、RestfulToolkit、Easy Code、GsonFormat、Statistic、Rainbow Brackets、Translation、Lombok、Maven Helper、Alibaba Java Code Guidelines。

2020-04-17 02:51:56 1646

原创 一文读懂分布式事务及其解决方案
原力计划

事务提供一种机制将活动中涉及所有操作纳入到一个不可分割的执行单元。整个单独单元作为一个不可分割的整体,如果单元中某条sql语句一旦执行失败或者产生错误,整个单元将会回滚,也就是所有受到影响的数据将会返回到事务开始以前的状态;如果单元中的所有sql语句均执行成功,则事务被顺利执行。

2020-04-12 20:16:34 360

原创 一个小码农的四年工作回忆录
原力计划

时间过得真快,想当初还没毕业时,特羡慕有工作经验的人,而现在工作四年了,又开始怀念刚毕业那会儿,多好的年华,一切那么美好,一切都充满希望。

2020-04-09 01:12:51 12276 91

原创 【Spring Boot实战与进阶】集成RabbitMQ的实例详解
原力计划

RabbitMQ是采用 Erlang语言实现AMQP协议的消息中间件,AMQP全称是 Advanced Message Queue Protocolo,高级消息队列协议。它是应用层协议的一个开放标准,为面向消息的中间件设计,基于此协议的客户端与消息中间件可传递消息,并不受产品、开发语言等条件的限制。

2020-03-22 18:17:18 355 1

原创 23种设计模式实例详解(一)
原力计划

软件设计模式(Design pattern),又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。

2020-03-20 21:09:27 1451

原创 Nginx的安装配置教程

Nginx 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点开发的。Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

2020-03-19 01:03:33 549

原创 【Spring Boot实战与进阶】过滤器和拦截器的使用及其区别

过滤器是处于客户端与服务器资源文件之间的一道过滤网,在访问资源文件之前,通过一系列的过滤器对请求进行修改、判断等,把不符合规则的请求在中途拦截或修改。也可以对响应进行过滤,拦截或修改响应。

2020-01-14 22:50:18 1131

原创 【Spring Boot实战与进阶】集成邮件发送的实例详解

在我们的项目中,通常会用到发邮件的需求,比如说:系统异常的预警、用户注册的邮箱验证、异地登录的提醒等等。在Spring Boot中,发送邮件使用的是Spring提供的JavaMailSender,其提供了许多简单易用的方法,可发送简单的邮件、HTML格式的邮件、带附件的邮件,并且可以创建邮件模板。

2020-01-11 22:46:30 278 2

原创 还用Date表示时间?LocalDateTime看这里

当工作中遇到时间处理,我们是否首先想到JAVA提供的Date和Calendar,用于处理日期、时间的类,包括创建日期、时间对象,获取系统当前日期、时间等操作。

2020-01-08 18:42:46 542 1

原创 【Spring Boot实战与进阶】Spring Boot Devtools实现热部署

在我们平时的日常开发工作中,修改了Java代码或者配置文件的时候,必须手动重启项目才能生效。所谓的热部署就是在你修改了后端代码后不需要手动重启,工具会帮你快速的自动重启使其生效。

2019-12-31 22:28:46 394

原创 【Spring Boot实战与进阶】如何搭建Spring Boot Admin应用监控台

Spring Boot Admin(SBA)是一款基于Actuator开发的开源项目,用于管理和监控Spring Boot应用程序。应用程序注册到我们的Spring启动管理客户端(通过HTTP)或使用Spring Cloud(例如Eureka)发现。UI只是一个AngularJs应用程序,位于Spring启动Actuator endpoints之上。以图形化界面的方式展示Spring Boot应用的配置信息、Beans信息、环境属性、线程信息、JVM状况等。

2019-12-31 22:10:17 529 2

原创 【Spring Boot实战与进阶】如何使用Actuator监控Spring Boot应用

Spring Boot包含许多附加功能,可以帮助您在将应用程序推向生产环境时对其进行监视和管理。您可以选择使用HTTP端点或JMX来管理和监视应用程序。审计、健康状况和指标收集也可以自动应用到您的应用程序中。

2019-12-31 02:42:56 285

原创 【Spring Boot实战与进阶】学习目录

Spring Boot是很优秀的框架,它的出现简化了新Spring应用的初始搭建以及开发过程,大大减少了代码量,目前已被大多数企业认可和使用。这个专栏将对Spring Boot框架从浅入深,从实战到进阶,不但我们要懂得如何去使用,还要去剖析框架源码,学习其优秀的设计思想。

2019-12-23 09:43:28 591 4

原创 【Spring Boot实战与进阶】定时任务注解@Scheduled的使用

1、cron 表达式格式: [秒] [分] [小时] [日] [月] [周] [年]

2019-11-29 18:07:42 309

原创 Zookeeper的基本命令大全

1、列出节点ls pathls -s path //包含该节点的详细信息,如子节点总数等2、查看节点状态stat pathcZxid = 0x14f //创建节点的IDctime = Thu Nov 07 01:02:53 CST 2019 //节点的创建时间mZxid = 0x14f //修改节点IDmtime = Thu Nov 07 01:02:53 CST 2019 ...

2019-11-24 22:31:05 2940 2

原创 【Spring Boot实战与进阶】集成Mybatis-Plus的实例详解

MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

2019-11-10 15:47:08 769

原创 【Spring Boot实战与进阶】单元测试JUnit的使用

JUnit是一款优秀的开源Java单元测试框架,也是目前使用率最高最流行的测试框架,开发工具Eclipse和IDEA对JUnit都有很好的支持,JUnit主要用于白盒测试和回归测试。

2019-11-09 16:13:23 918 2

原创 【玩转Linux】Java项目的启动停止shell脚本

1、启动脚本(start.sh)echo '3'sleep 1echo '2'sleep 1echo '1'sleep 1nohup java -jar blog-0.0.1-SNAPSHOT.jar & tailf nohup.outnohup和&有什么区别?&:后台运行;关闭session时程序关闭。nohup:前台运行,使用Ctrl + C,程序...

2019-11-08 19:00:52 328

原创 阿里云CentOS服务器的安全设置及防黑加固

之前服务器有几次被攻击的事件(ssh暴力破解、恶意程序、挖矿程序等),其中一次严重事件,服务器无法登录,联系阿里云售后也无法恢复,只能重置。所以决定认真学习下安全设置,并整理成博文,以供需要的人做参考。...

2019-10-31 08:08:54 464 4

原创 Docker部署web项目

docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

2019-10-27 23:18:02 1101 3

原创 Docker的常用命令及其使用

1、获取镜像docker pull NAME[:TAG]docker pull centos:latest2、查看镜像列表,列出本地的所有imagesdocker images [OPTIONS][NAME]docker images centos3、删除镜像,从本地删除一个已经下载的镜像docker rmi IMAGE [IMAGE...]docker rmi centos:...

2019-10-23 02:48:05 2083 1

原创 Linux上安装Docker

1、验证你的CentOS 版本是否支持 Docker(要求 CentOS 系统的内核版本高于 3.10 )。uname -r2、使用ROOT权限登录CentOS,并将yum包更新到最新。yum update3、如果安装过旧版本的话,需要卸载。yum remove docker docker-common docker-selinux docker-engine4、安装需要的软件...

2019-10-23 02:45:48 1622

原创 【Spring Boot实战与进阶】Redis配置Fastjson进行序列化和反序列化

FastJson是阿里开源的一个高性能的JSON框架,FastJson数据处理速度快,无论序列化(把JavaBean对象转化成Json格式的字符串)和反序列化(把JSON格式的字符串转化为Java Bean对象),都是当之无愧的fast;功能强大(支持普通JDK类,包括javaBean, Collection, Date 或者enum);零依赖(没有依赖其他的任何类库)。

2019-10-19 15:37:38 499 2

原创 【Spring Boot实战与进阶】AOP的两种动态代理(JDK和Cglib)

JDK和Cglib两种动态代理方式区别1、java动态代理是利用反射机制生成一个实现代理接口的匿名类,在调用具体方法前调用InvokeHandler来处理。而Cglib动态代理是利用asm开源包,对代理对象类的class文件加载进来,通过修改其字节码生成子类来处理。

2019-10-07 20:52:58 901

原创 【Spring Boot实战与进阶】JdbcTemplate的使用

Spring对数据库的操作在Jdbc上面做了更深层次的封装,而JdbcTemplate便是Spring提供的一个操作数据库的便捷工具。我们可以借助JdbcTemplate来执行所有数据库操作,例如插入,更新,删除和从数据库中检索数据,并且有效避免直接使用Jdbc带来的繁琐编码。方法释义execute可以用于执行任...

2019-10-07 18:03:02 246

原创 【Spring Boot实战与进阶】全局异常处理@ExceptionHandler+@ControllerAdvice的使用

ExceptionHandler, 方法注解, 作用于 Controller 级别. ExceptionHandler 注解为一个 Controler 定义一个异常处理器.ControllerAdvice, 类注解, 作用于 整个 Spring 工程. ControllerAdvice 注解定义了一个全局的异常处理器.

2019-10-06 14:55:11 238

原创 【Spring Boot实战与进阶】Controller的使用及获取请求参数的示例

返回Json字符串或者跳转到页面(取决于是否有@ResponseBody,示例使用的类都用注解@RestController,因此包含@ResponseBody,故返回Json字符串)。

2019-10-01 17:02:52 304

原创 【Spring Boot实战与进阶】自定义事件及监听

这里的自定义事件及监听,其实早在Spring框架就有完善的事件监听机制。Spring的事件为Bean与Bean之间的消息通信提供了支持。当一个Bean处理完任务后,希望另一个Bean知道并能做相应的处理,这时就需要让另一个Bean监听当前Bean的所发送的事件。

2019-09-28 18:58:22 283 4

原创 Java面试题(基础篇)

1、面向对象三大特征封装、继承、多态。2、简述Java中的8种基本数据类型字符型:char布尔型:boolean数值型: byte、short、int、long、float、double注意:String不是基本数据类型,是引用类型。这种数据的变量不需要使用new创建,他们不会在堆上创建,而是直接在栈内存中存储,因此会更加高效。3、可以用浮点型表示金额吗?由于计算机中保存的小数其...

2019-09-25 10:38:25 218

原创 【Spring Boot实战与进阶】条件注解@Conditional的使用

Spring Boot 是根据配置文件中的内容,决定是否创建 bean,以及如何创建 bean 到 Spring 容器中,而 Spring boot 自动化配置的核心控制,就是 @Conditional 注解。

2019-09-15 17:07:27 269

原创 【Spring Boot实战与进阶】自定义启动图案

1、在Spring Boot启动的时候会有一个默认启动图案。2、我们在src/main/resources下新建一个banner.txt。3、通过http://patorjk.com/software/taag网站生成字符,将网站生成的字符复制到banner.txt中。4、这时再启动程序,图案将变为如图所示。5、关闭banner的方式SpringApplication app = n...

2019-08-31 23:16:35 299

原创 【深入理解JVM】详解GC日志参数配置及日志分析

一、首先模拟一个JVM堆内存不足的异常场景。public class GCTest { public static void main(String[] args) { List<Object> d = new ArrayList<Object>(); while(true){ d.add(new GCTest()); } }...

2019-07-31 02:22:24 2398 3

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