GitHub构建Maven依赖仓库
吐槽一句:博客氛围太差了,一篇博客到处发,而且自己还没有实践,直接带到沟里了。
1.基础构建
Github新建仓库
本地初始化git目录 初始化命令 git init
将远程的仓库和本地git目录建立连接 git remote add origin git@github.com:Encyclopedias/MavenRepo.git
新建项目,更改maven的项目的pom文件,如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w...
Arthas基本使用
1. Arthas下载安装
Arthas官网
Windows/Mac
输入cmd按回车后进入想要下载的目录执行命令curl -O https://arthas.aliyun.com/arthas-boot.jar
Linux
进入想要下载的目录执行命令wget https://arthas.aliyun.com/arthas-boot.jar
启动arthas命令:java -jar arthas-boot.jar
2. Arthas使用命令
第一招:Watch命令
watche命令有很多参数,用于控制观察的时机。例如-b(before)函数调用前,-e(exception)异常函数后,-s函数返回后, -f(fin...
IDEA集成Jrebel实现热部署
下载安装
在idea中点击file->settings,再点击plugins, 在搜索框中输入JRebel, 选择第一个插件并点击“install”按钮,安装完成后点击确定并重启idea。
离线激活
此处需要下载一个软件, 点击此处下载 密码:423h
下载结束后打开软件准备激活JRebel;
File->Setting->JRebel, 点击”Change license”按钮,选择“Team URL”;
输入以下任意一行链接:
http://127.0.0.1:8888/88414687-3b91-4286-89ba-2dc813b107ce
http://127.0.0.1:8888/ff47a3ac-c11...
IDEA集成Docker实现一键部署
所作初衷:
在和前端联调的过程中,然后每次电脑使用IDEA将服务启动后不能动,然后自己想改变代码后重启可能导致前端那边报错,所以为了给前端提供联调的服务的同时,我自己还可以正常工作,于是便想到了使用docker的方式,这样就可以达到了两全其美,何乐而不为。
1.初识Docker
Docker的三个基本概念:
Dockerfile:镜像构建的模板,描述镜像构建的步骤,通常是拉去一些文件和依赖;
image:镜像,一个文件,用来创建容器。
container:容器,一个可运行的镜像实例,里面运行着一个完整的操作系统,可以做一切你当前操作系统可以做的事情。
从我的理解对上述三者做一个类比:dockerfile就是一个混凝土配比说明书(原材料,步骤等),根据该说明书搅...
少年,请理性消灭if-else
在平时的实践生产中,伴随着业务逻辑越来越复杂,if-else的滥用的越来越厉害。当然其并不影响代码的逻辑使用,至于其可读性那只能是仁者见仁智者见智。就我个人而言,我是很反感在代码中使用if的判空和逻辑判断。除非是业务紧急或者实在是想不出好的办法才会使用if-else, 毕竟无脑使用是绝对没问题的。
本文代码地链接
1. 编码规范
编码规范能够简化if-else的使用,是基于JDK所提供的基本能力实现的,同是能够很好避免满屏的if-else
1.1 三目运算符
public GenderEnum getGender(int genderValue){
if(genderValue == GenderEnum.FEMALE.getValue()){
...
从0开始学Spring Security
前置入口
本文仓库:点击进入
学习文档:点击进入
官方Spring-Security项目地址:点击进入
1. 入门准备
当你加入Springboot 的web依赖包的时候,然后创建一个如下Controller,启动服务后便可通过localhost:8080/ready/security/test访问获得Hello World的结果
@RestController
public class ReadySecurityController {
@GetMapping("/ready/security/test")
public String testReadySecurity(){
return "Hello World";
}
}
...
Spring/Spring-Boot源码阅读环境搭建
1. 初衷
最近突然有正式看源码的想法了,之前都是听别人讲,有时候也在项目里面看看,可是有时候发现被依赖的包的代码搜索不到,只能搜索类名,于是便有了下载源码的想法。下载源码并不是说要一个方法一个方法去看,我计划是从某个注解或者某种机制原理下手,比如@RequestMapping是怎么工作的。
2. 准备
由于spring和spring-boot高版本jdk 1.8是支持不了的,需要更高版本的jdk,可以下载对应版本的JDK
同时,高版本是需要Gradle来构建工程,可以自己下载也可以不下载。
你可能会遇到如下错误A build scan was not published as you have not authenticated with server 'ge.spring...
理解Optional的正确打开方式
一. Optional的方法总览
Optional是JDK8提供的一个很简单的容器类,其目的就是把对象包装在容器里面,然后提供对该对象的一些基本操作。整个类加上注释也才300多行。
package java.util;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.function.Supplier;
public final class Optional<T> {
private static final Optional<?> EMPTY...
代理对象中的Spring的Bean为Null引发的惨案
1. 背景介绍
这次事件是发生在我司的开发环境中,然后也有其他小伙伴去总结了,我看了一下,总感觉少了点什么,然后专门研究到底是怎么回事。
惨案的起因:
我们通过google的EventBus来订阅jvm级别的事件,就是在每个方法上加了一个@Subscribe,但是有哥们会把该方法写成私有的方式,大概内容如下:
@Component
public class UserService {
@Autowired
private OrderService orderService;
public void testProxy(){
System.out.println("userService");
}
@Subsc...
Lambda表达式中的变量只能用final
这个和方法传参数一个道理,方法传参时采用的是值传递的方式,类似做一个副本拷贝,lambda表达式同理也是通过这样的方式。但是众所周知method不关心你是不是final类型的,因为代码执行有先后顺序,完全不担心后面对变量的修改影响了之前的数据。 而lambda表达式就不一样了,开发者可以带着当前的变量副本声明着,但是执行却很晚。 如果执行改表达式前改变了实例变量,这时当前的变量和lambda表达式中变量副本就不一致了,这就是问题所在了。
Case1: 需要根据条件判断,然后根据判断后的结果在lambada表达式中用到。
这种情况不要使用if else来判断,要使用三目运算符。
如果使用if else后需要将获取的结果重新赋给一个变量,比较庸余;
String name;
if(...
51 post articles, 6 pages.