Home | 简体中文 | 繁体中文 | 杂文 | 知乎专栏 | Github | OSChina 博客 | 云社区 | 云栖社区 | Facebook | Linkedin | 视频教程 | 打赏(Donations) | About
知乎专栏多维度架构 | 微信号 netkiller-ebook | QQ群:128659835 请注明“读者”

Netkiller Java 手札

Java, Servlet, JavaBean, Struts, Spring ...

Mr. Neo Chan, 陈景峯(BG7NYT)



中国广东省深圳市望海路半岛城邦三期
518067
+86 13113668890


文档始创于 2015-11-10

电子书最近一次更新于 2020-11-15 03:19:21 .

版权声明

转载请与作者联系,转载时请务必标明文章原始出处和作者信息及本声明。

http://www.netkiller.cn
http://netkiller.github.io
http://netkiller.sourceforge.net
微信订阅号 netkiller-ebook (微信扫描二维码)
QQ:13721218 请注明“读者”
QQ群:128659835 请注明“读者”
知乎专栏 | 多维度架构

2017-11

2020-11-15 03:19:21

关于《Netkiller Java 手札》

作者2002年开始在项目中使用Java,各种原因没有留下Java文档,2015因工作需要重新拾起Java并整理本文档。

本电子书重点内容是Spring boot, Spring cloud, Spring data, Spring security


致读者

Netkiller 系列电子书始于 2000 年,风风雨雨走过20年,将在 2020 年终结,之后不在更新。作出这种决定原因很多,例如现在的阅读习惯已经转向短视频,我个人的时间,身体健康情况等等......

感谢读者粉丝这20年的支持

虽然电子书不再更新,后面我还会活跃在知乎社区和微信公众号

目录

1. 自述
1.1. 写给读者
1.2. 作者简介
1.3. 如何获得文档
1.4. 打赏(Donations)
1.5. 联系方式
1. Java 14
1.1. JVM
1.1.1. CentOS 8 Java 14
1.1.2. 安装 Java 6
1.1.2.1. HeapDumpOnOutOfMemoryError
1.1.3. java-1.8.0-openjdk
1.1.4. docker 环境
1.1.5. java - Launches a Java application.
1.1.5.1. java 9~11
1.1.5.2. -verbose:class 显示载入jar文件
1.1.5.3. java.io.tmpdir
1.1.5.4. 显示版本号
1.1.5.5. 列出java模块
1.1.6. jar
1.1.7. jdeps - Java class dependency analyzer.
1.1.8. JShell
1.1.8.1. /help 显示帮助信息
1.1.8.2. 退出命令
1.2. System
1.2.1. user.dir
1.2.2. java.io.tmpdir
1.2.3. 打印当前 Java 文件的默认编码
1.2.4. 自定义
1.2.5. System.in 标准输入(Stdin)
1.3. exec 运行shell
1.4. 类型
1.4.1. var 本地变量类型推断
1.4.2. Integer
1.4.2.1. 前面补零
1.4.3. String
1.4.3.1. 查找字符重现的位置
1.4.3.2. 行数统计
1.4.3.3. 复制字符串
1.4.3.4. 随机字符串
1.4.3.5. 字符串替换处理
1.4.3.5.1. 正则表达式查找与替换
1.4.3.5.2. 利用正则快速转换时间格式
1.4.3.6. substring
1.4.3.7. string to timestamp
1.4.3.8. String.strip
1.4.3.9. Ascii
1.4.3.10. 字符串处理,删除中文以外的字符
1.4.3.11. 取出字符串中的中文字符
1.4.4. 类型转换
1.4.4.1. Long to String
1.4.5. Date
1.4.5.1. SimpleDateFormat
1.4.5.2. Timestamp
1.4.5.3. TimeZone
1.4.5.4. String to Date
1.4.5.5. 比较两个日期与时间
1.4.5.6. Calendar
1.4.5.7. getToday
1.4.5.8. Yesterday
1.4.5.9. ISO 8601
1.4.5.10. LocalDateTime
1.4.5.11. ZonedDateTime
1.4.6. Array
1.4.6.1. for each
1.4.6.2. Array to String
1.4.6.3.
1.4.7. float
1.4.8. double
1.4.8.1. String to double
1.4.9. BigDecimal
1.4.9.1. Convert BigDecimal Object to double value
1.4.9.2. 去除末尾多余的0
1.4.9.3. 禁用科学计数法
1.4.9.4. 移动小数点位置
1.4.10. StringBuffer
1.4.11. enum
1.4.12. byte 类型
1.4.12.1. string2byte
1.4.12.2. byte[] to String
1.4.12.3. BigInteger2byte
1.4.12.4. int to byte array
1.4.12.5. byte array to int
1.4.12.6. byte2char
1.4.12.7. longToByte64
1.4.12.8. byte64ToLong
1.4.12.9. short2byte
1.4.12.10. byte8ToDouble
1.4.12.11. byte4ToFloat
1.4.12.12. 无符号 byte
1.4.12.13. byte to hex
1.4.12.14. byte[] to hex
1.4.12.15. 连接两个 byte[]
1.4.12.16. List<Byte> to byte[]
1.5. Collection
1.5.1. 静态 List
1.5.2. ArrayList
1.5.2.1. ArrayList to String
1.5.2.2. Array to List
1.5.2.3. List to Array
1.5.3. Set 转为 List
1.5.4. List.of()
1.5.5. List.copyOf()
1.5.6. ArrayList forEach
1.5.7. ArrayList stream()
1.5.8. Set.of()
1.5.9. Collection to Array
1.5.10. ArrarList 转换为 string[]
1.5.11. string[] 转换为 ArrarList
1.5.12. ArrayList 转换为 string
1.5.13. string 转换为 ArrayList
1.5.14. String[] to List
1.6. Map
1.6.1. 初始化
1.6.2. static map
1.6.3. HashMap
1.6.3.1. 遍历 HashMap
1.6.3.2. 遍历map中的键
1.6.3.3. 遍历map中的值 
1.6.3.4. 通过键取值
1.6.3.5. 使用 Iterator 遍历 HashMap
1.6.4. LinkedHashMap
1.6.5. Map forEach
1.7. Queue
1.8. Stream
1.8.1. Stream.of
1.8.2. Stream.ofNullable
1.8.3. filter
1.8.4. map
1.8.5. limit/skip
1.8.6. sorted
1.8.7. distinct
1.8.8. forEach
1.8.9. count
1.8.10. collect
1.8.11. takeWhile 和 dropWhile
1.8.12. List to Stream
1.8.13. 混合使用的例子
1.9. Optional
1.9.1. of() 为非null的值创建一个Optional。
1.9.2. ofNullable() 为指定的值创建一个Optional,如果指定的值为null,则返回一个空的Optional。
1.9.3. isPresent 如果值存在返回true,否则返回false。
1.9.4. ifPresent() 如果Optional实例有值执行 lambda 表达式
1.9.5. get() 返回值
1.9.6. orElse 如果有值则将其返回,否则返回指定的其它值。
1.9.7. orElseGet与orElse方法类似,区别在于得到的默认值从 Supplier 返回。
1.9.8. orElseThrow 如果有值则将其返回,否则抛出supplier接口创建的异常
1.9.9. map() 方法用来对Optional实例的值执行一系列操作
1.9.10. flatMap()
1.9.11. filter() 通过传入限定条件过滤Optional值
1.9.12. stream()
1.9.13. or()
1.9.14. example
1.10. Network
1.10.1. URL
1.10.2. java.io.tmpdir
1.11. JDBC
1.11.1. 安装 JDBC 包
1.11.2. MySQL
1.11.3. Oracle
1.11.3.1. SID
1.11.3.2. SERVICE_NAME
1.11.3.3. TNS
1.11.3.3.1.
1.11.3.4. Oracle RAC Cluster
1.11.3.5. Oracle JDBC Demo
1.11.4. FAQ
1.11.4.1. java.sql.SQLRecoverableException: IO Error: The Network Adapter could not establish the connection
1.11.4.2. Exception in thread "main" java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
1.12. Util
1.12.1. Properties 处理 *.properties 文件
1.12.1.1. 打开 properties 文件
1.12.1.1.1. 文件方式打开
1.12.1.1.2. 输入流
1.12.1.2. propertyNames()
1.12.1.3. keySet()
1.12.1.4. entrySet()
1.12.1.5. 方法中返回 Properties
1.12.1.6.
1.12.1.7. getResourceAsStream()
1.12.1.8. store
1.12.1.9. 实现国际化
1.12.2. Logging
1.12.2.1. console
1.12.3. BASE64
1.12.4. Locale 国际化
1.12.5. ResourceBundle
1.12.6. Scanner
1.12.7. UUID
1.12.8. Arrays.equals 判断两个数组是否相等
1.12.9. Random 随机字符串
1.12.9.1. 指定随机数范围
1.12.10. ArrayBlockingQueue
1.12.11. CRC32
1.12.12. FutureTask
1.13. IO
1.13.1. 取出文件名中的扩展名
1.13.1.1. getAbsolutePath() 获取绝对路径
1.13.1.2. 创建目录 mkdir()
1.13.2. 临时文件
1.13.3. FileWriter 文本写入文件
1.13.4. BufferedWriter
1.13.5. inputStream.transferTo()
1.13.6. InputStreamReader
1.13.7. 获得 Resource 下文件路径
1.13.8. PrintWriter
1.13.9. OutputStreamWriter
1.13.10. FileOutputStream
1.13.11. FileInputStream
1.13.12. Scanner
1.13.13. 二进制文件
1.13.13.1. 理解二进制文件
1.13.13.2. byte 类型
1.13.13.3. boolean 布尔型
1.13.13.4. Long 型
1.13.13.5. chat 类型
1.13.13.6. UTF 字符串
1.13.13.7. Short 类型
1.13.13.8. float 单精度浮点类型
1.13.13.9. double 数据类型
1.13.13.10. 二进制文件操作演示
1.13.13.10.1. 所有类型演示一遍
1.13.13.10.2. 检查文件是否是 png 文件
1.14. Reflection 反射
1.14.1. 获得所有变量
1.14.2. 批量赋值
1.14.3. 方法操作
1.14.3.1. 获得所有方法
1.14.3.2. set/get 方法
1.14.3.3. static 方法调用
1.15. Thread 线程
1.15.1. 实现异步执行
1.15.2. 继承 Thread 类实现多线程
1.15.3. 实现 Runnable 接口
1.15.4. 线程同步
1.16. java 脚本引擎
1.16.1. Maven
1.16.2. Helloworld
1.16.3. 运行脚本文件
1.16.4. 变量传递
1.16.5. 全局变量与局部变量定义
1.16.6. 调用脚本中的函数或方法
1.16.7. 脚本编译
1.16.8. jjs - Invokes the Nashorn engine.
1.17. Crypto
1.17.1. MD5
1.17.2. AES
1.17.3. AES/CBC/PKCS5PADDING
1.17.4. DES
1.18. java.security
1.18.1. 列出 Java 支持的数字摘要算法
1.18.2. 计算文件的 MD5,SHA 等 HASH 值
2. Build Tools
2.1. Apache Ant
2.1.1. 安装 ant
2.1.1.1. 1.8
2.1.1.2. 1.10.1
2.1.2. ANT
2.1.2.1. ant.project.name
2.1.2.2. 定义
2.1.3. Project
2.1.3.1. property
2.1.3.2. ant
2.1.3.3. environment
2.1.4. path
2.1.5. copy
2.1.6. javac
2.1.7. condition
2.1.8. exec
2.1.8.1. sshexec
2.1.9. if
2.1.10. macrodef
2.1.10.1. Git
2.1.10.2. Rsync
2.1.10.3. SSH
2.1.10.4. maven
2.1.11. Javascript
2.1.12. mail
2.1.13. basename
2.1.14. FAQ
2.1.14.1. warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
2.1.14.2. 调试 exec
2.2. Apache Ivy
2.2.1. Ivy Install
2.2.1.1. source code
2.2.1.2. apt-get
2.2.2. Test example
2.3. Apache Maven
2.3.1. 安装 Maven
2.3.1.1. CentOS 8 安装 Maven
2.3.1.2. Ubuntu
2.3.1.3. 源码安装
2.3.2. Maven 命令
2.3.2.1. 参数
2.3.2.2. -s 指定 settings.xml 文件
2.3.2.3. help
2.3.2.4. archetype:create
2.3.2.5. clean
2.3.2.6. compile
2.3.2.6.1. 多线程编译
2.3.2.7. 编译测试代码
2.3.2.8. test
2.3.2.9. package
2.3.2.10. install
2.3.2.10.1. install-file
2.3.2.11. war
2.3.2.12. exec
2.3.2.13. dependency
2.3.2.13.1. build-classpath
2.3.2.13.2. dependency:tree 显示包依赖树
2.3.2.13.3. copy-dependencies 导出依赖包
2.3.2.13.4. analyze 查看未被使用的包
2.3.2.13.5. sources 下载源码
2.3.2.14. jar
2.3.2.15. 构建装配Maven Assembly
2.3.2.16. 加密密码
2.3.2.17. help:describe
2.3.3. Maven 仓库
2.3.4. pom.xml
2.3.4.1. properties
2.3.4.1.1. java.version
2.3.4.2. repositories 仓库配置
2.3.4.2.1. 默认仓库
2.3.4.2.2. 阿里云仓库
2.3.4.3. dependencies
2.3.4.4. dependencyManagement
2.3.4.5. build
2.3.4.5.1. finalName
2.3.4.5.2. sourceDirectory
2.3.4.5.3. resources 文件处理
2.3.4.6. plugins
2.3.4.6.1. 跳过Unit test
2.3.4.6.2. maven-shade-plugin
2.3.5. Maven Module
2.3.5.1. Parent
2.3.5.2. 公共项目 common
2.3.5.3. 常规项目
2.3.5.4. 现在测试效果
2.3.6. 依赖管理
2.3.6.1. 创建依赖模块
2.3.6.2. 引用依赖管理
2.3.7. plugins
2.3.7.1. maven-compiler-plugin
2.3.7.2. maven-war-plugin
2.3.7.3. maven-antrun-plugin
2.3.7.4. maven-install-plugin
2.3.7.5. maven-surefire-plugin
2.3.7.6. maven-deploy-plugin
2.3.7.7. maven-jar-plugin
2.3.7.8. maven-dependency-plugin
2.3.7.9. spring-boot-maven-plugin
2.3.7.10. tomcat8-maven-plugin
2.4. Gradle 5
2.4.1. 安装 Gradle
2.4.1.1. CentOS
2.4.1.2. Mac
2.4.2. Example
2.4.3. gradle 命令
2.4.3.1. tasks 列出任务
2.4.4. build.gradle
2.4.4.1. repositories
2.4.4.2. dependencies
2.4.4.3. jar
2.4.5. gradle.properties
2.4.5.1. 列出 properties
2.4.5.2. 自定义 gradle.properties
2.4.5.3.
2.4.5.4. System.properties
2.5. JitPack - Easy to use package repository for Git
2.6. Artifactory
2.6.1. Artifactory Web UI
2.6.2. build.gradle
3. Servlet
3.1. Example
3.2. Session
3.3. HttpServletRequest
3.4. Filter
3.4.1. web.xml
3.4.2. Filter 类
3.5. Listener
3.5.1. web.xml
3.5.2. NewsListener 类
3.5.3. NewsTask 类
3.5.4. JSP 中心显示
3.6. JSP
3.6.1. 注释
3.6.2. pageContext
3.6.2.1. queryString
3.6.3. request
3.6.3.1. Form
3.6.4.
3.6.4.1. sendRedirect
3.6.5. cookie
3.6.6. session
3.6.7. page
3.6.7.1. Session
3.6.8. trimDirectiveWhitespaces
3.6.9. include
3.6.10. jsp
3.6.10.1. jsp:forward
3.6.11. error-page
3.6.12. JSP 编程
3.6.12.1. 随机数
3.6.13. FAQ
3.6.13.1. http://www.netkiller.cn/test.html;jsessionid=7D25CE666FF437F2094AA945E97CEB37
3.7. JSTL(JavaServer Pages Standard Tag Library)
3.7.1. c:set
3.7.1.1. c:remove
3.7.2. c:out
3.7.3. c:url
3.7.4. c:redirect
3.7.5. c:import
3.7.6. c:if
3.7.6.1. boolean
3.7.7. c:choose
3.7.8. c:forEach
3.7.8.1. List 处理
3.7.8.2. Map 处理
3.7.9. empty 判断是否为空
3.7.10. JSTL fmt Tag setBundle Example
3.7.10.1. fmt:message
3.7.10.1.1. Language Package
3.7.10.1.2. fmt:message 变量
3.7.10.2.
3.8. WebSocket
3.8.1. Server
3.8.2. Client
I. Spring Framework
4. Spring 开发环境
4.1. Java 开发环境
4.2. 安装 Spring Tool Suite
4.3. Dashboard
4.4. Spring Initializr - Bootstrap your application
5. Spring Boot
5.1. Spring Boot Quick start
5.1.1. 创建项目
5.1.2. pom.xml
5.1.3. Controller
5.2. Springboot with Maven
5.2.1. resource
5.2.2. Maven run
5.2.3. Spring Boot maven 插件 build-image
5.2.4. 生成项目信息
5.3. SpringApplication
5.3.1. 运行 Spring boot 项目
5.3.1.1. Linux systemd
5.3.1.2. 传统 init.d 脚本
5.3.1.3. 编译用于Tomcat的 War
5.3.2. @SpringBootApplication
5.3.2.1. 排除 @EnableAutoConfiguration 加载项
5.3.3. @EnableAutoConfiguration
5.3.4. @ComponentScan
5.3.5. @EntityScan 实体扫描
5.3.6. @EnableJpaRepositories
5.3.7. CharacterEncodingFilter
5.3.8. 隐藏 Banner
5.3.9. 实体与仓库扫描
5.3.10. 列出 Beans
5.3.11. Tomcat 端口
5.3.12. 配置项设定
5.3.13.
5.4. Properties 配置文件
5.4.1. application.properties 配置文件
5.4.1.1. application.properties 参考
5.4.1.2. 启动指定参数
5.4.1.3. 加载排除
5.4.1.4. PID FILE
5.4.1.5. server
5.4.1.6. logging
5.4.1.7. 内嵌 tomcat server
5.4.1.8. servlet
5.4.1.9. JSON 输出与日期格式化
5.4.1.10. SMTP 相关配置
5.4.1.11. Redis
5.4.1.12. MongoDB
5.4.1.13. MySQL
5.4.1.14. Oracle
5.4.1.15. default_schema
5.4.1.16. datasource
5.4.1.17. velocity
5.4.1.18. Security 相关配置
5.4.1.19. MVC 配置
5.4.1.20. Kafka 相关配置
5.4.2. Properties 文件
5.4.2.1. @Value 注解
5.4.2.2. containsProperty 读取配置文件
5.4.2.3. @PropertySource 注解载入 properties 文件
5.4.2.4. @EnableConfigurationProperties 引用自定义 *.properties 配置文件
5.4.2.5. 手工载入 *.properties 文件
5.4.2.6. spring.profiles.active 参数切换配置文件
5.4.2.7. SpringApplicationBuilder.properties() 方法添加配置项
5.4.2.8. 参数引用
5.4.2.9. 产生随机数
5.4.2.10. List 列表类型
5.4.2.11. Map类型
5.4.2.12. Binder
5.5. Spring boot with Logging
5.5.1. 配置日志文件
5.5.1.1. 日志输出级别
5.5.1.2. Spring boot 2.1 以后的版本不打印 Mapped 日志问题
5.5.1.3. 禁止控制台输出日志
5.5.1.4. 定制日志格式
5.5.2. 打印日志
5.5.2.1. lombok
5.5.3. logback 配置详解
5.5.3.1. 标准输出
5.5.3.2. 分隔日志
5.5.3.3. 按照文件尺寸分割日志
5.5.3.4. 指定Class过滤日志
5.5.3.5. 日志写入 MongoDB
5.5.3.6. configuration 属性配置
5.5.3.7. contextName 设置上下文名称
5.5.3.8. property 设置变量
5.5.3.9. encoder 日志格式设置
5.5.3.10. RollingFileAppender
5.6. Spring boot with Jetty
5.7. Spring boot with HTTP2 SSL
5.7.1. 生成自签名证书
5.7.2. application.properties 配置文件
5.7.3. 启动 Spring boot
5.7.4. restTemplate 调用实例
5.7.5. HTTP2
5.8. Spring boot with Webpage
5.8.1. Maven
5.8.2. application.properties
5.8.3. Application
5.8.4. IndexController
5.8.5. src/main/webapp/WEB-INF/jsp/index.jsp
5.8.6. 集成模板引擎
5.9. Spring boot with Velocity template
5.9.1. Maven
5.9.2. Resource
5.9.3. Application
5.9.4. RestController
5.9.5. Test
5.10. Spring boot with Thymeleaf
5.10.1. Maven
5.10.2. application.properties
5.10.3. Controller
5.10.4. HTML5 Template
5.11. Spring boot with Session share
5.11.1. Redis
5.11.1.1. Maven
5.11.1.2. application.properties
5.11.1.3. Application
5.11.2. 测试 Session
5.11.3. JDBC
5.11.4. Springboot 2.1
5.12. Spring boot with Caching
5.12.1. maven
5.12.2. 启用 Cache
5.12.3. 测试 Controller
5.12.4. @Cacheable 的用法
5.12.5. @CachePut 用法
5.12.6. 解决Expire 和 TTL 过期时间
5.12.7. SpEL表达式
5.13. Spring boot with Email
5.13.1. Maven
5.13.2. Resource
5.13.3. POJO
5.13.4. RestController
5.13.5. Test
5.14. Spring boot with Hessian
5.14.1. Maven
5.14.2. Application
5.14.3. HessianServiceExporter
5.14.4. Service
5.14.5. RestController
5.15. Spring boot with Git version
5.15.1. CommonRestController 公共控制器
5.15.2. VersionRestController 测试控制器
5.15.3. 创建 .gitattributes 文件
5.16. Spring boot with Data restful
5.16.1. Maven
5.17. Spring boot with ELK(Elasticsearch + Logstash + Kibana)
5.17.1. TCP 方案
5.17.2. Redis 方案
5.17.3. Kafka 方案
5.17.4. Other
5.18. Springboot with Ethereum (web3j)
5.18.1. Maven
5.18.2. application.properties
5.18.3. TestRestController
5.18.4. 测试
5.19. Spring boot with Async
5.19.1. 最简单的配置
5.19.2. 异步线程池
5.20. Spring boot with csv
5.21. Spring boot with Redis
5.21.1. Spring boot with Redis
5.21.1.1. maven
5.21.1.2. application.properties
5.21.1.3. JUnit
5.21.1.4. Controller
5.21.2. Redis Pub/Sub
5.21.2.1. Redis配置类
5.21.2.2. 订阅和发布类
5.21.2.3. 消息发布演示
5.22. Spring boot with MongoDB
5.22.1. Maven
5.22.2. Application
5.22.3. MongoTemplate
5.22.4. Repository
5.23. Spring boot with MySQL
5.23.1. Maven
5.23.2. Resource
5.23.3. Application
5.23.4. JdbcTemplate
5.23.5. CrudRepository
5.24. Spring boot with Oracle
5.24.1. Maven
5.24.2. application.properties
5.24.3. Application
5.24.4. CrudRepository
5.24.5. JdbcTemplate
5.24.6. Controller
5.25. Spring boot with PostgreSQL
5.25.1. pom.xml
5.25.2. application.properties
5.25.3. Application
5.25.4. CrudRepository
5.25.5. JdbcTemplate
5.25.6. Controller
5.25.7. Test
5.26. Spring boot with Datasource
5.26.1. Master / Slave 主从数据库数据源配置
5.26.1.1. application.properties
5.26.1.2. 配置主从数据源
5.26.1.3. 选择数据源
5.26.2. 多数据源配置
5.26.3. JPA 多数据源
5.26.4. Connection and Statement Pooling
5.26.4.1. org.apache.tomcat.jdbc.pool.DataSource
5.26.4.2. druid
5.26.4.3. c3p0 - JDBC3 Connection and Statement Pooling
5.26.4.4. dbcp2
5.26.4.5. bonecp
5.26.4.6. dbcp2
5.27. Spring boot with Elasticsearch
5.27.1. Maven
5.27.2. Application
5.27.3. application.properties
5.27.4. Domain
5.27.5. ElasticsearchRepository
5.28. Spring boot with Elasticsearch TransportClient
5.28.1. Maven
5.28.2. Application
5.28.3. application.properties
5.28.4. ElasticsearchConfiguration
5.28.5. RestController
5.29. Spring boot with Apache Hive
5.29.1. Maven
5.29.2. application.properties
5.29.3. Configuration
5.29.4. CURD 操作实例
5.30. Spring boot with Phoenix
5.30.1. Maven
5.30.2. application.properties
5.30.3. Configuration
5.31. Spring boot with RabbitMQ(AMQP)
5.31.1. maven
5.31.2. RabbitMQConfig
5.31.3. 生产者
5.31.4. 消费者
5.32. Spring boot with Apache Kafka
5.32.1. 安装 kafka
5.32.2. maven
5.32.3. Spring boot Application
5.32.4. EnableKafka
5.32.5. KafkaListener
5.32.6. 测试
5.32.7. 完整的发布订阅实例
5.32.7.1. Consumer
5.32.7.2. Producer
5.32.7.3. Test
5.32.8. Spring cloud with Kafka
5.32.8.1. Application 主文件
5.32.8.2. 资源配置文件
5.32.8.3. 启用 kafka
5.32.8.4. 消息发布主程序
5.33. Spring boot with Scheduling
5.33.1. Application.java
5.33.2. Component
5.33.3. 查看日志
5.33.4. 计划任务控制开关
5.33.5. @Scheduled 详解
5.33.5.1. 每3秒钟一运行一次
5.33.5.2. 凌晨23点运行
5.33.6. Timer 例子
5.33.7. ScheduledExecutorService 例子
5.34. Spring boot with Swagger
5.34.1. Maven 文件
5.34.2. SpringApplication
5.34.3. EnableSwagger2
5.34.4. RestController
5.34.5. @Api()
5.34.6. @ApiOperation()
5.34.7. @ApiResponses
5.34.8. @ApiModel 实体类
5.35. Spring boot with lombok
5.35.1. @Builder
5.35.2. @Slf4j 注解
5.36. Spring boot with Docker
5.36.1. 通过 Docker 命令构建镜像
5.36.1.1. 手工编译镜像
5.36.1.2. Dockerfile 放在 src/main/docker/Dockerfile 下
5.36.1.3. 通过参数指定 Springboot 文件
5.36.1.4. SPRING_PROFILES_ACTIVE 指定配置文件
5.36.1.5. 推送镜像到仓库
5.36.2. 通过 Maven 构建 Docker 镜像
5.36.2.1. Maven + Dockerfile 方案一
5.36.2.2. Maven + Dockerfile 方案二
5.36.2.3. Maven 不使用 Dockerfile 文件
5.36.2.4. 推送镜像
5.36.3. [ERROR] No plugin found for prefix 'dockerfile' in the current project and in the plugin groups [org.apache.maven.plugins, org.codehaus.mojo] available from the repositories [local (/Users/neo/.m2/repository), central (https://repo.maven.apache.org/maven2)] -> [Help 1]
5.36.4. curl: (35) LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to localhost:8888
5.37. Spring boot with Docker stack
5.37.1. 编译 Docker 镜像
5.37.2.
5.38. Spring boot with Kubernetes
5.38.1. Kubernetes 编排脚本
5.38.2. 部署镜像
5.39. Spring boot with command line
5.39.1. Maven
5.39.2. CommandLineRunner 例子
5.39.3. ApplicationRunner 例子
5.40. Spring Boot Actuator
5.40.1. Maven 依赖
5.40.2. 与 Spring Boot Actuator 有关的配置
5.40.2.1. 禁用HTTP端点
5.40.2.2. 安全配置
5.40.3. actuator 接口
5.40.4. 健康状态
5.40.4.1. 健康状态
5.40.5. 关机
5.40.6. info 配置信息
5.40.7. 计划任务
5.41. String boot with RestTemplate
5.41.1. RestTemplate Example
5.41.1.1. pom.xml
5.41.1.2. web.xml
5.41.1.3. springframework.xml
5.41.1.4. RestController
5.41.1.5. POJO
5.41.1.6. 在控制器中完整实例
5.41.1.7. 测试
5.41.2. GET 操作
5.41.2.1. 返回字符串
5.41.2.2. 传递 GET 参数
5.41.3. POST 操作
5.41.3.1. postForObject
5.41.3.2. postForEntity
5.41.4. PUT 操作
5.41.5. Delete 操作
5.41.6. 上传文件
5.41.7. HTTP Auth
5.41.7.1. Client
5.41.8. PKCS12
5.41.9. Timeout 超时设置
5.41.9.1. JRE 启动参数设置超时时间
5.41.9.2. RestTemplate timeout with SimpleClientHttpRequestFactory
5.41.9.3. @Configuration 方式
5.42. SpringBootTest
5.42.1. Maven 依赖
5.42.2. 测试类
5.42.2.1. Junit基本注解介绍
5.42.3.
5.42.3.1. Assert.assertEquals 判断相等
5.42.3.2. Assert.assertTrue
5.42.4. JPA 测试
5.42.5.
5.42.6. Controller单元测试
5.42.7. WebTestClient
5.43. Spring boot with Aop
5.43.1. Aspect
5.43.1.1. Maven
5.43.1.2. Pojo 类
5.43.1.3. Service 类
5.43.1.4. Aspect 类
5.43.1.5. 控制器
5.43.1.6. Application
5.43.1.7. 测试
5.44. Spring boot with starter
5.44.1. 实现 starter
5.44.1.1. Maven pom.xml 依赖包
5.44.1.2. 配置文件处理
5.44.1.3. 自动配置文件
5.44.1.4. 启用 starter 的自定义注解
5.44.2. 引用 starter
5.44.2.1. Maven pom.xml 引入依赖
5.44.2.2. 通过注解配置 starter
5.44.2.3. 测试运行结果
5.45. Spring boot with Grafana
5.45.1. Springboot 集成 InfluxDB
5.45.2. InfluxDB
5.46. Spring Boot with Prometheus
5.46.1. Maven 依赖
5.46.2. application.properties 配置文件
5.46.3. 启动类
5.46.4. 测试
5.46.5. 控制器监控
5.46.6. 自定义埋点监控
5.46.6.1. 拦截器
5.46.6.2. 计数器元件
5.46.6.3. 配置类
5.46.6.4. 测试埋点效果
6. Spring MVC
6.1. @EnableWebMvc
6.1.1. CORS 跨域请求
6.1.2. Spring MVC CORS with WebMvcConfigurerAdapter
6.2. @Controller
6.2.1. @RequestMapping
6.2.1.1. @RequestMapping("/")
6.2.1.2. 映射多个URL
6.2.1.3. 匹配通配符
6.2.1.4. headers
6.2.1.5. @GetMapping
6.2.1.6. @PostMapping
6.2.1.7. RequestMapping with Request Parameters - @RequestParam
6.2.2. @RequestBody
6.2.2.1. @RequestBody 传递 List
6.2.2.2. 传递 Map 数据
6.2.3. @RequestHeader - 获取 HTTP Header 信息
6.2.3.1. @RequestHeader 从 Http 头中获取变量
6.2.4. RequestMapping with Path Variables - @PathVariable
6.2.4.1. URL 参数传递
6.2.4.2. 默认值
6.2.4.3. URL 传递 Date 类型
6.2.4.4. 处理特殊字符
6.2.4.5. @PathVariable 注意事项
6.2.5. @ModelAttribute
6.2.6. @ResponseBody
6.2.6.1. 直接返回HTML
6.2.7. @ResponseStatus 设置 HTTP 状态
6.2.8. @CrossOrigin
6.2.8.1. maxAge
6.2.9. @CookieValue - 获取 Cookie 值
6.2.10. @SessionAttributes
6.2.11. ModelAndView
6.2.11.1. 变量传递
6.2.11.2. ModelMap 传递多个变量
6.2.11.3. redirect
6.2.11.4. ArrayList
6.2.11.5. HashMap
6.2.11.6. 传递对象
6.2.11.7.
6.2.12. HttpServletRequest / HttpServletResponse
6.2.12.1. HttpServletResponse
6.2.12.2. HttpServletRequest
6.3. @RestController
6.3.1. 返回实体
6.3.2. JSON
6.3.3. 处理原始 RAW JSON 数据
6.3.4. 返回 JSON 对象 NULL 专为 "" 字符串
6.3.5. XML
6.3.6. 兼容传统 json 接口
6.3.7. @PageableDefault 分页
6.3.8. 上传文件
6.4. View
6.4.1. 配置静态文件目录
6.4.2. 添加静态文件目录
6.4.3. Using Spring’s form tag library
6.4.3.1. css
6.4.3.2. cssClass
6.4.4. Thymeleaf
6.4.4.1. Maven pom.xml
6.4.4.2. Spring 配置
6.4.4.3. controller
6.4.4.4. HTML5 Template
6.4.4.5. thymeleaf 渲染表格
6.4.4.6. URL 链接
6.4.4.7. 拆分字符串
6.4.4.8. 日期格式化
6.4.5. FreeMarker
6.5. Service
6.5.1. Application
6.5.2. 定义接口
6.5.3. 实现接口
6.5.4. 调用 Service
6.5.5. context.getBean 调用 Service
6.6. i18n 国际化
6.6.1. 在 appliction.properties 中配置启用 i18n
6.6.2. 创建语言包文件
6.6.3. 控制器重引用语言包
6.6.4. 参数传递
6.7. 校验器(Validator)
6.7.1. 常规用法
6.7.1.1. 定义校验器
6.7.1.2. 获取 BindingResult 结果
6.7.1.3. 测试校验效果
6.7.2. 自定义注解
6.7.2.1. 定义校验器注解接口
6.7.2.2. 实现接口
6.7.2.3. 注解用法
6.7.2.4. 测试注解
6.8. Interceptor
6.8.1. WebMvcConfigurerAdapter
6.8.2. HandlerInterceptor
6.9. FAQ
6.9.1. o.s.web.servlet.PageNotFound
6.9.2. HTTP Status 500 - Handler processing failed; nested exception is java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config
6.9.3. 同时使用 Thymeleaf 与 JSP
6.9.4. 排除静态内容
6.9.5. HTTP Status 406
6.9.6. Caused by: java.lang.IllegalArgumentException: Not a managed type: class common.domain.Article
6.9.7. {"error":"unauthorized","error_description":"Full authentication is required to access this resource"}
7. WebFlux framework
7.1. Getting Started
7.1.1. Maven
7.1.2. Application
7.1.3. RestController
7.1.4. 测试
7.2. WebFlux Router
7.2.1. Component 原件
7.2.2. 路由配置
7.2.3. Thymeleaf
7.2.3.1. 模板引擎 Thymeleaf 依赖
7.2.3.2. application.properties 相关的配置
7.2.3.3.
7.2.3.4. Tymeleaf 视图
7.2.4. Webflux Redis
7.2.4.1. Maven Redis 依赖
7.2.4.2. Redis 配置
7.2.4.3. Config
7.2.4.4. Service
7.2.4.5.
7.2.5. Webflux Mongdb
7.2.5.1. Maven 依赖
7.2.5.2. Repository
7.2.5.3. Service
7.2.5.4. 控制器
7.2.6. SSE
7.2.7. Mono/Flux
8. Spring Data
8.1. Jackson
8.1.1. @JsonIgnore 返回json是不含有该字段
8.1.2. @JsonFormat 格式化 json 时间格式
8.1.2.1. 日期格式化
8.1.2.2. 时区
8.1.2.3. 枚举
8.1.2.4. 枚举
8.1.3. @JsonComponent
8.2. Spring Data with Redis
8.2.1. 集成 Redis XML 方式
8.2.1.1. pom.xml
8.2.1.2. springframework-servlet.xml
8.2.1.3. Controller
8.2.1.4. index.jsp
8.2.1.5. 测试
8.2.2. RedisTemplate
8.2.2.1. stringRedisTemplate 基本用法
8.2.2.2. 设置缓存时间
8.2.2.3. 字符串截取
8.2.2.4. 追加字符串
8.2.2.5. 设置键的字符串值并返回其旧值
8.2.2.6. increment
8.2.2.7. 删除 key
8.2.2.8. 返回字符串长度
8.2.2.9. 如果key不存便缓存。
8.2.2.10. 缓存多个值 /获取多个值 multiSet / multiGet
8.2.2.11. List
8.2.2.12. SET 数据类型
8.2.2.13. 有序的 set 集合
8.2.2.14. Hash
8.2.2.15. 过期时间未执行
8.2.2.16. setBit / getBit 二进制位操作
8.2.2.17. 存储 Json 对象
8.2.3. Spring Data Redis - Repository Examples
8.2.3.1. @EnableRedisRepositories 启动 Redis 仓库
8.2.3.2. 定义 Domain 类
8.2.3.3. Repository 接口
8.2.3.4. 测试代码
8.3. Spring Data with MongoDB
8.3.1. Example Spring Data MongoDB
8.3.1.1. pom.xml
8.3.1.2. springframework-servlet.xml
8.3.1.3. POJO
8.3.1.4. Controller
8.3.1.5. 查看测试结果
8.3.1.6. 条件查询
8.3.2. @Document
8.3.2.1. 指定表名
8.3.2.2. @Id
8.3.2.3. @Version
8.3.2.4. @Field 定义字段名
8.3.2.5. @Indexed
8.3.2.6. @CompoundIndex 复合索引
8.3.2.7. @TextIndexed
8.3.2.8. @GeoSpatialIndex 地理位置索引
8.3.2.9. @Transient 丢弃数据,不存到 mongodb
8.3.2.10. @DBRef 做外外键引用
8.3.2.11. @DateTimeFormat
8.3.2.12. @NumberFormat
8.3.2.13. 在 @Document 中使用 Enum 类型
8.3.2.14. 在 @Document 中定义数据结构 List/Map
8.3.2.15. GeoJson 数据类型
8.3.3. MongoRepository
8.3.3.1. 扫描仓库接口
8.3.3.2. findAll()
8.3.3.3. deleteAll()
8.3.3.4. save()
8.3.3.5. count()
8.3.3.6. exists() 判断是否存在
8.3.3.7. existsById()
8.3.3.8. findByXXXX
8.3.3.9. findAll with OrderBy
8.3.3.10. findAll with Sort
8.3.3.11. FindAll with Pageable
8.3.3.12. StartingWith 和 EndingWith
8.3.3.13. Between
8.3.3.14. Before / After
8.3.3.15. @Query
8.3.4. mongoTemplate
8.3.4.1. Save 保存
8.3.4.2. Insert
8.3.4.3. updateFirst 修改符合条件第一条记录
8.3.4.4. updateMulti 修改符合条件的所有
8.3.4.5. 查找并保存
8.3.4.6. upsert - 修改符合条件时如果不存在则添加
8.3.4.7. 删除
8.3.4.8. 查找一条数据
8.3.4.9. 查找所有数据
8.3.4.10. Query
8.3.4.11. Criteria
8.3.4.12. Update
8.3.4.13. BasicUpdate
8.3.4.14. Sort
8.3.4.15. Query + PageRequest
8.3.4.16. newAggregation
8.3.4.17. 创建索引
8.3.4.18. 子对象操作
8.3.5. GeoJson 反序列化
8.3.6. FAQ
8.3.6.1. location object expected, location array not in correct format; nested exception is com.mongodb.MongoWriteException: location object expected, location array not in correct format
8.4. Spring Data with MySQL
8.4.1. 选择数据库表引擎
8.4.2. 声明实体
8.4.2.1. @Entity 声明实体
8.4.2.2. @Table 定义表名
8.4.2.3. @Id 定义主键
8.4.2.4. @Column 定义字段
8.4.2.5. @Lob 注解属性将被持久化为 Blog 或 Clob 类型
8.4.2.6. @NotNull 不能为空声明
8.4.2.7. @Temporal 日期定义
8.4.2.8. @DateTimeFormat 处理日期时间格式
8.4.2.9. 默认时间规则
8.4.2.10. Enum 枚举数据类型
8.4.2.11. SET 数据结构
8.4.2.12. JSON 数据类型
8.4.2.13. 索引
8.4.2.14. 创建复合主键
8.4.2.15. @JoinColumn
8.4.2.16. @OneToOne
8.4.2.17. OneToMany 一对多
8.4.2.18. ManyToMany 多对多
8.4.2.19. 外键级联删除
8.4.2.20. 其他
8.4.3. 实体继承
8.4.4. Repository
8.4.4.1. CrudRepository
8.4.4.2. JpaRepository
8.4.4.3. findByXXX
8.4.4.4. count 操作
8.4.4.5. OrderBy
8.4.4.6. GreaterThan
8.4.4.7. PageRequest 翻页操作
8.4.4.8. Sort 排序操作操作
8.4.4.9. Query
8.4.4.10. @Transactional
8.4.4.11. 锁 @Lock
8.5. EntityManager
8.6. Spring Data with JdbcTemplate
8.6.1. execute
8.6.2. queryForInt
8.6.3. queryForLong
8.6.4. queryForObject
8.6.4.1. 返回整形与字符型
8.6.4.2. 查询 Double 类型数据库
8.6.4.3. 返回日期
8.6.4.4. 返回结果集
8.6.4.5. 通过 "?" 向SQL传递参数
8.6.4.6. RowMapper 记录映射
8.6.5. queryForList
8.6.5.1. Iterator 用法
8.6.5.2. for 循环
8.6.5.3. forEach 用法
8.6.6. queryForMap
8.6.7. query
8.6.7.1. ResultSet
8.6.7.2. ResultSetExtractor
8.6.7.3. RowMapper
8.6.8. queryForRowSet
8.6.9. update
8.6.10.
8.6.11. 实例参考
8.6.11.1. 参数传递技巧
8.7. Spring Data with Elasticsearch
8.7.1. 内嵌 Elasticsearch
8.7.1.1. Maven
8.7.1.2. src/main/resources/application.properties
8.7.1.3. Domain Class
8.7.1.4. ElasticsearchRepository
8.7.1.5. SearchRestController
8.7.1.6. 测试
8.7.2. 集群模式
8.7.3. Document
8.7.4. Elasticsearch 删除操作
8.7.5. FAQ
8.7.5.1. java.lang.IllegalStateException: Received message from unsupported version: [2.0.0] minimal compatible version is: [5.0.0]
8.8. Spring Data FAQ
8.8.1. No identifier specified for entity
8.8.2. Oracle Date 类型显示日期和时间
8.8.3. java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer
8.8.4. Executing an update/delete query; nested exception is javax.persistence.TransactionRequiredException: Executing an update/delete query
9. Spring Security
9.1. Spring Security with HTTP Auth
9.1.1. 默认配置
9.1.2. 设置用户名和密码
9.1.3. 禁用 Security
9.2. Spring boot with Spring security
9.2.1. Maven
9.2.2. Reource
9.2.3. Application
9.2.4. WebSecurityConfigurer
9.2.5. RestController
9.2.6. 测试
9.2.7. Spring + Security + MongoDB
9.2.7.1. Account
9.2.7.2. AccountRepository
9.2.7.3. WebSecurityConfiguration
9.3. Spring Boot with Web Security
9.3.1. EnableWebSecurity
9.3.2. Web静态资源
9.3.3. 正则匹配
9.3.4. 登陆页面,失败页面,登陆中页面
9.3.5. CORS
9.3.6. X-Frame-Options 安全
9.4. 访问控制列表(Access Control List,ACL)
9.4.1. antMatchers
9.4.2. HTTP Auth
9.4.3. Rest
9.4.4. hasRole
9.4.5. hasAnyRole()
9.4.6. withUser
9.4.6.1. 添加用户
9.4.6.2. 添加多个用户,并指定角色
9.4.6.3. 获取当前用户
9.5. Spring Authorization Server
9.5.1. Oauth2 协议
9.5.1.1. token
9.5.1.2. grant_type
9.5.1.3. 授权码授权模式(Authorization Code Grant)
9.5.1.4. 密码模式(Resource Owner Password Credentials Grant)
9.5.1.5. 客户端凭证模式(Client Credentials Grant)
9.5.1.6. 刷新 TOKEN 方式
9.5.2. Maven 依赖
9.5.3. Spring cloud with Oauth2
9.5.3.1. authorization_code
9.5.3.2. Spring boot with Oauth2 - Password
9.5.3.3. Spring boot with Oauth2 jwt
9.5.3.4. Spring boot with Oauth2 jwt 非对称证书
9.5.3.5. Apple iOS 访问 Oauth2
9.5.3.6. Oauth2 客户端
9.5.3.7. Android Oauth2 + Jwt example
9.5.3.8. RestTemplate 使用 HttpClient
9.5.3.9. 自签名证书信任问题
9.5.3.10. Principal
9.5.3.11. SecurityContextHolder 对象
9.5.3.12. 资源服务器配置
9.5.3.13. Client
9.5.3.14. Oauth2 常见问题
10. Spring Cloud
10.1. Spring Cloud Config
10.1.1. Maven 项目 pom.xml 文件
10.1.2. Server
10.1.2.1. Maven config 模块
10.1.2.2. Application
10.1.2.3. application.properties
10.1.2.4. Git 仓库
10.1.2.5. 测试服务器
10.1.3. Client
10.1.3.1. Maven pom.xml
10.1.3.2. Application
10.1.3.3. bootstrap.properties
10.1.3.4. 测试 client
10.1.4. Config 高级配置
10.1.4.1. 仓库配置
10.1.4.2. Config server 用户认证
10.1.4.3. 加密敏感数据
10.1.4.4. Spring Cloud Config JDBC Backend
10.1.5. Old
10.1.5.1. Server (Camden.SR5)
10.1.5.2. Client (Camden.SR5)
10.2. Spring Cloud Consol
10.2.1. Spring Cloud Consul 配置
10.2.2. Maven 父项目
10.2.3. Consul 服务生产者
10.2.3.1. Maven
10.2.3.2. application.properties
10.2.3.3. SpringApplication
10.2.3.4. TestController
10.2.4. Consul 服务消费者
10.2.4.1. Maven
10.2.4.2. application.properties
10.2.4.3. SpringApplication
10.2.4.4. TestController
10.2.5. Openfeign
10.2.5.1. Maven
10.2.5.2. application.properties
10.2.5.3. SpringApplication
10.2.5.4. Feign 接口
10.2.5.5. TestController
10.3. Spring Cloud Netflix
10.3.1. Eureka Server
10.3.1.1. Maven
10.3.1.2. Application
10.3.1.3. application.properties
10.3.1.4. 检查注册服务器
10.3.2. Eureka Client
10.3.2.1. Maven
10.3.2.2. Application
10.3.2.3. RestController
10.3.2.4. application.properties
10.3.2.5. 测试
10.3.3. Feign client
10.3.3.1. Maven
10.3.3.2. Application
10.3.3.3. interface
10.3.3.4. application.properties
10.3.3.5. 测试
10.3.3.6. fallback
10.3.4. 为 Eureka Server 增加用户认证
10.3.4.1. Maven
10.3.4.2. application.properties
10.3.4.3. Eureka Client
10.3.4.4. Feign Client
10.3.5. Eureka 配置项
10.3.5.1. /eureka/apps
10.3.5.2. Eureka instance 配置项
10.3.5.3. Eureka client 配置项
10.3.5.4. Eureka Server配置项
10.3.6. ribbon
10.3.6.1.
10.3.6.2. LoadBalancerClient 实例
10.3.6.3. Ribbon 相关配置
10.3.7. 获取 EurekaClient 信息
10.3.8. Zuul
10.3.8.1. Maven
10.3.8.2. EnableZuulProxy
10.3.8.3. application.yml
10.3.8.4. 负载均衡配置
10.4. Openfeign
10.4.1. Openfeign 扫描包配置
10.4.2. 用户认证
10.4.3. 配置连接方式
10.4.4.
10.5. Spring Cloud Gateway
10.5.1. Gateway 例子
10.5.1.1. Maven
10.5.1.2. SpringApplication
10.5.1.3. application.yml
10.5.1.4. RouteLocator 方式
10.5.2. 路由配置
10.5.2.1. 转发操作
10.5.2.2. URL 参数
10.6. Spring Cloud Stream
10.7. Spring Cloud Bus
10.8. Spring Cloud Sleuth
10.9. Spring Cloud 相关的 application.properties 配置
10.9.1. 启用或禁用 bootstrap
10.9.2. bootstrap.properties 配置文件
10.10. Spring Cloud with Kubernetes
10.10.1. Config
10.10.1.1. Maven 依赖
10.10.1.2. Spring Cloud 配置文件
10.10.1.3. 程序文件
10.10.1.4. Kubernetes 编排脚本
10.10.1.5. 测试
10.10.2. 注册发现
10.10.2.1. Maven 父项目
10.10.2.2. provider
10.10.2.3. consumer
10.10.2.4. 测试
10.10.2.5.
10.11. FAQ
10.11.1. Cannot execute request on any known server
10.11.2. @EnableDiscoveryClient与@EnableEurekaClient 区别
10.11.3. Feign请求超时
10.11.4. 已停止的微服务节点注销慢或不注销
10.11.5. Feign 启动出错 PathVariable annotation was empty on param 0.
10.11.6. Feign 提示 Consider defining a bean of type 'common.feign.Cms' in your configuration.
10.11.7. Load balancer does not have available server for client
10.11.8. Eureka Client (Dalston.SR1)
10.11.8.1. Maven
10.11.8.2. Application
10.11.8.3. RestController
10.11.8.4. application.properties
10.11.8.5. 测试
10.11.9. Config Server(1.3.1.RELEASE)
10.11.9.1. Server
10.11.9.2. Client
11. Tomcat Spring 运行环境
11.1. Maven
11.2. Spring Boot Quick start
11.2.1. 创建项目
11.2.2. pom.xml
11.2.3. Controller
11.3. Spring MVC configuration
11.4. Tomcat
11.5. 集成 Mybatis
11.5.1. pom.xml
11.5.2. properties
11.5.3. dataSource
11.5.4. SqlSessionFactory
11.5.5. Mapper 扫描
11.5.6. Mapper 单一class映射
11.5.7. Service
11.5.8. 测试实例
12. Miscellaneous
12.1. Object to Json
12.2. Json To Object
13. FAQ
13.1. org.hibernate.dialect.Oracle10gDialect does not support identity key generation
13.2. No identifier specified for entity
13.3. Could not read document: Invalid UTF-8 middle byte 0xd0
13.4. java.sql.SQLRecoverableException: IO Error: The Network Adapter could not establish the connection
13.5. Field javaMailSender in cn.netkiller.rest.EmailRestController required a bean of type 'org.springframework.mail.javamail.JavaMailSender' that could not be found.
13.6. org.postgresql.util.PSQLException: FATAL: no pg_hba.conf entry for host "172.16.0.3", user "test", database "test ", SSL off
13.7. Spring boot 怎样显示执行的SQL语句
13.8. Cannot determine embedded database driver class for database type NONE
13.9. Spring boot / Spring cloud 时区差8个小时
13.10. @Value 取不到值
13.11. Spring boot 2.1.0
13.12. Field authenticationManager in cn.netkiller.oauth2.config.AuthorizationServerConfigurer required a bean of type 'org.springframework.security.authentication.AuthenticationManager' that could not be found.
13.13. 打印 Bean 信息
14. MyBatis
14.1. Mybatis 入门
14.2. 接口注解
15. Apache Struts
15.1. struts.xml
15.1.1. include
15.2. Struts Tags
15.2.1. property
15.2.2. set
15.2.3. url
15.2.4. s:include
15.2.5. s:action
15.2.6. HTML Form
15.2.6.1. form
15.2.6.2. textfield
15.2.6.3. s:hidden
15.2.6.4. select
15.2.7. iterator
15.2.8. if elseif else
15.3. Action
15.3.1. redirect
15.3.2. redirectAction
15.3.3. JSON
15.3.3.1. enableGZIP 压缩传输
15.3.3.2. excludeProperties 排除 Properties
15.3.3.3.
15.3.4. 传递 Timestamp 变量
15.4. Ajax + JSON
15.4.1. GET/POST JSON
15.5. Json 内容展示
15.5.1. 禁止方法
15.5.2. 格式化日期
15.5.3. 重命名变量名
15.5.4. org.apache.struts2.json
15.6. Interceptor
15.6.1. Session
15.7. Action 中使用线程
15.8. 日志
15.9. FAQ
15.9.1. Struts 怎样判断用户来自电脑还是移动设备
16. Apache Tiles
16.1. 配置 Tiles
16.1.1. Maven
16.1.2. web.xml
16.2. Template 配置模板
16.3. Struts tiles
17. Play
18. Log
18.1. Logback
18.1.1. Maven 包
18.1.2. Example
18.2. slf4j
18.3. log4j
18.3.1. 安装 Log4j
18.3.1.1. 手工安装
18.3.1.2. Maven
18.3.2. log4j 环境变量
18.3.3. Log4j Example
18.3.4. log4j.properties
19. JSON (JavaScript Object Notation)
19.1. javax.json.*
19.1.1. Json 编码
19.1.2. Json 解码
19.1.3. URL获取Json
19.2. Jackson
19.2.1. ObjectToJSON
19.2.2. JSONToObject
19.2.3. JsonNode
20. AMQP(Advanced Message Queuing Protocol)
20.1. Send and Recv
20.2. direct
21. NoSQL
21.1. MongoDB
21.1.1. pom.xml
21.1.2. 插入操作
21.1.3. 读取操作
22. Elasticsearch API
22.1. Client
22.2. insert
22.3. Get
22.4. delete
22.5. Search
22.6. Query 查询
22.6.1. match all 匹配所有数据
22.6.2. match 匹配查询
22.6.3. match phrase 短语精准匹配
22.7. Filter 过滤
22.7.1. term
22.7.2. range
22.8. Sorting
22.9. 返回 Source 字段
22.10. Count
22.11. Example 范例
22.11.1. Spring boot 案例
22.12. FAQ
22.12.1. 显示查询 JSON 字符串
23. Jersey - RESTful Web Services in Java.
23.1. Client 2.x
23.1.1. Maven 版本
23.1.2. GET 操作
23.1.3. GET + Auth 用户认证
23.2. Client 1.x
23.2.1. Jersey + Auth + HTTP2 + SSL
24. Apache HttpComponents
24.1. org.apache.commons.lang3
24.1.1. HTML 标签处理
24.1.2. StringUtils.join 使用特定字符链接字符串
24.1.3. RandomStringUtils
24.2. commons-text
24.2.1. 禁止转译 json
24.3. Apache HttpClient
24.3.1. Maven
24.3.2. HTTP POST 操作
24.3.2.1. Post Data
24.3.2.2. POST RAW 数据
24.3.2.3. POST GBK 编码得数据
24.3.3. HTTPS
24.3.3.1. Get https 接口
24.3.3.2. POST json 数据
24.3.4. HTTP/2
24.3.5. Java11
24.3.5.1. sync get
24.3.5.2. async get
24.3.5.3. post form
24.3.6. Host name 'api.netkiller.cn' does not match the certificate subject provided
24.3.7. HttpStatus
25. Cache
25.1. java memcached client
25.2. Jedis
25.2.1. 认证
25.2.2. jedis.keys
25.3. Ehcache
26. Kafka
26.1. 安装 Kafka 环境
26.2. Maven
26.3. 启动 kafka
26.4. 入门例子
26.4.1. 订阅例子
26.4.2. 发布例子
26.5. 线程例子
II. Java UnitTest
27. Junit5
27.1. 项目初始化
27.1.1. Maven
27.2. JUnit 5 注解
27.2.1. @Disabled
27.2.2. @Tag
27.2.3. @Nested
27.2.4. @TestFactory
27.3. JUnit 5 断言
27.3.1. assertArrayEquals
27.3.2. assertAll
27.3.3.
27.3.4. fail
27.3.5. JUnit 5 前置条件
27.4. 依赖注入
27.4.1. TestInfo
27.4.2. TestReporter
27.5. Junit4
27.5.1. 生成 HTML 报告
27.5.2. Junit4 输出格式定义
28. TestNG
29. JaCoCo - Java code coverage tool
29.1. Maven
29.2. Gradle
30. Rest Assured
30.1. 打印出 response 的 body
31. Software Development Kit
31.1. Google
31.1.1. com.google.gson
31.1.1.1. map 处理
31.1.1.2. POJO
31.1.1.3. toJson
31.1.1.4. fromJson
31.1.1.5. JsonParser
31.1.1.6. Exmaple 范例
31.1.1.6.1. Map to Json
31.1.1.7. Exmaple 范例
31.1.1.7.1. Map to Json
31.1.1.8. 处理复杂的类型
31.1.2. Guava
31.1.2.1. maven
31.1.2.2. 删除不可显示的字符
31.2. Mahout
31.2.1. 推荐系统
31.2.1.1. Maven pom.xml
31.2.1.2. 推荐程序
31.2.1.3. 数据文件
31.3. Hessian
31.4. quartz-scheduler
31.5. Redisson
III. Android 9 Pie
32. Android Studio
32.1. 卸载 Android Studio
32.2. 代码格式化
32.3. 设置兼容最低SDK版本
32.4. SDK Tools
32.4.1. 接受 License
32.4.2. 查看 SDK 列表
32.4.3. 按照 Android SDK
32.5. 命令行操作
33. AndroidManifest.xml
33.1.
33.2. 开启网络
33.3. 文件存储权限
33.4. 相机权限
33.5. GPS 定位权限
34. 配置文件
34.1. *.properties 文件
34.2. 再 AndroidManifest.xml 使用 meta-data element 定义
34.3. 再 build.gradle 文件中配置 productFlavors
35. UI Layout
35.1. 切换UI
35.1.1.
35.1.2. startActivity()
35.1.3. Activity 间数据传递
35.2. Button
35.2.1. 启用禁用
35.2.2. 实现 OnClickListener 接口
35.3. ListView
35.3.1. Array
35.3.2. List
35.3.3. setOnItemClickListener()
35.3.4. 用接口方法实现
35.4. Switch
35.5. GardView
35.6. GridView
35.7. ProgressBar
35.8. ImageView
35.9. Fragment
35.10. Dialog
35.11. Menu
36. Toast
36.1. 默认样式
36.2. 自定义样式
36.3. 带有图片的样式
37. Environment
37.1.
37.2.
37.3.
38. Schedule 计划任务
38.1. Time 和 TimerTask 定时刷新
38.2. 使用 Runnable 和 Handler 实现定时执行
39. Internationalization i18n with Android (国际化)
39.1. 创建国际化文件
39.2. strings.xml 文件
39.3. 翻译语言
39.4. 引用国际化文件
39.5. 切换语言
40. 存储
40.1. SharedPreferences
40.1.1. 操作模式
40.1.2. 保存数据
40.1.3. 读取数据
40.1.4. 通过 key 查询数据是否存在
40.1.5. 删除数据
40.1.6. 清空数据
40.1.7. 对象存储
40.1.8. SharedPreferences 读取物理存储文件
40.2. SD Card
40.2.1. SD Card 状态
41. 相机与相册
41.1. manifest 文件
41.2. layout
41.3. Activity
41.4. LED flash 做手电筒
42. 麦克风与录音
42.1. 开启麦克风和SD卡权限
42.2. layout
42.3. Activity
43. 多媒体开发
43.1. MediaPlayer
43.2. VideoView 开发
43.2.1. 播放网络视频
43.2.2. MediaController 添加翻页事件
43.2.3. 静音播放视频
43.2.4. 更新进度条
43.2.5. 完整的例子
43.3. SurfaceView
43.4. Vitamio
44. 定位
44.1. manifest 权限配置
44.2. layout
44.3. Activity
45. 电话
45.1. SIM 卡状态
45.2. 通信录与拨打电话
45.3.
46. 消息广播
46.1. 动态注册
46.2. 静态注册
46.3. 自定义用户消息广播
46.4. 本地广播
47. Service
47.1. Service的基本用法
47.1.1. manifest 文件
47.1.2. 创建 Service
47.1.3. Layout 代码
47.1.4. Activity 代码
47.2. Service 中启动线程
47.3. Service和Activity通信
47.3.1. Layout
47.3.2. Service
47.3.3. Activity
48. NFC (Near field communication)
48.1. AndroidManifest.xml 文件配置
48.2. Loyout 文件
48.3. Activity 文件
49. OkHttp - An HTTP & HTTP/2 client for Android and Java applications
49.1. Gradle
49.2. AndroidManifest.xml 开启网络访问权限
49.3. okhttp 默认是 HTTPS 开启 HTTP
49.4. GET
49.5. POST
49.5.1. POST Form Data
49.5.2. POST RAW JSON
49.5.3. 数据流提交
49.6. http header 相关设置
49.6.1. 设置 HTTP 头
49.6.2. Cookie 管理
49.6.3. 禁用缓存
49.6.4. 设置缓存 max-age
49.6.5. 强制缓存
49.7. HTTP Base Auth
49.8. HttpUrl.Builder 组装 URL 地址参数
49.9. Android Activity Example
49.10. Android Oauth2 + Jwt example
49.11. HTTP/2
50. EventBus
50.1. 添加 EventBus 依赖到项目Gradle文件
50.2. 快速开始一个演示例子
50.2.1. 创建 MessageEvent 类
50.2.2. Layout
50.2.3. Activity
50.3. Sticky Events
50.3.1. MainActivity
50.3.2. StickyActivity
50.3.3. MessageEvent
50.3.4. 删除粘性事件
50.4. 线程模型
50.5. 配置 EventBus
50.6. 事件优先级
50.7. 捕获异常事件
51. 设计模式
51.1. 单例模式
52.
52.1. java.net.UnknownServiceException: CLEARTEXT communication to 192.168.0.185 not permitted by network security policy
52.2. Caused by: android.os.NetworkOnMainThreadException
1. 附录
1.1. 一致性算法

范例清单

1.1. /etc/profile.d/java.sh
2.1. Maven properties
2.2. Maven parent
2.3. watir-webdriver example
5.1. Spring boot with Velocity template (pom.xml)
5.2. Spring boot with Email (pom.xml)
5.3. RedisTemplate
5.4. Example Spring boot with Oracle
5.5. Spring boot with Apache kafka.
5.6. Spring boot with Apache kafka.
5.7. Test Spring Kafka
8.1. Spring Data Redis Example
8.2. Spring Data MongoDB - springframework-servlet.xml
10.1. Share feign interface.
11.1. MyBatis
25.1. memcached.java