- 博客(69)
- 资源 (1)
- 收藏
- 关注
原创 SpringBoot源码解读四【spring.factories机制】
SPI机制SPI的全名为Service Provider Interface 简单来讲,系统里抽象的各种模块,可以有很多不同的实现方案,比如xml解析模块、加密模块等。面向对象编程,模块之间基于接口编程,模块之间不对实现类进行硬编码。为了实现模块装配的时候不再程序里动态指明。一旦代码里涉及具体的实现类,就违反了可插拔的原则,这就需要一种服务发现机制。Java SPI:为某个接口寻找服务实现的机制。spring.factories机制它在META-INF/spring.factories文件中配置接
2022-05-11 14:14:34
646
原创 SpringBoot源码解读三【启动过程】
前文我们分别谈了框架引用、认识框架。现在就正式通过启动过程代码跟踪,分析内部的实现逻辑研究源码的方法不要死扣细节,容易蒙(!!!)关注方法上的注释优秀的代码,在命名上很有讲究,见名知意源码启动类package com.walker.springboot.study;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.Sp
2022-05-11 10:45:24
231
原创 SpringBoot源码解读二【认识框架】
SpringBoot源码解读SpringBoot是 Pivotal 团队在 Spring 的基础上提供的一套全新的开源框架,其目的是为了简化 Spring 应用的搭建和开发过程。Spring Boot 去除了大量的 XML 配置文件(约定大于配置),简化了复杂的依赖管理(封装多种starter,并提供自定义封装starter的相关业务)。回顾项目开发的经历根据我的工作经历,把项目划分这些阶段。第一个阶段(没有IOC,Servlet、Jsp)特点对象的生成通过new关键字对象间的依赖关系是通
2022-05-07 15:54:51
517
原创 restTemplate多文件请求
restTemplate多文件请求重点注意:请求的头 headers.setContentType(MediaType.MULTIPART_FORM_DATA);List<MultipartFile> files = reqContractCreateBean.getFiles();//获取临时文件目录String tempDir = appConfigProperties...
2020-01-16 10:55:00
631
原创 java动态类加载
最近做项目,有个需求需要实现动态类加载,通过尝试成功解决了该问题,记录下来,以便未来碰到此类问题有一个参考. package com.demo;public class Person { protected String name; protected String job; public Person(String name, String job) { super();...
2020-01-16 10:42:29
172
原创 Log4j源码分析
文章目录介绍使用源码跟踪初始化日志输出总结介绍Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进...
2019-10-22 10:51:38
422
原创 Springboot 多模块项目打包配置
Springboot多模块项目打包配置解决springboot多模块下如何打包的问题parent的pom.xml<build> <plugins> <!-- 注意: 因为我们不需要demo-parent是一个可运行的项目,所以修改原来的打包方式为maven打包方式 --> <plugin> <groupId&g...
2019-10-16 13:31:56
256
原创 设计模式(外观模式)
文章目录外观模式定义简述使用场景例子类图实现外观模式定义为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用,来隐藏系统的复杂性简述定义一个高层接口,提供给其他子系统使用.使用场景例子1、去医院看病,可能要去挂号、门诊、划价、取药,让患者或患者家属觉得很复杂,如果有提供接待人员,只让接待人员来处理,就很方便。 2、JAVA 的三层开发...
2019-10-10 16:19:05
159
原创 设计模式(观察者模式)
文章目录观察者模式定义简述使用场景例子类图实现观察者模式定义在对象之间定义一对多的依赖,当一个对象发生改变,依赖它的对象会收到通知并自动更新.简述发布订阅模式,发布者发布消息,订阅者获取消息.使用场景例子关注微信公众号,当公众号发布消息时,关注的用户就可以收到推送消息. 取消关注,则无法收到消息类图
目录使用Java插件使用Java插件示例一build.gradleapply plugin: 'java'示例二build.gradleplugins { id 'java'}
2019-09-20 17:24:01
179
原创 Gradle三(构建入门-基础脚本)
目录Hello world编码构建脚本任务依赖动态任务操作现有任务快捷方式定义任务额外的任务属性默认任务DAG配置外部依赖Hello worldbuild.gradletask hello { doLast { println 'Hello world!' }}执行> gradle -q helloHello world!编码构建脚本示例一build....
2019-09-19 17:11:21
135
原创 Gradle三(属性)
目录Gradle属性声明项目中属性访问项目中属性声明task动作访问DefaultTask属性定义task依赖Gradle属性声明项目中属性项目的根目录下新增gradle.properties文件exampleProp=myValuesomeOtherProp=455访问项目中属性查看属性> gradle properties使用在这里插入代码片tas...
2019-09-19 16:22:58
219
原创 Gradle二(教程)
目录Projects 和 tasks教程初始化项目创建任务插件应用浏览和调试构建浏览分析和调试发现可以属性Projects 和 tasksGradle 里的任何东西都是基于这两个基础概念:projects ( 项目 )tasks ( 任务 )每一个构建都是由一个或多个 projects 构成的. 一个 project 到底代表什么取决于你想用 Gradle 做什么. 举个例子, 一个...
2019-09-19 11:34:17
3139
原创 Gradle一(安装)
Gradle一(安装)安装Gradle准备阶段下载与安装设置环境变量运行并测试您的安装安装Gradle很高兴能向大家介绍 Gradle, 这是一个构建系统, 我们认为它是 java ( JVM ) 世界中构建技术的一个飞跃.Gradle 提供了:一个像 Ant 一样的非常灵活的通用构建工具一种可切换的, 像 maven 一样的基于合约构建的框架支持强大的多工程构建支持强大的依赖管理...
2019-09-19 10:24:04
161
原创 Hyperledger Fabric1.4 系列七(多机部署解决方案)
背景hyperledger fabric 官网中给出的基本都是单机运行多个容器。生产使用时不可能去单机来部署区块链服务。那么如何实现多机部署,成了一个关键. 文章主要谈一下如何实现多机部署的思路.原理方案一 服务器集群.k8s docker集群搭建swarm方法二 修改容器host查看docker-compose配置文件描述:https://docs.docker.c...
2019-04-08 11:23:25
2110
4
原创 Hyperledger Fabric1.4 系列六(使用couchdb)
编排文件配置根据官网给出方案:docker-compose -f docker-compose-cli.yaml -f docker-compose-couch.yaml up -ddocker-compose-couch.yamlcouchdb0: container_name: couchdb0 image: hyperledger/fabric-couchdb ...
2019-04-05 00:45:05
1065
原创 Hyperledger Fabric1.4 系列五(Fabric网络初始化及合约操作)
文章目录初始化脚本创建channel节点加入channnel节点peer0.org1和peer0.org2更新为anchor节点peer0.org1和peer0.org2节点上安装合约peer0.org2节点上实例化合约peer0.org1节点上查询合约peer0.org1和peer0.org2节点上执行invoke操作peer1.org2节点上安装合约peer1.org2节点上查询合约初始化脚...
2019-04-04 23:59:33
1279
原创 Hyperledger Fabric1.4 系列四(Fabric个各容器启动过程)
文章目录启动命令`orderer`信息`peer0.org1.example.com` 信息cli 信息总结启动命令查看byfn.sh脚本 具体执行的命令:# $COMPOSE_FILE=“docker-compose-cli.yaml”docker-compose -f $COMPOSE_FILE up -d 2>&1注: docker-compose 配置文件说明文...
2019-04-04 16:48:53
1173
原创 Hyperledger Fabric1.4 系列一(部署)
】准备curl安装安装最新版本的curl. 执行更新操作docker安装要求:Docker version 17.06.2-ce or greater is required。不低于17.06.2-ce版本.#官网文档;https://docs.docker.com/#下载地址https://download.docker.com/linux/ubuntu/dists/ 从po...
2019-03-29 15:52:53
1501
1
原创 JAVA并发编程系列一(并发简介)
并发介绍概念并发,在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行(多核cpu情况下指的是同一个核)出现的原因没有并发带来的坏处(反证法)资源利用率 输入输出操作时会等待造成资源浪费公平性 不同的程序对资源有平等的使用权便利性 工作是串行,带来使用的不方便风险安...
2019-03-26 10:40:41
150
原创 springboot系列二(使用springboot)
引入方式继承<!-- Inherit defaults from Spring Boot --><parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <...
2019-03-25 11:09:33
156
原创 springboot 系列一(环境搭建和项目介绍)
介绍Springboot这些年越来越普及,目前开发项目中也采用springboot并开发了几个相关项目。不过一直没有体系的去学习,最近工作不忙,抽时间详细的学习一下,并记录学习过程来提高自己.学习资料来自于springboot官网提供的文档:https://docs.spring.io/spring-boot/docs/2.1.3.RELEASE/reference/htmlsingle/环...
2019-03-25 10:40:39
213
原创 Linux定时清理日志文件
清理脚本新建cleanLog.sh文件. 内容如下:#!/bin/shfind /data/app/aaa/log /data/app/bbb/log -mtime +100 -name "*.log" -exec rm -rf {} \;脚本意思:查找/data/app/aaa/log、/data/app/bbb/log两个目录下 修改时间超过100天的以.log结尾的文件,执...
2019-03-15 16:46:39
209
原创 解决eclipse中maven项目更新导致jdk版本变化
问题描述:eclipse创建maven项目时,默认jdk版本为1.5。实际编译和运行需要1.8+,导致每次更新完maven项目自动变为1.5。都需要再次修改jdk版本.解决方法一: 修改pom文件,指定jdk版本<build> <plugins> <plugin> <groupId>org.apache.ma...
2019-03-08 09:30:27
1090
原创 Redis主从复制和高可用方案
Redis 安装下载地址:https://redis.io/downloadtar xzf redis-5.0.3.tar.gzcd redis-5.0.3make启动脚本src/redis-server主从复制方案从的配置文件修改#replicaof &amp;lt;masterip&amp;gt; &amp;lt;masterport&amp;gt;replicaof 127.0.0.1 637...
2019-03-06 14:11:05
615
原创 nginx http代理、负载均衡、tcp代理转发 配置
参考文档:https://blog.youkuaiyun.com/fgf00/article/details/79276127一、nginx http 代理nginx http 代理通过proxy_set_header,返回客户端真实IP地址及端口,而不是代理主机ip#proxy ngx 代理不支持 https,有https需求可以用squidserver { listen 9998;...
2019-02-22 16:51:30
474
原创 Apache cxf 3.2.7调用webservice实现
本文主要记录一下java maven项目基于cxf调用webservice的实现.参考文档:http://cxf.apache.org/docs/index.html类自动生成pom配置&amp;lt;plugin&amp;gt; &amp;lt;groupId&amp;gt;org.apache.cxf&amp;lt;/groupId&amp;gt; &amp;lt
2019-02-22 15:49:38
1068
原创 Linux下安装FTP服务器及配置方法
本文操作以ubuntu16.0.4版本为例安装apt-get install vsftpd配置安装完成后,默认会启动vsftpd服务,配置文件: /etc/vsftpd.conf
2019-02-20 15:06:19
255
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人