Home | 简体中文 | 繁体中文 | 杂文 | 打赏(Donations) | Github | OSChina 博客 | 云社区 | 云栖社区 | Facebook | Linkedin | 知乎专栏 | 视频教程 | About

Netkiller Java 手札

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

Mr. Neo Chan, 陈景峯(BG7NYT)



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


MMDVM Hotspot:

YSF80337 - CN China 1 - W24166/TG46001
BM_China_46001 - DMR Radio ID 4600441

文档始创于2015-11-10

版权声明

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

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

2017-11

关于《Netkiller Java 手札》

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

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


目录

1. 自述
1.1. 系列文档
1.2. 作者简介
1.3. 写给读者
1.4. 如何获得文档
1.4.1. 下载 Netkiller 手札 (epub,kindle,chm,pdf)
1.4.2. 镜像下载
1.4.3. 克隆 github 仓库
1.4.4. Yum 下载文档
1.5. 打赏(Donations)
1.5.1. 微信(Wechat)
1.5.2. 支付宝(Alipay)
1.5.3. PayPal Donations
1.5.4. 银行(Bank)
1.6. 联系方式
1. Java 12
1.1. JVM
1.1.1. 安装 Java 6
1.1.1.1. HeapDumpOnOutOfMemoryError
1.1.2. java-1.8.0-openjdk
1.1.3. docker 环境
1.1.4. java - Launches a Java application.
1.1.4.1. java 9~11
1.1.4.2. -verbose:class 显示载入jar文件
1.1.4.3. java.io.tmpdir
1.1.4.4. 显示版本号
1.1.4.5. 列出java模块
1.1.5. jar
1.1.6. jdeps - Java class dependency analyzer.
1.1.7. JShell
1.1.7.1. /help 显示帮助信息
1.1.7.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.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.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. 安装
2.3.1.1. Ubuntu
2.3.1.2. 源码安装
2.3.2. Maven 命令
2.3.2.1. 参数
2.3.2.2. help
2.3.2.3. archetype:create
2.3.2.4. clean
2.3.2.5. compile
2.3.2.5.1. 多线程编译
2.3.2.6. 编译测试代码
2.3.2.7. test
2.3.2.8. package
2.3.2.9. install
2.3.2.9.1. install-file
2.3.2.10. war
2.3.2.11. exec
2.3.2.12. dependency
2.3.2.12.1. build-classpath
2.3.2.12.2. dependency:tree 显示包依赖树
2.3.2.12.3. copy-dependencies 导出依赖包
2.3.2.12.4. analyze 查看未被使用的包
2.3.2.12.5. sources 下载源码
2.3.2.13. jar
2.3.2.14. 构建装配Maven Assembly
2.3.2.15. 加密密码
2.3.2.16. 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.5.3.1. 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 Tool Suite
4.1. 安装
4.2. Dashboard
4.3. 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. Maven 插件
5.2.1. resource
5.3. 运行 Spring boot 项目
5.3.1. Maven run
5.3.2. Linux systemd
5.3.3. 传统 init.d 脚本
5.3.4. 编译用于Tomcat的 War
5.4. SpringApplication
5.4.1. @SpringBootApplication
5.4.1.1. 排除 @EnableAutoConfiguration 加载项
5.4.2. @EnableAutoConfiguration
5.4.3. @ComponentScan
5.4.4. @EntityScan 实体扫描
5.4.5. @EnableJpaRepositories
5.4.6. CharacterEncodingFilter
5.4.7. 隐藏 Banner
5.4.8. 实体与仓库扫描
5.4.9. 列出 Beans
5.5. application.properties 配置文件
5.5.1. application.properties 参考
5.5.2. 启动指定参数
5.5.2.1. --spring.config.location 指定配置文件
5.5.2.2. --spring.profiles.active 切换配置文件
5.5.3. 加载排除
5.5.4. PID FILE
5.5.5. 内嵌 tomcat server
5.5.5.1. server.tomcat.basedir
5.5.5.2. server
5.5.5.3. access.log
5.5.5.4. logging
5.5.5.5. charset
5.5.5.6. Session 配置
5.5.5.7. cookie
5.5.5.8. error 路径
5.5.5.9. 压缩传输
5.5.5.10. server.servlet.context-path
5.5.5.11. ssl
5.5.5.12. 上传限制
5.5.6. JSON 输出与日期格式化
5.5.7. SMTP 相关配置
5.5.8. Redis
5.5.9. MongoDB
5.5.10. MySQL
5.5.11. Oracle
5.5.12. default_schema
5.5.13. datasource
5.5.14. velocity
5.5.15. Security 相关配置
5.5.16. MVC 配置
5.5.17. Kafka 相关配置
5.6. Properties 文件
5.6.1. @Value 注解
5.6.2. containsProperty 读取配置文件
5.6.3. @PropertySource 注解载入 properties 文件
5.6.4. @EnableConfigurationProperties 引用自定义 *.properties 配置文件
5.6.5. 手工载入 *.properties 文件
5.6.6. spring.profiles.active 参数切换配置文件
5.6.7. SpringApplicationBuilder.properties() 方法添加配置项
5.6.8. 参数引用
5.6.9. 产生随机数
5.6.10. List 列表类型
5.6.11. Map类型
5.6.12. Binder
5.7. Spring boot with Logging
5.7.1. 打印日志
5.7.2. 日志输出级别
5.7.3. 禁止控制台输出日志
5.7.4. 标准输出
5.7.5. 安天分隔日志
5.7.6. 按照文件尺寸分割日志
5.7.7. 指定Class过滤日志
5.7.8. 日志写入 MongoDB
5.7.9. logback 配置详解
5.7.9.1. configuration 属性配置
5.7.9.2. contextName 设置上下文名称
5.7.9.3. property 设置变量
5.7.9.4. encoder 日志格式设置
5.7.9.5. RollingFileAppender
5.8. Spring boot with HTTPS SSL
5.8.1. 生成自签名证书
5.8.2. application.properties 配置文件
5.8.3. 启动 Spring boot
5.8.4. restTemplate 调用实例
5.8.5. HTTP2
5.9. 使用 Jetty 替代 Tomcat
5.10. Spring boot with Webpage
5.10.1. Maven
5.10.2. application.properties
5.10.3. Application
5.10.4. IndexController
5.10.5. src/main/webapp/WEB-INF/jsp/index.jsp
5.10.6. 集成模板引擎
5.11. Spring boot with Velocity template
5.11.1. Maven
5.11.2. Resource
5.11.3. Application
5.11.4. RestController
5.11.5. Test
5.12. Spring boot with Thymeleaf
5.12.1. Maven
5.12.2. application.properties
5.12.3. Controller
5.12.4. HTML5 Template
5.13. String boot with RestTemplate
5.13.1. 在控制器中完整实例
5.14. Spring boot with Session share
5.14.1. Redis
5.14.1.1. Maven
5.14.1.2. application.properties
5.14.1.3. Application
5.14.2. 测试 Session
5.14.3. JDBC
5.14.4. Springboot 2.1
5.15. Spring boot with MongoDB
5.15.1. Maven
5.15.2. Application
5.15.3. MongoTemplate
5.15.4. Repository
5.16. Spring boot with MySQL
5.16.1. Maven
5.16.2. Resource
5.16.3. Application
5.16.4. JdbcTemplate
5.16.5. CrudRepository
5.17. Spring boot with Oracle
5.17.1. Maven
5.17.2. application.properties
5.17.3. Application
5.17.4. CrudRepository
5.17.5. JdbcTemplate
5.17.6. Controller
5.18. Spring boot with PostgreSQL
5.18.1. pom.xml
5.18.2. application.properties
5.18.3. Application
5.18.4. CrudRepository
5.18.5. JdbcTemplate
5.18.6. Controller
5.18.7. Test
5.19. 数据源配置
5.19.1. Master / Slave 主从数据库数据源配置
5.19.1.1. application.properties
5.19.1.2. 配置主从数据源
5.19.1.3. 选择数据源
5.19.2. 多数据源配置
5.19.3. JPA 多数据源
5.19.4. Connection and Statement Pooling
5.19.4.1. org.apache.tomcat.jdbc.pool.DataSource
5.19.4.2. druid
5.19.4.3. c3p0 - JDBC3 Connection and Statement Pooling
5.19.4.4. dbcp2
5.19.4.5. bonecp
5.19.4.6. dbcp2
5.20. Spring boot with Redis
5.20.1. Spring boot with Redis
5.20.1.1. maven
5.20.1.2. application.properties
5.20.1.3. JUnit
5.20.1.4. Controller
5.20.2. Redis Pub/Sub
5.20.2.1. Redis配置类
5.20.2.2. 订阅和发布类
5.20.2.3. 消息发布演示
5.21. Spring boot with Caching
5.21.1. maven
5.21.2. 启用 Cache
5.21.3. 测试 Controller
5.21.4. @Cacheable 的用法
5.21.5. @CachePut 用法
5.21.6. 解决Expire 和 TTL 过期时间
5.21.7. SpEL表达式
5.22. Spring boot with Email
5.22.1. Maven
5.22.2. Resource
5.22.3. POJO
5.22.4. RestController
5.22.5. Test
5.23. Spring boot with Scheduling
5.23.1. Application.java
5.23.2. Component
5.23.3. 查看日志
5.23.4. 计划任务控制开关
5.23.5. @Scheduled 详解
5.23.5.1. 每3秒钟一运行一次
5.23.5.2. 凌晨23点运行
5.24. Spring boot with Hessian
5.24.1. Maven
5.24.2. Application
5.24.3. HessianServiceExporter
5.24.4. Service
5.24.5. RestController
5.25. Spring boot with Apache Kafka
5.25.1. 安装 kafka
5.25.2. maven
5.25.3. Spring boot Application
5.25.4. EnableKafka
5.25.5. KafkaListener
5.25.6. 测试
5.25.7. 完整的发布订阅实例
5.25.7.1. Consumer
5.25.7.2. Producer
5.25.7.3. Test
5.25.8. Spring cloud with Kafka
5.25.8.1. Application 主文件
5.25.8.2. 资源配置文件
5.25.8.2.1. application.properties
5.25.8.2.2. bootstrap.properties
5.25.8.2.3. Git 仓库
5.25.8.3. 启用 kafka
5.25.8.4. 消息发布主程序
5.26. Spring boot with RabbitMQ(AMQP)
5.26.1. maven
5.26.2. RabbitMQConfig
5.26.3. 生产者
5.26.4. 消费者
5.27. Spring boot with Git version
5.27.1. CommonRestController 公共控制器
5.27.2. VersionRestController 测试控制器
5.27.3. 创建 .gitattributes 文件
5.28. Spring boot with Elasticsearch 2.x
5.28.1. Maven
5.28.2. Application
5.28.3. application.properties
5.28.4. Domain
5.28.5. ElasticsearchRepository
5.29. Spring boot with Elasticsearch 5.5.x
5.29.1. Maven
5.29.2. Application
5.29.3. application.properties
5.29.4. ElasticsearchConfiguration
5.29.5. RestController
5.30. Spring boot with Apache Hive
5.30.1. Maven
5.30.2. application.properties
5.30.3. Configuration
5.30.4. CURD 操作实例
5.31. Spring boot with Phoenix
5.31.1. Maven
5.31.2. application.properties
5.31.3. Configuration
5.32. Spring boot with Data restful
5.32.1. Maven
5.33. Spring boot with ELK(Elasticsearch + Logstash + Kibana)
5.33.1. TCP 方案
5.33.2. Redis 方案
5.33.3. Kafka 方案
5.33.4. Other
5.34. Springboot with Ethereum (web3j)
5.34.1. Maven
5.34.2. application.properties
5.34.3. TestRestController
5.34.4. 测试
5.35. 异步执行
5.35.1. 最简单的配置
5.35.2. 异步线程池
5.36. Spring boot with export csv.
5.37. Spring boot with Swagger2
5.37.1. Maven 文件
5.37.2. SpringApplication
5.37.3. EnableSwagger2
5.37.4. RestController
5.37.5. @Api()
5.37.6. @ApiOperation()
5.37.7. @ApiResponses
5.37.8. @ApiModel 实体类
5.38. Spring boot with lombok
5.39. Tomcat 端口
5.40. Spring Boot with Docker
5.40.1. 通过 Docker 命令构建镜像
5.40.1.1. 手工编译镜像
5.40.1.2. Dockerfile 放在 src/main/docker/Dockerfile 下
5.40.1.3. 通过参数指定 Springboot 文件
5.40.1.4. SPRING_PROFILES_ACTIVE 指定配置文件
5.40.1.5. 推送镜像到仓库
5.40.2. 通过 Maven 构建 Docker 镜像
5.40.2.1. Maven + Dockerfile 方案一
5.40.2.2. Maven + Dockerfile 方案二
5.40.2.3. Maven 不使用 Dockerfile 文件
5.40.2.4. 推送镜像
5.40.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.41. Spring boot with command line
5.41.1. Maven
5.41.2. CommandLineRunner 例子
5.41.3. ApplicationRunner 例子
5.42. Spring Boot Actuator
5.42.1. Maven 依赖
5.42.2. 与 Spring Boot Actuator 有关的配置
5.42.2.1. 禁用HTTP端点
5.42.3. actuator 接口
5.42.4. 健康状态
5.42.4.1. 健康状态
5.42.5. 关机
5.42.6. info 配置信息
5.42.7. 计划任务
5.43.
5.43.1.
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. 测试
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.2. RequestMapping with Request Parameters - @RequestParam
6.2.2.1. HTTP GET
6.2.2.2. HTTP POST
6.2.2.3. @RequestParam 传递特殊字符串
6.2.2.4. 传递日期参数
6.2.2.5. 上传文件
6.2.2.6. @RequestParam - POST 数组
6.2.3. @RequestBody
6.2.3.1. @RequestBody 传递 List
6.2.3.2. 传递 Map 数据
6.2.4. @RequestHeader - 获取 HTTP Header 信息
6.2.4.1. @RequestHeader 从 Http 头中获取变量
6.2.5. RequestMapping with Path Variables - @PathVariable
6.2.5.1. URL 参数传递
6.2.5.2. 默认值
6.2.5.3. URL 传递 Date 类型
6.2.5.4. 处理特殊字符
6.2.5.5. @PathVariable 注意事项
6.2.6. @ModelAttribute
6.2.7. @ResponseBody
6.2.7.1. 直接返回HTML
6.2.8. @ResponseStatus 设置 HTTP 状态
6.2.9. @CrossOrigin
6.2.9.1. maxAge
6.2.10. @CookieValue - 获取 Cookie 值
6.2.11. @SessionAttributes
6.2.12. ModelAndView
6.2.12.1. 变量传递
6.2.12.2. ModelMap 传递多个变量
6.2.12.3. redirect
6.2.12.4. ArrayList
6.2.12.5. HashMap
6.2.12.6. 传递对象
6.2.12.7.
6.2.13. HttpServletRequest / HttpServletResponse
6.2.13.1. HttpServletResponse
6.2.13.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. Using Spring’s form tag library
6.4.1.1. css
6.4.1.1.1. cssClass
6.4.1.1.2. cssStyle
6.4.1.1.3. cssErrorClass
6.4.1.2. cssClass
6.4.2. Thymeleaf
6.4.2.1. Maven pom.xml
6.4.2.2. Spring 配置
6.4.2.3. controller
6.4.2.4. HTML5 Template
6.4.2.5. thymeleaf 渲染表格
6.4.2.6. URL 链接
6.4.2.7. 拆分字符串
6.4.2.8. 日期格式化
6.4.3. 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. FAQ
6.7.1. o.s.web.servlet.PageNotFound
6.7.2. HTTP Status 500 - Handler processing failed; nested exception is java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config
6.7.3. 同时使用 Thymeleaf 与 JSP
6.7.4. 排除静态内容
6.7.5. HTTP Status 406
6.7.6. Caused by: java.lang.IllegalArgumentException: Not a managed type: class common.domain.Article
6.7.7. {"error":"unauthorized","error_description":"Full authentication is required to access this resource"}
7. RestTemplate - Spring Restful
7.1. RestTemplate Example
7.1.1. pom.xml
7.1.2. web.xml
7.1.3. springframework.xml
7.1.4. RestController
7.1.5. POJO
7.1.6. 测试
7.2. getForObject
7.2.1. 返回字符串
7.2.2. 传递 GET 参数
7.3. postForObject
7.3.1. 传递对象
7.3.2. 传递数据结构 MultiValueMap
7.4. postForEntity
7.5. PUT
7.6. Delete
7.7. 上传文件
7.8. HTTP Auth
7.8.1. Client
7.9. PKCS12
7.10. Timeout 超时设置
7.10.1. JRE 启动参数设置超时时间
7.10.2. RestTemplate timeout with SimpleClientHttpRequestFactory
7.10.3. @Configuration 方式
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.2. Spring Data 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.11.1. rightPush
8.2.2.11.2. rightPushAll
8.2.2.11.3. rightPushIfPresent
8.2.2.11.4. leftPush
8.2.2.11.5. leftPushAll
8.2.2.11.6. range
8.2.2.12. SET 数据类型
8.2.2.12.1. 返回集合中的所有成员
8.2.2.12.2. 取出一个成员
8.2.2.12.3. 随机获取无序集合中的一个元素
8.2.2.12.4. 随机获取 n 个成员(存在重复数据)
8.2.2.12.5. 随机获取 n 个不重复成员
8.2.2.12.6. 在两个 SET 间移动数据
8.2.2.12.7. 成员删除
8.2.2.12.8. 返回集合数量
8.2.2.12.9. 判断元素是否在集合成员中
8.2.2.12.10. 对比两个集合求交集
8.2.2.12.11. 对比两个集合求交集,然后存储到新的 key 中
8.2.2.12.12. 合并两个集合,并去处重复数据
8.2.2.12.13. 合并两个集合去重复后保存到新的 key 中
8.2.2.12.14. 计算两个合集的差集
8.2.2.12.15. 计算两个合集的差集,然后保存到新的 key 中
8.2.2.12.16. 遍历 SET 集合
8.2.2.13. 有序的 set 集合
8.2.2.14. Hash
8.2.2.14.1. put
8.2.2.14.2. putAll
8.2.2.14.3. 从键中的哈希获取给定hashKey的值
8.2.2.14.4. delete
8.2.2.14.5. 确定哈希hashKey是否存在
8.2.2.14.6. 从哈希中获取指定的多个 hashKey 的值
8.2.2.14.7. 只有hashKey不存在时才能添加值
8.2.2.14.8. 获取整个Hash
8.2.2.14.9. 获取所有key
8.2.2.14.10. 通过 hashKey 获取所有值
8.2.2.14.11. 值加法操作
8.2.2.14.12. 遍历 Hash 表
8.2.2.15. 过期时间未执行
8.2.2.16. setBit / getBit 二进制位操作
8.2.2.17. 存储 Json 对象
8.2.2.17.1. 集成 RedisTemplate 定义新类 JsonRedisTemplate
8.2.2.17.2. 配置 Redis
8.2.2.17.3. 测试
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 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.5.1. 普通索引
8.3.2.5.2. 唯一索引
8.3.2.5.3. 索引排序方式
8.3.2.5.4. 稀疏索引
8.3.2.5.5. 索引过期时间设置
8.3.2.6. @CompoundIndex 复合索引
8.3.2.6.1. 普通复合索引
8.3.2.6.2. 唯一复合索引
8.3.2.7. @TextIndexed
8.3.2.8. @GeoSpatialIndex 地理位置索引
8.3.2.9. @Transient 丢弃数据,不存到 mongodb
8.3.2.10. @DBRef 做外外键引用
8.3.2.10.1. Article 类
8.3.2.10.2. Hypermedia 类
8.3.2.10.3. MongoRepository
8.3.2.10.4. RestController
8.3.2.10.5. 运行结果
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.9.1. order by boolean 布尔型数据排序
8.3.3.10. findAll with Sort
8.3.3.11. FindAll with Pageable
8.3.3.11.1. PageRequest - springboot 1.x 旧版本
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.10.1. 翻页
8.3.4.10.2. between
8.3.4.11. Criteria
8.3.4.11.1. is
8.3.4.11.2. Regex 正则表达式搜索
8.3.4.11.3. lt 和 gt
8.3.4.11.4. exists()
8.3.4.11.5. 包含
8.3.4.12. Update
8.3.4.12.1. set
8.3.4.12.2. 追加数据
8.3.4.12.3. 更新数据
8.3.4.12.4. 删除数据
8.3.4.12.5. inc
8.3.4.12.6. update.addToSet
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.4.18.1. List 类型
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 MySQL
8.4.1. 选择数据库表引擎
8.4.2. @Entity
8.4.2.1. @Table
8.4.2.1.1. catalog
8.4.2.1.2. schema
8.4.2.1.3. uniqueConstraints
8.4.2.2. @Id
8.4.2.3. @Column
8.4.2.3.1. 字段长度
8.4.2.3.2. 浮点型
8.4.2.3.3. 创建于更新控制
8.4.2.3.4. TEXT 类型
8.4.2.4. @Lob 注解属性将被持久化为 Blog 或 Clob 类型
8.4.2.5. @NotNull 不能为空声明
8.4.2.6. @Temporal 日期定义
8.4.2.7. @DateTimeFormat 处理日期时间格式
8.4.2.8. 默认时间规则
8.4.2.8.1. CreatedDate
8.4.2.8.2. 与时间日期有关的 hibernate 注解
8.4.2.8.2.1. 设置默认时间
8.4.2.8.2.2. 创建时间
8.4.2.8.2.3. 更新时间
8.4.2.8.3. 数据库级别的默认创建日期时间定义
8.4.2.8.4. 数据库级别的默认创建日期与更新时间定义
8.4.2.8.5. 最后修改时间
8.4.2.9. 索引
8.4.2.9.1. 普通索引
8.4.2.9.2. 唯一索引
8.4.2.9.3. 复合索引
8.4.2.10. Enum 枚举数据类型
8.4.2.10.1. 实体中处理 enum 类型
8.4.2.10.2. 数据库枚举类型
8.4.2.11. SET 数据结构
8.4.2.12. 整形数据类型
8.4.2.13. JSON 数据类型
8.4.2.14. @JoinColumn
8.4.2.15. @OneToOne
8.4.2.16. OneToMany 一对多
8.4.2.17. ManyToMany 多对多
8.4.2.18. 外键级联删除
8.4.2.19. 其他
8.4.2.19.1. Cascade
8.4.2.19.2. @JsonIgnore
8.4.3. 创建复合主键
8.4.4. @EnableJpaAuditing 开启 JPA 审计功能
8.4.5. 实体集成
8.4.6. Repository
8.4.6.1. CrudRepository
8.4.6.2. JpaRepository
8.4.6.3. findByXXX
8.4.6.3.1. 传 Boolean 参数
8.4.6.3.2. Eunm 传递枚举参数
8.4.6.4. count 操作
8.4.6.5. OrderBy
8.4.6.6. GreaterThan
8.4.6.7. PageRequest 翻页操作
8.4.6.7.1. PageRequest.of
8.4.6.7.2. Pageable
8.4.6.8. Sort 排序操作操作
8.4.6.9. Query
8.4.6.9.1. 参数传递
8.4.6.9.2. 原生 SQL
8.4.6.9.3. @Query 与 Pageagble
8.4.6.9.4. 返回指定字段
8.4.6.9.5. 返回指定的模型
8.4.6.10. @Transactional
8.4.6.10.1. 删除更新需要 @Transactional 注解
8.4.6.10.2. 回滚操作
8.4.6.11. 锁 @Lock
8.5. EntityManager
8.6. 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. 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
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. EnableWebSecurity
9.4. 访问控制列表(Access Control List,ACL)
9.4.1. antMatchers
9.4.2. 登陆页面,失败页面,登陆中页面
9.4.3. HTTP Auth
9.4.4. Rest
9.4.5. hasRole
9.4.6. hasAnyRole()
9.4.7. X-Frame-Options 安全
9.5. WebSecurity
9.5.1. 正则匹配
9.6. AuthenticationManagerBuilder
9.6.1. 添加用户
9.6.2. 添加多个用户,并指定角色
9.7. corsConfigurationSource()
9.8. 获取当前用户
9.9. Spring cloud with Oauth2
9.9.1. Oauth2 协议
9.9.1.1. token
9.9.1.2. grant_type
9.9.1.3. 授权码授权模式(Authorization Code Grant)
9.9.1.4. 密码模式(Resource Owner Password Credentials Grant)
9.9.1.5. 客户端凭证模式(Client Credentials Grant)
9.9.1.6. 刷新 TOKEN 方式
9.9.2. authorization_code
9.9.2.1. 验证服务器器
9.9.2.1.1.
9.9.2.1.2.
9.9.2.1.3.
9.9.2.1.4.
9.9.2.1.5. 测试
9.9.3. Spring boot with Oauth2 - Password
9.9.3.1. Maven
9.9.3.2. Password tools
9.9.3.3. Server
9.9.3.3.1. Maven
9.9.3.3.2. application.properties
9.9.3.3.3. EnableAuthorizationServer
9.9.3.3.4. EnableResourceServer
9.9.3.3.5. Entity Table
9.9.3.3.6. UserRepository
9.9.3.3.7. UserService
9.9.3.3.8. TestRestController
9.9.3.3.9. 数据库初始化
9.9.3.3.10. Test
9.9.3.4. Spring boot with Oauth2 RestTemplate
9.9.3.4.1. Maven
9.9.3.4.2. OAuth2ClientConfiguration.java
9.9.3.4.3. Application.java
9.9.3.4.4. application.properties
9.9.3.4.5. Controller
9.9.3.4.6. Test
9.9.4. Spring boot with Oauth2 jwt
9.9.4.1. Maven
9.9.4.2. Authorization Server
9.9.4.3. Resource Server
9.9.4.4. Web Security
9.9.4.5. 插入数据
9.9.4.6. 使用 CURL 测试 JWT
9.9.4.7. 测试 Shell
9.9.4.8. refresh_token
9.9.5. Spring boot with Oauth2 jwt 非对称证书
9.9.5.1. 创建证书
9.9.5.2. Authorization Server
9.9.5.3. Resource Server
9.9.6. Apple iOS 访问 Oauth2
9.9.7. Oauth2 客户端
9.9.7.1.
9.9.7.2. application.yml
9.9.7.3. SpringApplication
9.9.7.4. WebSecurityConfigurer
9.9.7.5. TestController
9.9.8. Android Oauth2 + Jwt example
9.9.9. RestTemplate 使用 HttpClient
9.9.9.1. Maven
9.9.9.2. SpringBootApplication
9.9.9.3. ClientRestController
9.9.9.4. Test
9.9.10. 自签名证书信任问题
9.9.11. Principal
9.9.12. SecurityContextHolder 对象
9.9.13. 资源服务器配置
9.9.13.1. access()
9.9.13.1.1.
9.9.13.1.2.
9.9.14. Client
9.9.14.1. Overriding Spring Boot 2.0 Auto-configuration
9.9.15. Oauth2 常见问题
9.9.15.1. 修改 /oauth/token 路径
9.9.15.2. password 认证方式静态配置用户列表
10. Interceptor
10.1. WebMvcConfigurerAdapter
10.2. HandlerInterceptor
11. Spring Cloud
11.1. Spring Cloud Config
11.1.1. Git 仓库
11.1.1.1. 分支
11.1.1.2. HTTP Auth
11.1.1.3. basedir
11.1.1.4. 本地git仓库
11.1.2. Server
11.1.2.1. Maven
11.1.2.2. Application
11.1.2.3. application.properties
11.1.2.4. 测试服务器
11.1.3. Client
11.1.3.1. Maven pom.xml
11.1.3.2. Application
11.1.3.3. bootstrap.properties
11.1.3.4. 测试 client
11.1.4. Config server 用户认证
11.1.4.1. Server 配置
11.1.4.1.1. application.properties
11.1.4.1.2. Maven
11.1.4.1.3. 测试是否生效
11.1.4.2. Client 配置
11.1.5. 加密敏感数据
11.1.6. Spring Cloud Config JDBC Backend
11.1.6.1.
11.1.6.2.
11.1.6.3.
11.1.6.4. application.properties
11.1.7. Old
11.1.7.1. Server (Camden.SR5)
11.1.7.2. Client (Camden.SR5)
11.2. Spring Cloud Consol
11.2.1. Spring Cloud Consul 配置
11.2.2. Maven 父项目
11.2.3. Consul 服务生产者
11.2.3.1. Maven
11.2.3.2. application.properties
11.2.3.3. SpringApplication
11.2.3.4. TestController
11.2.4. Consul 服务消费者
11.2.4.1. Maven
11.2.4.2. application.properties
11.2.4.3. SpringApplication
11.2.4.4. TestController
11.2.5. Openfeign
11.2.5.1. Maven
11.2.5.2. application.properties
11.2.5.3. SpringApplication
11.2.5.4. Feign 接口
11.2.5.5. TestController
11.3. Spring Cloud Netflix
11.3.1. Eureka Server
11.3.1.1. Maven
11.3.1.2. Application
11.3.1.3. application.properties
11.3.1.4. 检查注册服务器
11.3.1.5. 为 Eureka Server 增加用户认证
11.3.1.5.1. Maven
11.3.1.5.2. application.properties
11.3.1.5.3. Eureka Client
11.3.1.5.4. Feign Client
11.3.2. Eureka Client
11.3.2.1. Maven
11.3.2.2. Application
11.3.2.3. RestController
11.3.2.4. application.properties
11.3.2.5. 测试
11.3.3. Feign client
11.3.3.1. Maven
11.3.3.2. Application
11.3.3.3. interface
11.3.3.4. application.properties
11.3.3.5. 测试
11.3.3.6. fallback
11.3.4. Zuul
11.3.4.1. Maven
11.3.4.2. EnableZuulProxy
11.3.4.3. application.yml
11.3.4.4. 负载均衡配置
11.4. Spring Cloud Finchley
11.5. Spring Cloud Stream
11.6. Spring Cloud Bus
11.7. Spring Cloud Sleuth
11.8. Spring Cloud 相关的 application.properties 配置
11.8.1. 启用或禁用 bootstrap
11.9. FAQ
11.9.1. Feign请求超时
11.9.2. 已停止的微服务节点注销慢或不注销
11.9.3. Eureka Client (Dalston.SR1)
11.9.3.1. Maven
11.9.3.2. Application
11.9.3.3. RestController
11.9.3.4. application.properties
11.9.3.5. 测试
11.9.4. Feign 启动出错 PathVariable annotation was empty on param 0.
11.9.5. Feign 提示 Consider defining a bean of type 'common.feign.Cms' in your configuration.
12. WebFlux
12.1. Getting Started
12.1.1. Maven
12.1.2. Application
12.1.3. RestController
12.1.4. 测试
12.2. WebFlux Router
12.2.1. Component 原件
12.2.2. 路由配置
12.2.3. Thymeleaf
12.2.3.1. 模板引擎 Thymeleaf 依赖
12.2.3.2. application.properties 相关的配置
12.2.3.3.
12.2.3.4. Tymeleaf 视图
12.2.4. Webflux Redis
12.2.4.1. Maven Redis 依赖
12.2.4.2. Redis 配置
12.2.4.3. Config
12.2.4.4. Service
12.2.4.5.
12.2.5. Webflux Mongdb
12.2.5.1. Maven 依赖
12.2.5.2. Repository
12.2.5.3. Service
12.2.5.4. 控制器
12.2.6. SSE
13. SpringBootTest
13.1. Maven 依赖
13.2. 测试类
13.2.1. Junit基本注解介绍
13.3.
13.3.1. Assert.assertEquals 判断相等
13.3.2. Assert.assertTrue
13.4. JPA 测试
13.5.
13.6. Controller单元测试
13.7. WebTestClient
14. Tomcat Spring 运行环境
14.1. Maven
14.2. Spring Boot Quick start
14.2.1. 创建项目
14.2.2. pom.xml
14.2.3. Controller
14.3. Spring MVC configuration
14.4. Tomcat
14.5. 集成 Mybatis
14.5.1. pom.xml
14.5.2. properties
14.5.3. dataSource
14.5.4. SqlSessionFactory
14.5.5. Mapper 扫描
14.5.6. Mapper 单一class映射
14.5.7. Service
14.5.8. 测试实例
15. Miscellaneous
15.1. Object to Json
15.2. Json To Object
16. FAQ
16.1. org.hibernate.dialect.Oracle10gDialect does not support identity key generation
16.2. No identifier specified for entity
16.3. Could not read document: Invalid UTF-8 middle byte 0xd0
16.4. java.sql.SQLRecoverableException: IO Error: The Network Adapter could not establish the connection
16.5. Field javaMailSender in cn.netkiller.rest.EmailRestController required a bean of type 'org.springframework.mail.javamail.JavaMailSender' that could not be found.
16.6. org.postgresql.util.PSQLException: FATAL: no pg_hba.conf entry for host "172.16.0.3", user "test", database "test ", SSL off
16.7. Spring boot 怎样显示执行的SQL语句
16.8. Cannot determine embedded database driver class for database type NONE
16.9. Spring boot / Spring cloud 时区差8个小时
16.10. @Value 取不到值
16.11. Spring boot 2.1.0
16.12. Field authenticationManager in cn.netkiller.oauth2.config.AuthorizationServerConfigurer required a bean of type 'org.springframework.security.authentication.AuthenticationManager' that could not be found.
16.13. 打印 Bean 信息
17. MyBatis
17.1. Mybatis 入门
17.2. 接口注解
18. Apache Struts
18.1. struts.xml
18.1.1. include
18.2. Struts Tags
18.2.1. property
18.2.2. set
18.2.3. url
18.2.4. s:include
18.2.5. s:action
18.2.6. HTML Form
18.2.6.1. form
18.2.6.2. textfield
18.2.6.3. s:hidden
18.2.6.4. select
18.2.7. iterator
18.2.8. if elseif else
18.3. Action
18.3.1. redirect
18.3.2. redirectAction
18.3.3. JSON
18.3.3.1. enableGZIP 压缩传输
18.3.3.2. excludeProperties 排除 Properties
18.3.3.3.
18.3.4. 传递 Timestamp 变量
18.4. Ajax + JSON
18.4.1. GET/POST JSON
18.5. Json 内容展示
18.5.1. 禁止方法
18.5.2. 格式化日期
18.5.3. 重命名变量名
18.5.4. org.apache.struts2.json
18.6. Interceptor
18.6.1. Session
18.7. Action 中使用线程
18.8. 日志
18.9. FAQ
18.9.1. Struts 怎样判断用户来自电脑还是移动设备
19. Apache Tiles
19.1. 配置 Tiles
19.1.1. Maven
19.1.2. web.xml
19.2. Template 配置模板
19.3. Struts tiles
20. Play
21. Log
21.1. Logback
21.1.1. Maven 包
21.1.2. Example
21.2. slf4j
21.3. log4j
21.3.1. 安装 Log4j
21.3.1.1. 手工安装
21.3.1.2. Maven
21.3.2. log4j 环境变量
21.3.3. Log4j Example
21.3.4. log4j.properties
22. JSON (JavaScript Object Notation)
22.1. javax.json.*
22.1.1. Json 编码
22.1.2. Json 解码
22.1.3. URL获取Json
22.2. Jackson
22.2.1. ObjectToJSON
22.2.2. JSONToObject
22.2.3. JsonNode
23. AMQP(Advanced Message Queuing Protocol)
23.1. Send and Recv
23.2. direct
24. NoSQL
24.1. MongoDB
24.1.1. pom.xml
24.1.2. 插入操作
24.1.3. 读取操作
25. Elasticsearch API
25.1. Client
25.2. insert
25.3. Get
25.4. delete
25.5. Search
25.6. Query 查询
25.6.1. match all 匹配所有数据
25.6.2. match 匹配查询
25.6.3. match phrase 短语精准匹配
25.7. Filter 过滤
25.7.1. term
25.7.2. range
25.8. Sorting
25.9. 返回 Source 字段
25.10. Count
25.11. Example 范例
25.11.1. Spring boot 案例
25.12. FAQ
25.12.1. 显示查询 JSON 字符串
26. Jersey - RESTful Web Services in Java.
26.1. Client 2.x
26.1.1. Maven 版本
26.1.2. GET 操作
26.1.3. GET + Auth 用户认证
26.2. Client 1.x
26.2.1. Jersey + Auth + HTTP2 + SSL
27. Apache HttpComponents
27.1. org.apache.commons.lang3
27.1.1. HTML 标签处理
27.1.2. StringUtils.join 使用特定字符链接字符串
27.1.3. RandomStringUtils
27.2. commons-text
27.2.1. 禁止转译 json
27.3. Apache HttpClient
27.3.1. Maven
27.3.2. HTTP POST 操作
27.3.2.1. Post Data
27.3.2.2. POST RAW 数据
27.3.2.3. POST GBK 编码得数据
27.3.3. HTTPS
27.3.3.1. Get https 接口
27.3.3.2. POST json 数据
27.3.4. HTTP/2
27.3.5. Java11
27.3.5.1. sync get
27.3.5.2. async get
27.3.5.3. post form
27.3.6. Host name 'api.netkiller.cn' does not match the certificate subject provided
27.3.7. HttpStatus
28. Cache
28.1. java memcached client
28.2. Jedis
28.2.1. 认证
28.2.2. jedis.keys
28.3. Ehcache
29. Kafka
29.1. 安装 Kafka 环境
29.2. Maven
29.3. 启动 kafka
29.4. 入门例子
29.4.1. 订阅例子
29.4.2. 发布例子
29.5. 线程例子
II. Java UnitTest
30. Junit5
30.1. 项目初始化
30.1.1. Maven
30.2. JUnit 5 注解
30.2.1. @Disabled
30.2.2. @Tag
30.2.3. @Nested
30.2.4. @TestFactory
30.3. JUnit 5 断言
30.3.1. assertArrayEquals
30.3.2. assertAll
30.3.3.
30.3.4. fail
30.3.5. JUnit 5 前置条件
30.4. 依赖注入
30.4.1. TestInfo
30.4.2. TestReporter
30.5. Junit4
30.5.1. 生成 HTML 报告
30.5.2. Junit4 输出格式定义
31. TestNG
32. JaCoCo - Java code coverage tool
32.1. Maven
32.2. Gradle
33. Rest Assured
33.1. 打印出 response 的 body
34. Software Development Kit
34.1. Google
34.1.1. com.google.gson
34.1.1.1. map 处理
34.1.1.2. POJO
34.1.1.3. toJson
34.1.1.4. fromJson
34.1.1.5. JsonParser
34.1.1.6. Exmaple 范例
34.1.1.6.1. Map to Json
34.1.1.7. Exmaple 范例
34.1.1.7.1. Map to Json
34.1.1.8. 处理复杂的类型
34.1.2. Guava
34.1.2.1. maven
34.1.2.2. 删除不可显示的字符
34.2. Hessian
34.3. quartz-scheduler
34.4. Redisson
III. Android 9 Pie
35. Android Studio
35.1. 卸载 Android Studio
35.2. 代码格式化
35.3. 设置兼容最低SDK版本
35.4. SDK Tools
35.4.1. 接受 License
35.4.2. 查看 SDK 列表
35.4.3. 按照 Android SDK
35.5. 命令行操作
36. AndroidManifest.xml
36.1.
36.2. 开启网络
36.3. 文件存储权限
36.4. 相机权限
36.5. GPS 定位权限
37. 配置文件
37.1. *.properties 文件
37.2. 再 AndroidManifest.xml 使用 meta-data element 定义
37.3. 再 build.gradle 文件中配置 productFlavors
38. UI Layout
38.1. 切换UI
38.1.1.
38.1.2. startActivity()
38.1.3. Activity 间数据传递
38.2. Button
38.2.1. 启用禁用
38.2.2. 实现 OnClickListener 接口
38.3. ListView
38.3.1. Array
38.3.2. List
38.3.3. setOnItemClickListener()
38.3.4. 用接口方法实现
38.4. Switch
38.5. GardView
38.6. GridView
38.7. ProgressBar
38.8. ImageView
38.9. Fragment
38.10. Dialog
38.11. Menu
39. Toast
39.1. 默认样式
39.2. 自定义样式
39.3. 带有图片的样式
40. Environment
40.1.
40.2.
40.3.
41. Schedule 计划任务
41.1. Time 和 TimerTask 定时刷新
41.2. 使用 Runnable 和 Handler 实现定时执行
42. Internationalization i18n with Android (国际化)
42.1. 创建国际化文件
42.2. strings.xml 文件
42.3. 翻译语言
42.4. 引用国际化文件
42.5. 切换语言
43. 存储
43.1. SharedPreferences
43.1.1. 操作模式
43.1.2. 保存数据
43.1.3. 读取数据
43.1.4. 通过 key 查询数据是否存在
43.1.5. 删除数据
43.1.6. 清空数据
43.1.7. 对象存储
43.1.8. SharedPreferences 读取物理存储文件
43.2. SD Card
43.2.1. SD Card 状态
44. 相机与相册
44.1. manifest 文件
44.2. layout
44.3. Activity
44.4. LED flash 做手电筒
45. 麦克风与录音
45.1. 开启麦克风和SD卡权限
45.2. layout
45.3. Activity
46. 多媒体开发
46.1. MediaPlayer
46.2. VideoView 开发
46.2.1. 播放网络视频
46.2.2. MediaController 添加翻页事件
46.2.3. 静音播放视频
46.2.4. 更新进度条
46.2.5. 完整的例子
46.3. SurfaceView
46.4. Vitamio
47. 定位
47.1. manifest 权限配置
47.2. layout
47.3. Activity
48. 电话
48.1. SIM 卡状态
48.2. 通信录与拨打电话
48.3.
49. 消息广播
49.1. 动态注册
49.2. 静态注册
49.3. 自定义用户消息广播
49.4. 本地广播
50. Service
50.1. Service的基本用法
50.1.1. manifest 文件
50.1.2. 创建 Service
50.1.3. Layout 代码
50.1.4. Activity 代码
50.2. Service 中启动线程
50.3. Service和Activity通信
50.3.1. Layout
50.3.2. Service
50.3.3. Activity
51. NFC (Near field communication)
51.1. AndroidManifest.xml 文件配置
51.2. Loyout 文件
51.3. Activity 文件
52. OkHttp - An HTTP & HTTP/2 client for Android and Java applications
52.1. Gradle
52.2. AndroidManifest.xml 开启网络访问权限
52.3. okhttp 默认是 HTTPS 开启 HTTP
52.4. GET
52.5. POST
52.5.1. POST Form Data
52.5.2. POST RAW JSON
52.5.3. 数据流提交
52.6. http header 相关设置
52.6.1. 设置 HTTP 头
52.6.2. Cookie 管理
52.6.3. 禁用缓存
52.6.4. 设置缓存 max-age
52.6.5. 强制缓存
52.7. HTTP Base Auth
52.8. HttpUrl.Builder 组装 URL 地址参数
52.9. Android Activity Example
52.10. Android Oauth2 + Jwt example
52.11. HTTP/2
53. EventBus
53.1. 添加 EventBus 依赖到项目Gradle文件
53.2. 快速开始一个演示例子
53.2.1. 创建 MessageEvent 类
53.2.2. Layout
53.2.3. Activity
53.3. Sticky Events
53.3.1. MainActivity
53.3.2. StickyActivity
53.3.3. MessageEvent
53.3.4. 删除粘性事件
53.4. 线程模型
53.5. 配置 EventBus
53.6. 事件优先级
53.7. 捕获异常事件
54. 设计模式
54.1. 单例模式
55.
55.1. java.net.UnknownServiceException: CLEARTEXT communication to 192.168.0.185 not permitted by network security policy
55.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. Example Spring boot with Oracle
5.3. RedisTemplate
5.4. Spring boot with Email (pom.xml)
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
11.1. Share feign interface.
14.1. MyBatis
28.1. memcached.java