自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

从前不爱吃面的大叔

一只站在树上的鸟儿,从来不会害怕树枝断裂,因为它相信的不是树枝,而是它自己的翅膀。

  • 博客(20)
  • 收藏
  • 关注

原创 Executor框架(1)

Thread和Runnable我们知道创建线程的2种方式,一种是直接继承Thread类,另外一种就是实现Runnable接口。public class Thread implements Runnable Thread其实也是实现了Runnable接口。提供了可以通过new Thread这种形式来完成异步任务的执行。但是因为这种直接new的形式不利于管理、维护以及Thread的后续...

2020-01-15 16:37:56 264

原创 Spring的扩展点有哪些

1、BeanFactoryPostProcessor新建自定义的bean工厂的后置处理器MyBeanFactoryPostProcessor,交给Spring管理MyBeanFactoryPostProcessor.javapackage springextends;import org.springframework.beans.BeansException;import org.s...

2019-12-04 15:25:13 228

原创 spring-framework源码——AOP

代码Github地址:https://github.com/abelzha/spring-framework代码包含springframework 5.2.0.BUILD-SNAPSHOT版本源码1. 示例代码业务类aspectdemo.Person.javapackage aspectdemo;import org.springframework.stereotype.Compone...

2019-12-03 15:45:52 241

原创 Bean的初始化干预方式二

1. 代码示例2. 自定义初始化操作org.springframework.beans.factory.InitializingBean对beanFactory设置过的属性进行校验或者添加自定义初始化。/* * Copyright 2002-2018 the original author or authors. * * Licensed under the Apache Licen...

2019-12-03 09:43:09 178

原创 Spring启动—Bean的初始化顺序

通过这段代码作为分析的入口。以下分析都基于该示例,完整代码见:https://github.com/abelzha/spring-frameworkpublic class InitMain { public static void main(String[] args) { AnnotationConfigApplicationContext context = new Annotati...

2019-12-02 09:04:28 2275

原创 bean初始化的干预手段一

bena的初始化的过程中, 我们作为spring框架的使用者,spring允许我们干预bean的生命周期过程。代码Github地址:https://github.com/abelzha/spring-framework代码包含springframework 5.2.0.BUILD-SNAPSHOT版本源码1. 干预方法通过@Bean注解指定initMethod和destroyMetho...

2019-11-28 10:34:48 568

原创 Java中Class、Object和Spring中Bean、BeanFactory的基础概念

Java语言中,对象(Object)是类(Class)的实例。Bean是Spring提出的概念。JavaJava是面向对象语言。类(Class)类是对同一类事物的属性和行为的高度模拟。类可以解释为:种类,类别,类型。在自然界中,物以类聚,比如鸟类、人类、汽车类、花草类等等。同一个事物从不同的维度又可以划分到不同的种类里,比如鸟类和人类都可以划分成动物类, 同一个种类还可以继续划分成跟细...

2019-11-25 14:30:20 731

原创 SpringMVC源码分析

一般用户从浏览器发出的请求会先到我们的web服务器(如:Nginx、Apache等),然后转发至应用服务器(如:Tomcat等),而Tomcat是Servlet容器,接收、处理Servlet请求、返回结果,Tomcat的功能可以简单理解成将浏览器的请求封装成javax.servlet.http.HttpServletRequest和javax.servlet.http.HttpServletRes...

2019-05-09 23:53:43 205

原创 spring5源码阅读-源码环境搭建

一、我的环境系统版本:1、MacOS 10.12.6开发版本工具:1、spring-framework-5.0.13.RELEASE2、gradle4,93、jdk1.8.0_1214、IntelliJ IDEA 2017.2.3假设以上软件都已安装完成。二、源码下载地址https://github.com/spring-projects/spring-framework/ta...

2019-05-09 17:25:56 1883 6

转载 线程池基础知识整理

最近换了工作,选择了人生中的第二家公司,刚来这家公司感觉这家公司的流量可能比我上一家公司的网站流量要大,所以在入职第一周开始学习并发编程的相关技术。因为完全是自己自学的思路,所以学习的路径可能比较混乱。首先我觉得需要对多线程有个宏观的概念。 下图是摘抄自网上,其中黄色的代表接口,蓝色的代表类。

2019-04-19 14:42:52 279

原创 windows平台服务监控邮件报警批处理脚本

目前项目缺少运维人员,作为JAVA研发,只能硬着头皮上,通过一天的学习,总结一哈。批处理定义:顾名思义,批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT或者CMD。这些命令统称批处理命令。一、脚本目录1.blat.dll、blat.exe :发邮件的插件Blat 是一个命令行发邮件的小工具,仅支持简单的SMTP协议,需要SMTP服务器的支持。据说...

2019-04-19 10:27:20 3252

原创 springcloud的config组件使用

一、config组件支持两者配置文件获取方式 springcould搭建的微服务的配置文件的获取方式有两种。它支持配置服务放在配置服务的内存中(即本地),也支持放在远程Git仓库中。在spring cloud config 组件中,分两个角色,一是config server,二是config client。文章基于的版本说明: spring boot版本 2.0.1.RELEASE...

2018-05-28 11:43:01 623

原创 springcloud之config配置的动态刷新和config的高可用改造

一、使用场景    通过后台动态改变了配置参数以动态改变业务,实现开关的效果。二、配置过程前提:假设你已经能够实现通过配置可以获取远程仓库的配置信息。总结:(1)验证步骤:            ① 先启动config-server,再启动config-client,请求http://localhost:8884/hi,显示“你好zhangjun”            ②修改远程仓库的myNam...

2018-05-25 16:44:51 10469 3

原创 oracle中to_char函数转换数字格式不正确的问题

今天在工作中遇到将金额的number类型转换成char类型,但是使用to_char()函数显示的结果一直期望的结果。经过在网上查阅一番,总结如下:我们使用Oracle 的SQL 函数 to_char可以实现这种转换。 这个函数用来将DATE或NUMBER数据类型转换成可显示的字符串,格式是to_char(number_type, format_mask)。 格式’999.99’,9表...

2018-04-10 11:50:54 6385

原创 mybatis的test条件中为什么0和空值是等价

工作中遇到的坑,随时补充。欢迎留言一、mybatis 非空判断数字0为什么是false<if test="id !=null and id !='' "> and fr.id = #{id}</if>如上截取的mybatis的代码片段,当id的值为数字0时,test的判断结果是false。以上写法对id为St

2018-04-09 18:34:20 653

原创 java内存模型之synchronized、volatile关键字

一、概念Java内存模型(Java Memory Model):描述了Java程序中各种变量(主要指线程共享变量)的访问规则,以及在JVM中将变量存储到内存和从内存中读取变量这样的底层细节。工作内存:主内存:共享变量:如果一个变量在多个线程的工作内存中都存在副本,那么这个变量就是这几个线程的共享变量。可见性:一个线程对共享变量值的修改,能够及时的被其他线程看到。二、JVM规...

2018-04-02 23:44:57 141

转载 Linux概览

一、概述Linux是一套自由加开放源代码的类Unix操作系统,诞生于1991年10月5日(第一次正式向外公布),由芬兰学生Linus Torvalds和后来陆续加入的众多爱好者共同开发完成。Linux是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议,可支持32位和64位硬件。Linux继承了Unix以网络为核...

2017-12-22 16:18:40 184

原创 JVM内存模型(线程栈)

java初级程序员和中级程序员的分界的知识点有:Linux、JVM、多线程、设计模式,所以最近开始啃JVM,以下文字留作笔记以供复习。Java内存模型顾名思义,"模型"表明这是一个虚拟出来的东东,jvm规范虚拟出这个模型的目的主要是为了屏蔽计算机硬件层面的概念,毕竟JVM的目的就是干这个的。在计算机硬件层面的内存的概念稍微说一点,之前学校里学的都忘得差不多了(其实当初估计也没认真听课)。而...

2017-12-05 14:50:47 867

原创 RocketMQ基础概念及使用总结

一.了解RocketMQ?rocketMQ是阿里开源的一款十分优秀的消息队列,rocketMQ具有很多其他消息队列不具有的特性,像事务消息,推拉结合的Api等等。更重要的是rocketMQ是用java开发的,像RabbitMQ这种用erlang进行开发,对于我们搞java的来说学习成本不言而喻。并且经历了双11的数据洪峰的考验,rocketMQ已经加入了apache。成为apache的顶级项目

2017-11-20 10:34:05 13447

原创 RocketMQ集群部署文档(2m-2s-async模式)

第一章、安装文件的准备1、64bit OS, Linux/Unix/Mac is recommended;2、64bit JDK 1.8+;3、Maven 3.2.x4、Git第二章、集群安装JDK每台机器都需要安装,maven和git只需要一台安装即可,编译好rocketmq之后使用scp命令拷贝到其他机器。 1、安装64位jdk配置环境变量J

2017-11-20 10:17:17 6376 2

空空如也

空空如也

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

TA关注的人

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