Java技术进阶指南
文章平均质量分 92
3-5年Java工程师的进阶指南
Java技术江湖
在下程序员黄小斜,前阿里Java工程师,4年码龄。 专注分享Java技术干货文,偶尔也吹水吐槽聊人生。
展开
-
万字 讲解Spring Cloud Gateway 2.0,面向未来的技术,了解一下?
原创:小姐姐味道(微信公众号ID:xjjdog),欢迎分享,转载请保留出处。本文将从知识拓扑讲起,谈一下api网关的功能,以及spring cloud gateway的使用方法。文章很长,可以先过一下目录。一、知识拓扑 (使用和原理)二、网关的作用三、Predicate,路由匹配四、Filter,过滤器编写五、自定义过滤器六、常见问题为什么很多人觉得spring cloud gateway难用?因为它的背后用的是webflux,涉及到响应式编程,而不是传统的过程式编程。我们把.转载 2021-12-14 17:58:12 · 1125 阅读 · 0 评论 -
Java注解和注解解析器深耕,架构师必会
本文将介绍学习元数据->元注解->运行时注解->编译时注解处理器->自定义框架Demo什么是元数据(metadata) 元数据由metadata译来,所谓的元数据就是“关于数据的数据”,更通俗的说就是描述数据的数据,对数据及信息资源的描述性信息.比如说一个文本文件,有创建时间,创建人,文件大小等数据,这都可以理解为是元数据. 在java中,元数据以标签的形式存在java代码中,它的存在并不影响程序代码的编译和执行,通常它被用来生成其它的文件或运...转载 2021-12-14 17:39:23 · 1190 阅读 · 0 评论 -
Maven实战与原理分析(六):maven 自定义插件开发实战
前言众所周知,maven 实质上是一个插件执行框架,所有的工作都是通过插件完成的。包括我们日常使用到的类似 install、clean、deploy、compiler。。。这些命令,其实底层都是一个一个的 maven 插件。如何开发自己的插件1. maven 插件的命名规范在写一个项目之前,第一件事就是确定一个名称。maven 插件也不例外。它有着自己的一套命名规范。但是规范很简单,一句话就可以概括,**官方插件命名的格式为 maven-xxx-plugin,非官方的插件...转载 2021-12-14 17:11:55 · 1761 阅读 · 1 评论 -
Maven实战与原理分析(五):Maven插件运行原理 + 常见插件汇总
简介: 我们都知道Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成,例如编译源代码是由maven- compiler-plugin完成的。本文将为大家介绍一些常用的 Maven 插件。镜像下载、域名解析、时间同步请点击阿里巴巴开源镜像站我们都知道Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成,例如编译源代码是由maven- compiler-plugin完成的。进一步说,每个任务对应了一个插件..转载 2021-12-14 17:10:27 · 1598 阅读 · 0 评论 -
Maven实战与原理分析(四):手把手带你搭建maven私有仓库
Maven的原理就是将jar从远程中央仓库下载到PC磁盘的本地仓库,当本地仓库没有发现需要的jar就会去Maven默认的远程中央仓库Maven Central(由Apache维护)中寻找,每次需要新的jar后都要从远程中央仓库上下载。那么问题来了?这个远程的中央仓库一定有很多人使用那下载速度一定很慢,这个暂且不用考虑。 重要的是万一哪天公司外网连不上了咋办?而Nexus私服恰好可以解决这个问题。搭建私服的好处是Nexus有效解决了Maven对Apache的远程中央仓库的依赖,当项目需要新的jar时会先在n.转载 2021-12-14 16:57:21 · 2594 阅读 · 0 评论 -
Maven实战与原理分析(三):Maven在应用中的常见问题整理
Maven下载依赖失败的解决方式那今天这期视频我们将带来一个 IDEA 中 Maven 设置的小技巧。那这个技巧可以说非常有用,学会设置之后,再也不用担心 maven 依赖下载变慢的问题。Maven 设置当我们下载安装 Maven 之后,如果不修改 maven 中 setting 文件的。那默认情况下, Maven 远程中央仓库地址为是个国外的地址。http://repo1.maven.org/maven2复制代码那我们国内的网络,因为神秘的力量的影响,访问国外的地址就会比较原创 2021-12-14 16:51:01 · 1264 阅读 · 0 评论 -
Maven实战与原理分析(二):maven实战
1 Maven 介绍1.1 为什么使用 Maven由于 Java 的生态非常丰富,无论你想实现什么功能,都能找到对应的工具类,这些工具类都是以 jar 包的形式出现的,例如 Spring,SpringMVC、MyBatis、数据库驱动,等等,都是以 jar 包的形式出现的,jar 包之间会有关联,在使用一个依赖之前,还需要确定这个依赖所依赖的其他依赖,所以,当项目比较大的时候,依赖管理会变得非常麻烦臃肿,这是 Maven 解决的第一个问题。Maven 还可以处理多模块项目。简单的项目,单模块..原创 2021-12-14 16:38:00 · 535 阅读 · 0 评论 -
Maven实战与原理分析(一):maven超全使用指南总结
maven package和maven install 有什么区别?你常用的maven命令有哪些?<dependencyManagement> 是干什么的?还有用过其它构建工具吗? 和maven有啥区别?这几个问题都可以脱口而出,你应该是有点 maven 能耐,写代码去吧,不用看了点赞+收藏 就学会系列,文章收录在 GitHubJavaEgg,N线互联网开发必备技能兵器谱1.Maven是啥:Maven是Apache软件基金会唯一维护的...原创 2021-12-14 16:35:45 · 1481 阅读 · 0 评论 -
Java面试细节:静态变量和静态块、静态方法、静态类的底层实现原理
Java静态变量的初始化(static块的本质)在网上看到了下面的一段代码:publicclassTest { static{ _i = 20; } publicstaticint_i = 10; publicstaticvoidmain(String[] args) { System.out.println(_i); } }pu...原创 2021-12-10 17:55:18 · 1122 阅读 · 0 评论 -
如果你想在Java代码中写一个Http客户端,你会选择哪一种方式?Okhttp vs Apache vs Jdk
除了本文推荐的几种方式,强烈推荐 OkHttp目前JAVA实现HTTP请求的方法用的最多的有两种:一种是通过HTTPClient这种第三方的开源框架去实现。HTTPClient对HTTP的封装性比较不错,通过它基本上能够满足我们大部分的需求。HttpClient3.1 是 org.apache.commons.httpclient下操作远程 url的工具包,虽然已不再更新,但实现工作中使用httpClient3.1的代码还是很多,HttpClient4.5是org.apache.http.clien转载 2021-12-10 17:35:04 · 1011 阅读 · 0 评论 -
Java中的屠龙之术(二):如何方便快捷地生成.class文件
在之前的“Java中的屠龙之术:如何修改语法树”中,我们详细介绍了如何使用Javac源码提供的工具类来修改语法树。而在此基础上,有一款开源工具javapoet可以更加快捷地生成字节码,实现原理其实也就是对JavaAPT的封装,然而Javapoet有一个局限性,就是只能生成新的.class文件,却无法修改原有的类,这也是它的一大局限性所在。接下来就让我们看看它的使用方法把。0x00 概述注解系列注解基础 JavaPoet 编译期注解处理之APT上一篇限于篇幅只介绍了APT,这篇来继续介绍转载 2021-12-10 17:31:12 · 1555 阅读 · 0 评论 -
Java8特性详解 lambda表达式(三):原理篇
Java为什么需要lambda表达式?能够提升代码简洁性、提高代码可读性。例如,在平时的开发过程中,把一个列表转换成另一个列表或map等等这样的转换操作是一种常见需求。在没有lambda之前通常都是这样实现的。List<Long> idList = Arrays.asList(1L, 2L, 3L);List<Person> personList = new ArrayList<>();for (long id : idList) { pers转载 2021-12-10 17:24:11 · 809 阅读 · 0 评论 -
Java8特性详解 lambda表达式(二):流式处理中的lambda
要讲 Stream ,那就不得不先说一下它的左膀右臂 Lambda 和方法引用,你用的 Stream API 其实就是函数式的编程风格,其中的「函数」就是方法引用,「式」就是 Lambda 表达式。Lambda 表达式Lambda 表达式是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象,是一个匿名函数,即没有函数名的函数。Lambda表达式可以表示闭包。在 Java 中,Lambda 表达式的格式是像下面这样// 无参数,无返回值() -转载 2021-12-10 17:19:14 · 951 阅读 · 0 评论 -
Java8特性详解 lambda表达式(一):使用篇
在 Java 8之前,一个实现了只有一个抽象方法的接口的匿名类看起来更像Lambda 表达式。下面的代码中,anonymousClass方法调用waitFor方法,参数是一个实现接口的Condition类,实现的功能为,当满足某些条件,Server 就会关闭。 下面的代码是典型的匿名类的使用。void anonymousClass() { final Server server = new HttpServer(); waitFor(new Condition() { ..原创 2021-12-10 17:16:09 · 1374 阅读 · 0 评论 -
从Java的类加载机制谈起:聊聊Java中如何实现热部署(热加载)
一 class的热替换ClassLoader中重要的方法loadClassClassLoader.loadClass(...)是ClassLoader的入口点。当一个类没有指明用什么加载器加载的时候,JVM默认采用AppClassLoader加载器加载没有加载过的class,调用的方法的入口就是loadClass(…)。如果一个class被自定义的ClassLoader加载,那么JVM也会调用这个自定义的ClassLoader.loadClass(…)方法来加载class内部引用的一些别的clas.原创 2021-12-08 19:19:13 · 2575 阅读 · 0 评论