文章506
标签266
分类65
为什么Spring中不推荐使用@Autowired字段注入

为什么Spring中不推荐使用@Autowired字段注入

最近在学习一个项目的时候, 发现IDEA在我的@Autowired标注的变量上面提醒警告: Field injection is not recommended. 不推荐使用字段注射方式! 这是为什么呢? 本篇文章给与解答!

读完本文你将学会:

  • Spring的三种依赖注入方式: 构造函数注入, Setter注入, 字段注入
  • 为什么Spring中不推荐使用@Autowired字段注入
  • ……

Maven打包java11报错Fatal error compiling的解决办法

Maven打包java11报错Fatal error compiling的解决办法

最近一段时间一直都在忙导师公司的事情, 然后一边在写一个文件分享的项目, 实在没什么时间写博客, 今天终于忙完导师公司的事情, 然后打包构建项目的时候发现无法构建: Fatal error compiling的错误

在网上一番查证之后, 终于发现问题所在, 原来是Java 11之后, 在Maven中的标注不再是1.8, 而是11!

看完本篇文章你将学会:

  • 如何使用Maven构建JDK11的项目
  • 如何通过在pom.xml中指定源代码与编译代码版本
  • 如何配置IDEA中的JDK环境
  • ……
关于使用Git时push/pull超时, 以及Github访问慢的解决办法

关于使用Git时push/pull超时, 以及Github访问慢的解决办法

最近在使用Git向github提交代码的时候总是卡顿, 出现SSH连接超时的情况, 一开始以为是因为网络缘故, 后来发现是ssh本身配置的问题!

阅读本篇你将学会:

  • 加速国内Github访问的方法
  • 解决git push/pull卡死
  • 解决git push/pull ssh连接超时
  • ……

ElasticSearch之学习篇-1

ElasticSearch之学习篇-1

经过前两篇对于ES的热身, 从本篇开始, 将正式总结ES相关知识.

本篇文章主要内容:

  • 什么是ES? 为什么要使用ES?
  • 和ES交换的方式: Java API, RESTful API with JSON over HTTP
  • 从一个员工例子开始介绍增删改查
  • 简单介绍ES特性: match, filter, 全文检索, 短语搜索, 高亮搜索等
  • ES的分布式特性: 创建集群, 集群健康, 向集群中添加索引, 添加故障转移, 水平扩容等
  • ……

在单台服务器部署多个ElasticSearch节点

在单台服务器部署多个ElasticSearch节点

对于想要学习ES的人来说, 集群是一个不得不谈的话题, 而且就目前的形式来说, 越来越要求开发人员会用分布式. 对于ES来说, 由于其本身对分布式集群已经支持的相当完善, 已经屏蔽了大多数的服务发现, fallover等. 但是学习集群首先要有一个集群, 对于大多数人来说, 还是希望在本地运行一个集群. 所以本篇是在笔者查阅了大量资料之后, 经过尝试总结的在ES 7.x版本下如何在单节点下运行ES集群.

阅读本文你将学会:

  • 通过将ES复制多份实现单节点集群部署
  • 通过使用启动参数(Options)部署单节点集群
  • 使用Docker部署单节点集群
  • Elasticsearch7目录详解
  • Elasticsearch7配置详解
  • 部署Elasticsearch7时需要修改的操作系统参数
  • ……
ElasticSearch为什么在高版本移除映射类型

ElasticSearch为什么在高版本移除映射类型

由于ElasticSearch官方文档使用的还是2.x版本, 而在使用其中的某些API时, 会出现deprecated提示. 本篇主要总结ElasticSearch中那些由于版本更新而不再推荐使用的API, 例如: 移除了映射类型(mapping types). 同时也作为正式学习ElasticSearch前的又一次预热.

本篇主要内容:

  • 什么是映射类型(mapping types)
  • 为什么要移除映射类型
  • 映射类型的可选替代方案: 每种文档类型一个索引/自定义类型字段
  • Elastic Search 各个版本对types的支持
  • 一些Elastic Search在新版本的使用技巧
  • ……
ElasticSearch之安装篇

ElasticSearch之安装篇

本篇主要讲述了ElasticSearch的基本概念, 以及ElasticSearch的安装与简单配置, 主要是为接下来ElasticSearch热身.

主要内容包括:

  • Elastic Search相关介绍
  • Elastic Search安装与配置
  • Kibana安装
  • 一些由于版本兼容而导致的坑
  • ……
为什么在Java中String被设计为不可变

为什么在Java中String被设计为不可变

最近在学习新的编程语言Scala了, 在Scala中变量分为val(不可变类型), 和var(可变类型). 突发奇想想到了在Java中的String都被声明为final, 也就相当于是Scala中都被声明为val了吧! 但是具体是为什么呢? 本篇文章带你探寻在Java中String被声明为不可变背后的秘密!

本篇文章主要内容:

  • String源码简单分析
  • String在JVM中的常量池的解析: 字面量, new, +连接, intern()
  • String中的==和equals
  • 什么是Java中的不可变? 不可变的好处与坏处?
  • 证明回答String被设计成不可变和不能被继承的原因
  • ……

示例代码: https://github.com/JasonkayZK/Java_Samples/tree/java-string

YAML文件总结

YAML文件总结

最近在学习Kubernetes, 其中建立pods需要用到YAML配置.

同时在Springboot中,推荐使用properties或者YAML文件来完成配置,但是对于较复杂的数据结构来说,YAML又远远优于properties。本文就快速介绍YAML的常见语法格式.

本篇主要内容:

  • YAML的基本语法与格式要求
  • YAML中的注释
  • YAML的数据类型: 对象, 数组, 常量
  • YAML中的特殊符号
  • ……
NIO相关基础篇之实战

NIO相关基础篇之实战

继前两篇介绍NIO的文章之后, 本篇主要是对之前NIO相关知识的实战. 实战内容包括:

  • FileChannel: 传统IO与NIO读取对比
  • SocketChannel: 服务端OIO与NIO对比(Selector和SelectionKey实现)
  • 内存映射文件: ByteBuffer和MappedByteBuffe对比
  • Scatter & Gatter
  • TransferFron & TransferTo
  • Pipe
  • DatagramChannel
  • ……

本文转自: Java NIO?看这一篇就够了!

代码实例: https://github.com/JasonkayZK/Java_Samples/tree/java-nio