- 博客(58)
- 资源 (3)
- 收藏
- 关注
原创 【Java架构-版本控制】-Gitlab安装
Git作为版本控制工具,使用非常广泛,在此咱们由浅入深,分三篇文章(Git基础、Git进阶、Gitlab搭那家)来深入学习Git
2023-08-28 16:01:53
796
原创 【Java架构-版本控制】-Git进阶
Git作为版本控制工具,使用非常广泛,在此咱们由浅入深,分三篇文章(Git基础、Git进阶、Gitlab搭那家)来深入学习Git
2023-08-28 15:57:59
1171
1
原创 【Java架构-版本控制】-Git基础
Git作为版本控制工具,使用非常广泛,在此咱们由浅入深,分三篇文章(Git基础、Git进阶、Gitlab搭那家)来深入学习Git
2023-08-28 15:40:36
1758
原创 【Java架构-包管理工具】-Maven私服搭建-Nexus(三)
Maven作为Java后端使用频率非常高的一款依赖管理工具,在此咱们由浅入深,分三篇文章(Maven基础、Maven进阶、私服搭建)来深入学习Maven,此篇为开篇主要介绍Maven私服搭建-Nexus。
2023-08-24 13:49:29
992
原创 【Java架构-包管理工具】-Maven进阶(二)
Maven作为Java后端使用频率非常高的一款依赖管理工具,在此咱们由浅入深,分三篇文章(Maven基础、Maven进阶、私服搭建)来深入学习Maven,此篇为开篇主要介绍Maven进阶知识,包含坐标、依赖、仓库、生命周期、插件、继承。
2023-08-24 13:36:37
1465
原创 【Java架构-包管理工具】-Maven基础(一)
Maven作为Java后端使用频率非常高的一款依赖管理工具,在此咱们由浅入深,分三篇文章(Maven基础、Maven进阶、私服搭建)来深入学习Maven,此篇为开篇主要介绍Maven概念、模型、安装配置、基本命令Maven是跨平台的项目管理工具,主要服务于Java平台的项目构建和依赖管理。
2023-08-24 12:18:00
1532
原创 【Spring源码解析】-1.源码编译
下载源码下载地址:spring.io->projects->Spring Framework->github spring源码托管选择tag:找到最新release源码下载spring 压缩包,并解压编译源码进入spring解压包修改build.gradle文件,将仓库地址改为阿里云gradle依赖仓库buildscript { repositories { maven { url 'http://maven.aliyun.com/nexus/cont
2021-11-09 22:53:56
451
原创 【spring应用】-整合策略模式
1.概述在实际开发中通常遇到根据传入参数不同选择不同的service执行相应的逻辑,例如:商场结账有多种结算模式,会员以会员价结算,内部员工以内部员工价结算,普通客户按原价结算,后端实现就会根据客户身份不同选择不同的结算方式,通常以if…else…方法处理,但如果客户类型较多,计价模式过多那么将会写许多if…else分支,显然代码层面不友好,而且也不利于后期业务扩展和维护,因此我们可以选择策略模式实现。2.代码继承关系图我们定义了接口userDao,它有两个实现分别为userDaoAImpl和u
2020-08-20 07:35:28
286
1
原创 linux环境安装、卸载、配置docker
目录1.docker卸载2.docker安装1.docker卸载卸载系统中docker sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selin
2020-06-06 08:34:51
238
原创 spring源码分析| 第一篇:内置后置处理器及自定义配置注册解析
目录1. 说明2. 加载过程解析(语言层面)3. 加载过程解析(代码层面)4. 解析配置类5. 解析普通类6. 重要类解析7. spring容器结构图1. 说明bean加载解析包含我们自定义的bean如何注册进spring容器,在spring容器中如何保存,如何解析配置类,如何解析普通类 ,涉及的重要对象2. 加载过程解析(语言层面)说明由于spring代码加载过程非常复杂,在...
2020-03-15 10:47:25
796
原创 开发实战|第一篇:springmvc中get请求实体接收
1.说明在前后端开发中经常遇到前端传入get请求,后端使用对应字段接收,即可完成参数与值的映射,形如下边代码所示:前端请求http://localhost:8080/query/user?id=123&user_name=zhangsan&phone=13647567643后端接收@getMapping(/query/user)public User query(@r...
2020-01-08 15:02:19
10339
4
原创 Linux操作|第二篇:Linux常见操作
目录1.系统相关2.用户相关3.常用操作4.vi操作5.yum仓库配置6.免密登陆7.文件权限管理1.系统相关提升用户至root权限(/etc/sudoers)sudo vim /etc/sudoersroot ALL=(ALL) ALL# milk为需要提升账户milk ALL=(ALL) ALL查看当前系统负载(w) 10:46:5...
2020-01-07 11:47:30
200
原创 Docker学习笔记|第三篇:常用软件docker启动
1.启动consuldocker run -p 8500:8500 --name consul -v /home/milk/docker/consul/conf:/consul/conf/ -v /home/milk/docker/consul/data:/consul/data -d consul2.启动mysqldocker run -p 3306:3306 --name mysql ...
2020-01-07 09:23:47
297
原创 由浅入深Spring|第二篇:源码分析(一)
目录1.BeanDefinition2.ApplicationConfigApplication构造方法分析2.1 分析this()2.2分析register(componentClasses)2.3分析refresh()1.BeanDefinitionBeanDefinition:表示Spring用来描述管理的bean对象,其中包含了bean对象所拥有的属性2.ApplicationCon...
2020-01-05 22:25:56
185
原创 由浅入深Spring|第一篇:基本使用
目录1.理解IOC和DI2.为何使用Spring Ioc3.Spring编程风格4.xml注入方式5.自动装配6.@Autowired与@Resource区别7.自定义beanName8.bean生命周期存在的问题1.理解IOC和DI2.为何使用Spring Ioc3.Spring编程风格4.xml注入方式5.自动装配6.@Autowired与@Resource区别7.自定义bean...
2020-01-02 21:56:09
150
原创 Linuxe操作|第一篇:基于virtualbox安装centos7
目录1.说明2.安装3.自定义ip1.说明虚拟机市面上有许多,但经常使用的也就vmware和virtualbox,本文暂且讲解vmware安装完Linux后的设置,后边会针对virtualbox进行详细的介绍2.安装由于安装较简单,几乎是傻瓜式的安装,就不在此介绍,本文着重介绍安装完系统后的设置,主要包括联网,系统基础设置等。3.自定义ip打开vmware网络设置,找到vmwar...
2019-12-31 14:27:59
308
原创 Maven笔记|Maven配置阿里云镜像仓库
文章目录1.配置本地仓库地址2.配置阿里Maven仓库3.配置所选择镜像4.选择要激活的配置5.阿里云镜像完全配置1.配置本地仓库地址<localRepository>/Volumes/mac/repository</localRepository>2.配置阿里Maven仓库 <mirrors> <mirror> ...
2019-12-22 10:48:50
389
原创 Spring学习笔记|第二篇:Spring-AOP
目录1.AOP概念2.AOP术语3. @AspectJ 支持3.1 Spring中引入切面实现3.2 pointcut切面表达式3.3 Advice通知1.AOP概念在开发过程中会产生一些与主业务逻辑关系不大,但散落在代码各个部分难以维护的横切性问题,如日志记录、权限验证、事务管理、异常处理等。AOP就是处理这些横切性问题,AOP思想就是将这些问题与主业务分开,从而达到与主业务解耦的目的。...
2019-12-02 22:20:45
180
原创 并发编程|第一篇:Java内存模型
目录1.进程与线程区别2.Java内存区域3.Java内存模型4.硬件内存架构与Java内存模型5.Java线程与内核硬件关系1.进程与线程区别进程操作系统中运行的exe程序即可理解为进程,如电脑中独立运行的QQ、WPS等应用程序,一个进程可包含多个线程线程线程为进程中独立运行的执行单元,可理解为QQ中的传文件、开视频、聊天等均为QQ进程中的执行单元2.Java内存区域...
2019-11-03 11:04:12
186
原创 设计模式|第七篇:模板方法设计模式
目录1. 概念2.实现步骤3.案例4.案例结构图1. 概念模板方法模式,定义一个操作中的算法骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤2.实现步骤定义抽象类,类中定义算法骨架,公有逻辑抽象类实现,其它私有逻辑延迟至子类实现子类继承抽象类,实现具体算法3.案例本例以遇近做的需求数据迁移为例,有两种类型数据要做迁移,其中...
2019-10-22 15:22:10
139
原创 设计模式|第六篇:建造者设计模式
目录1.实现步骤2.案例3.测试使用4.使用Lombok简化1.实现步骤构造函数私有化创建静态Builder对象,用于处理具体属性2.案例public class User { private String name; private String password; private String nickName; private int age; pr...
2019-10-22 13:31:51
184
原创 设计模式|第五篇:单例设计模式
目录1.概念2.实现步骤3.常见单例模式4.存在问题1.概念每次只会创建同一个实例2.实现步骤构造函数私有化对外暴露公共创建对象方式3.常见单例模式(1) 饿汉式 public class User{ private User(){ } private static User instance = new User(); public s...
2019-10-22 11:25:30
96
原创 设计模式|第四篇:策略设计模式
目录1.概念2.实现步骤3.案例1.概念定义一系列算法的方法,所有这些算法完成的都是相同的工作但实现不同2.实现步骤定义抽象策略类,同时定义算法定义具体抽象类,用于实现定义的算法定义content类,用于算法统一调用定义工厂类,利用反射根据传入对象不同从而完成不同方法调用3.案例定义抽象策略类 public interface AlgorithmStrategy {...
2019-10-22 10:47:20
108
原创 设计模式|第三篇:抽象工厂模式
目录1. 概念1. 概念前边我们讲述了简单工厂模式(通过传入参数,获取所需对象),工厂模式(创建每个对象工厂,所有对象均从各自对象工厂中生产),但实际生产中会存在如下情况,还是以生产汽车为例:汽车A汽车B发动机:A发动机发动机:B发动机车标:A车标车标:B车标都是生产汽车,但A汽车=A发动机+A车标,B发动机=B发动机+B车标,如果使用工厂模式,我们需要创...
2019-10-14 14:02:28
137
原创 深入理解JAVA虚拟机学习|第一篇:Java内存区域
1.Java内存区域如图示程序计数器:记录正在执行的虚拟机字节码指令地址单线程中:当前线程执行的字节码行号多线程中:线程轮流切换并分配处理器时间片执行,每个线程独立拥有一个程序计数器,保证线程切换后能正确继续上一次操作每个线程独立拥有,线程私有唯一一个不会存在内存溢出区域执行Native方法时,计数器值为空(Undefined)Java虚拟机栈:用于存放局部变量表,操作...
2019-10-13 10:58:25
111
原创 设计模式|第二篇:工厂模式
目录1.概念:2.案例1.概念:回顾第一篇中简单工厂模式,当我们需要增加一个计算乘方的类时,我们需要增加乘方类实现Arithmetic,同时修改工厂类ArithmeticFactory,这样就违背了"对修改关闭,对扩展开放"的原则,在此我们引入工厂模式。工厂模式:每个要创建的类都对应一个工厂类,所有具体的工厂类都实现自统一的工厂类,当需要扩展对象时,则增加新对象工厂类即可。2.案例本...
2019-10-12 15:24:51
139
原创 设计模式|第一篇:简单工厂模式
目录1. 概念:2.案例1. 概念:简单工厂模式:创建对象工厂(用于生产对象),根据传入条件返回不同的对象2.案例本案例以计算器为例,主要实现逻辑有如下几步:1.根据用户传入的运算符,获取所需要的运算对象2.根据获得的运算对像调用计算方法创建计算对象父类public interface Arithmetic { double calute(double arg1...
2019-10-12 09:44:33
127
原创 工具类汇总
1.说明该篇文章主要用于记录平时开发中使用到的工具类,或网上收集的工具类,以便于后续使用查阅 ,该篇文章将持续更新2.工具类及地址Xml与javaBean互转工具类(1) 引入依赖<dependency> <groupId>de.odysseus.staxon</groupId> <artifactId>staxon...
2019-10-10 15:57:13
140
原创 开发实战|第三篇:基于shiro实现权限控制
目录1.简介2.SpringBoot整合Shiro3.参考资料1.简介Apache Shiro是Java的一个安全框架,可用于用认证,授权,加密,会话管理等多个方面,其基本功能点如下图所示:模块用途Authenication身份认证/登录,验证用户是否拥有相应身份Authorization授权,权限验证,验证某个用户是否拥有某个权限Session Man...
2019-10-10 14:41:35
286
原创 开发实战|第二篇:基于kaptcha实现验证码
目录1.环境搭建2.验证码实现验证码生成本次分享使用captcha进行验证码生成,虽然本次分享为验证码生成,但仍然涉及到许多知识点,其中包括springboot项目搭建,引入MybatisPlus,lombok插件,时间计算插件joda-time。1.环境搭建创建SpringBoot项目,引入springBoot环境相关依赖<parent> <group...
2019-10-08 11:33:03
603
原创 开发实战|第一篇:Spring Boot基于注解实现多数据源
目录1.说明2.环境准备3.演示案例1.说明在开发过程中经常遇到使用多数据源的时候,我们可以基于配置实现多数据源,也可以基于注解实现多数据源。刚好最近项目做数据迁移中时使用到多数据源,在此以demo形式展示如何使用Spring Boot基于注解整合多数据源。整合步骤及方法主要借鉴了网上开源项目renren-fast。2.环境准备搭建物理环境(虚拟机安装Mysql)服务说明...
2019-09-22 08:35:26
373
原创 Spring Cloud学习|第七篇:分布式配置中心+Bus总线
目录1.前言2.分布式配置中心搭建3.手动刷新配置4.消息总线动态刷新配置5.消息总线刷新配置原理解析1.前言一提到微服务,那么离不开的就是配置中心,而对于多个服务共用的配置我们总希望有一个配置中心进行保存。Springcloud提供的Spring Cloud Config就为我们提供了这个能力,下边我们从零开始搭建一个分布式配置中心。2.分布式配置中心搭建服务端口作用...
2019-09-18 09:24:08
253
原创 Docker学习笔记|第二篇:Maven构建Docker镜像并上传至云服务器运行
目录1.前言2.环境搭建3.Maven插件直接构造镜像4.Maven插件读取DockerFile构造镜像5.将Docker构建指令绑定至Maven命令上1.前言相信所有JAVA程序员都知道Maven,Maven是一个强大的项目管理与构建工具,使用Maven我们可以方便对项目进行打包、上传私服、项目依赖管理等。同样我们也可以借助插件通过Maven构建Docker镜像,常见的插件依赖如下所示:...
2019-09-17 09:20:10
586
原创 springboot学习笔记|第二篇:Spring Boot+数据库
目录1.整合JdbcTemplate2.整合MyBatis3.整合Spring Data JPA1.整合JdbcTemplate创建数据库create table book( id int auto_increment primary key, name varchar(128) null, author varchar(64) n...
2019-09-16 15:33:34
264
原创 springboot学习笔记|第三篇:Spring Boot+Nosql
目录1.整合Redis2.整合MongoDB3.Session共享1.整合Redisdocker安装Redis(1)拉取镜像$ docker pull redis(2) 启动镜像$ docker run -d -v /home/milk/docker/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf -p 6379:637...
2019-09-11 21:54:16
159
原创 springboot学习笔记|第四篇:Spring Boot Security
目录1.入门案例2.基于内存认证1.入门案例创建Spring Boot项目引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> ...
2019-09-11 15:04:57
1246
3
原创 Spring Cloud学习|第六篇:消息驱动-Stream
目录1.Stream简介2.入门案例3.基本概念7.参考资料1.Stream简介Spring Cloud Steam是一个用来为微服务应用构建消息驱动能力的框架,它可以基于Spring Boot创建独立的可用于生产的Spring应用程序。它通过使用Spring Integration来连接消息代理中间件实现消息事件驱动。 上图为官方提供的Spring Cloud Stream运行图,图中...
2019-09-09 15:33:26
379
原创 消息中间件|第二篇:Springboot+Rabbitmq
1.SpringBoot整合Rabbitmq(1) 环境搭建新建一个Maven工程引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId><...
2019-09-09 09:27:44
220
原创 消息中间件|第一篇:rabbitmq-安装及简单使用
目录1.Rabbitmq安装(Docker)2.原生方式使用rabbitmq模式介绍3.确认机制3.原生方式使用rabbitmq模式介绍1.Rabbitmq安装(Docker)拉取镜像并启动# 注意,如果想使用rabbitmq管理平台,则需拉取带有management的tag$ docker pull rabbitmq:3.8-rc-management-alpine# 指定端口映射...
2019-09-06 16:09:46
312
原创 springboot学习笔记|第一篇:基础配置
目录1.前言2.@SpringBootApplication3.springboot banner4.Tomcat配置5.properties配置6.自定义配置7.profile1.前言该springboot学习系列文章主要参考《Spring Boot+Vue全栈开发实战》这本书,该系列文章可以说是该本书的学习笔记吧,参考的书籍讲解非常详细,作者对于每一个细节都有截图,通过此书学习让我对于s...
2019-08-26 17:09:29
149
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人