Home | 简体中文 | 繁体中文 | 杂文 | 打赏(Donations) | ITEYE 博客 | OSChina 博客 | Facebook | Linkedin | 知乎专栏 | Search | Email

Netkiller Java 手札

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

Mr. Neo Chan, 陈景峯(BG7NYT)


中国广东省深圳市龙华新区民治街道溪山美地
518131
+86 13113668890


文档始创于2015-11-10

版权声明

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

文档出处:
http://netkiller.github.io
http://netkiller.sourceforge.net

微信扫描二维码进入 Netkiller 微信订阅号

QQ群:128659835 请注明“读者”

$Date: 2013-04-10 15:03:49 +0800 (Wed, 10 Apr 2013) $

关于《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.5. 打赏(Donations)
1.5.1. 微信(Wechat)
1.5.2. 支付宝(Alipay)
1.5.3. PayPal Donations
1.5.4. 银行(Bank)
1. Java
1.1. JVM
1.1.1. 安装 Java 6
1.1.1.1. HeapDumpOnOutOfMemoryError
1.1.2. java-1.8.0-openjdk
1.1.3. java - Launches a Java application.
1.1.3.1. -verbose:class 显示载入jar文件
1.1.3.2. java.io.tmpdir
1.1.3.3. 显示版本号
1.1.4. jar
1.1.5. jdeps - Java class dependency analyzer.
1.2. System
1.2.1. user.dir
1.2.2. java.io.tmpdir
1.2.3. 自定义
1.3. exec 运行shell
1.4. 类型
1.4.1. String
1.4.1.1. 随机字符串
1.4.1.2. 字符串替换处理
1.4.1.3. substring
1.4.1.4. string to timestamp
1.4.2. 类型转换
1.4.2.1. Long to String
1.4.3. Date
1.4.3.1. SimpleDateFormat
1.4.3.2. Timestamp
1.4.3.3. TimeZone
1.4.3.4. String to Date
1.4.3.5. 比较两个日期与时间
1.4.3.6. Calendar
1.4.3.7. getToday
1.4.3.8. Yesterday
1.4.4. Array
1.4.4.1. for each
1.4.4.2. Array to String
1.4.5. float
1.4.6. double
1.4.7. BigDecimal
1.4.7.1. Convert BigDecimal Object to double value
1.4.8. enum
1.5. 数据结构
1.5.1. Collection
1.5.2. ArrayList
1.5.2.1. ArrayList to String
1.5.2.2. Array to List
1.5.3. HashMap
1.5.3.1. foreach hashmap
1.6. Network
1.6.1. URL
1.6.2. java.io.tmpdir
1.7. JDBC
1.7.1. 安装 JDBC 包
1.7.2. MySQL
1.7.3. Oracle
1.7.3.1. SID
1.7.3.2. SERVICE_NAME
1.7.3.3. TNS
1.7.3.4. Oracle RAC Cluster
1.7.3.5. Oracle JDBC Demo
1.7.4. FAQ
1.7.4.1. java.sql.SQLRecoverableException: IO Error: The Network Adapter could not establish the connection
1.7.4.2. Exception in thread "main" java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
1.8. Util
1.8.1. *.properties
1.8.1.1. propertyNames()
1.8.1.2. keySet()
1.8.1.3. entrySet()
1.8.1.4. 方法中返回 Properties
1.8.1.5.
1.8.1.6. getResourceAsStream()
1.8.1.7. store
1.8.2. Logging
1.8.2.1. console
1.8.3. BASE64
1.9. Reflection 反射
1.9.1. 获得所有变量
1.9.2. 批量赋值
1.9.3. 方法操作
1.9.3.1. 获得所有方法
1.9.3.2. set/get 方法
1.9.3.3. static 方法调用
1.10. Thread 线程
1.10.1. 实现异步执行
1.10.2.
1.10.3.
1.11. java 脚本引擎
1.11.1. Maven
1.11.2. Helloworld
1.11.3. 运行脚本文件
1.11.4. 变量传递
1.11.5. 全局变量与局部变量定义
1.11.6. 调用脚本中的函数或方法
1.11.7. 脚本编译
1.11.8. jjs - Invokes the Nashorn engine.
1.12. Crypto
1.12.1. MD5
1.12.2. AES
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. maven
2.3.1. 安装
2.3.1.1. Ubuntu
2.3.1.2. 源码安装
2.3.2. Maven 命令
2.3.2.1. help
2.3.2.2. archetype:create
2.3.2.3. clean
2.3.2.4. compile
2.3.2.5. test
2.3.2.6. package
2.3.2.7. install
2.3.2.8. war
2.3.2.9. exec
2.3.2.10. dependency
2.3.2.11. jar
2.3.2.12. help:describe
2.3.3. Maven 仓库
2.3.4. pom.xml
2.3.4.1. properties
2.3.4.2. dependencies
2.3.4.3. build
2.3.4.4. build
2.3.4.5. plugins
2.3.5. plugins
2.3.5.1. maven-compiler-plugin
2.3.5.2. maven-war-plugin
2.3.5.3. maven-antrun-plugin
2.3.5.4. maven-install-plugin
2.3.5.5. maven-surefire-plugin
2.3.5.6. maven-jar-plugin
2.3.5.7. maven-dependency-plugin
2.3.5.8. spring-boot-maven-plugin
2.4. Gradle
2.4.1. gradle 命令
2.4.1.1. tasks 列出任务
2.4.2. build.gradle
2.4.2.1. repositories
2.4.2.2. dependencies
2.4.2.3. jar
2.4.3. gradle.properties
2.4.3.1. 列出 properties
2.4.3.2. 自定义 gradle.properties
2.4.3.3.
2.4.3.4. System.properties
2.4.4. Example
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.2.
3.8. WebSocket
3.8.1. Server
3.8.2. Client
I. Spring Framework
4. Spring Tool Suite
4.1. 安装
4.2. Dashboard
5. Spring Boot
5.1. Spring Boot Quick start
5.1.1. pom.xml
5.1.2. Controller
5.2. 运行 Spring boot 项目
5.2.1. Maven run
5.2.2. Linux systemd
5.2.3. 传统 init.d 脚本
5.3. application.properties
5.3.1. PID FILE
5.3.2. 内嵌 tomcat server
5.3.3. JSON
5.3.4. SMTP 相关配置
5.3.5. Redis
5.3.6. MongoDB
5.3.7. MySQL
5.3.8. Oracle
5.3.9. default_schema
5.3.10. velocity
5.3.11.
5.4. SpringApplication
5.4.1. @SpringBootApplication
5.4.2. @EnableAutoConfiguration
5.4.3. @ComponentScan
5.4.4. CharacterEncodingFilter
5.4.5. 隐藏 Banner
5.4.6. CORS 跨域请求
5.4.7. 实体与仓库扫描
5.4.8. 列出 Beans
5.5. 编译用于Tomcat的 War
5.6. Properties
5.6.1. @EnableConfigurationProperties 引用自定义 *.properties 配置文件
5.6.2. spring.profiles.active 参数切换配置文件
5.6.3. SpringApplicationBuilder.properties() 方法添加配置项
5.7. Service
5.7.1. Application
5.7.2. 定义接口
5.7.3. 实现接口
5.7.4. 调用 Service
5.8. ViewResolver
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. String boot with RestTemplate
5.9.1. 在控制器中完整实例
5.10. Spring boot with Logging
5.10.1. 打印日志
5.10.2. 日志输出级别
5.10.3. 禁止控制台输出日志
5.10.4. 标准输出
5.10.5. 日志分割
5.10.6. 日志写入 MongoDB
5.11. Spring boot with Session share
5.11.1. Redis
5.11.2. 测试 Session
5.11.3. JDBC
5.12. Connection and Statement Pooling
5.12.1. org.apache.tomcat.jdbc.pool.DataSource
5.12.2. druid
5.12.3. c3p0 - JDBC3 Connection and Statement Pooling
5.12.4. dbcp2
5.12.5. bonecp
5.12.6. dbcp2
5.13. Spring boot with MongoDB
5.13.1. Maven
5.13.2. Application
5.13.3. MongoTemplate
5.13.4. Repository
5.14. Spring boot with MySQL
5.14.1. Maven
5.14.2. Resource
5.14.3. Application
5.14.4. JdbcTemplate
5.14.5. CrudRepository
5.15. Spring boot with Oracle
5.15.1. Maven
5.15.2. application.properties
5.15.3. Application
5.15.4. CrudRepository
5.15.5. JdbcTemplate
5.15.6. Controller
5.16. Spring boot with PostgreSQL
5.16.1. pom.xml
5.16.2. application.properties
5.16.3. Application
5.16.4. CrudRepository
5.16.5. JdbcTemplate
5.16.6. Controller
5.16.7. Test
5.17. Spring boot with Email
5.17.1. Maven
5.17.2. Resource
5.17.3. POJO
5.17.4. RestController
5.17.5. Test
5.18. Spring boot with Velocity template
5.18.1. Maven
5.18.2. Resource
5.18.3. Application
5.18.4. RestController
5.18.5. Test
5.19. Spring boot with Spring security
5.19.1. Maven
5.19.2. Reource
5.19.3. Application
5.19.4. WebSecurityConfigurer
5.19.5. RestController
5.19.6. 测试
5.19.7. Spring + Security + MongoDB
5.20. Spring boot with Oauth2
5.20.1. Maven
5.20.2. Password tools
5.20.3. Server
5.20.4. Client
5.21. Spring boot with Scheduling
5.21.1. Application.java
5.21.2. Component
5.21.3. 查看日志
5.21.4. 计划任务控制
5.22. Spring boot with Cache
5.22.1. Spring boot with Redis
5.22.2. @Cacheable
5.23. Spring boot with Hessian
5.23.1. Maven
5.23.2. Application
5.23.3. HessianServiceExporter
5.23.4. Service
5.23.5. RestController
5.24. Spring boot with Apache Kafka
5.24.1. 安装 kafka
5.24.2. maven
5.24.3. Spring boot Application
5.24.4. EnableKafka
5.24.5. KafkaListener
5.24.6. 测试
5.24.7. 完整的发布订阅实例
5.25. Spring boot with Git version
5.25.1. CommonRestController 公共控制器
5.25.2. VersionRestController 测试控制器
5.25.3. 创建 .gitattributes 文件
5.26. Spring boot with HTTPS SSL
5.26.1. 生成自签名证书
5.26.2. application.properties 配置文件
5.26.3. 启动 Spring boot
5.26.4. restTemplate 调用实例
5.27. Spring boot with Elasticsearch 2.x
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 5.5.x
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.30. Spring boot with Phoenix
5.30.1. Maven
5.30.2. application.properties
5.30.3. Configuration
5.31. Spring boot with Data restful
5.31.1. Maven
5.32. Spring boot with ELK(Elasticsearch + Logstash + Kibana)
5.32.1. TCP 方案
5.32.2. Redis 方案
5.32.3. Kafka 方案
5.32.4. Other
5.33. Spring boot with Docker
5.33.1.
5.33.2.
5.33.3.
5.33.4.
5.34. SpringBootTest
5.34.1.
5.35. FAQ
5.35.1. application.properties 参考
5.35.2. org.hibernate.dialect.Oracle10gDialect does not support identity key generation
5.35.3. No identifier specified for entity
5.35.4. Could not read document: Invalid UTF-8 middle byte 0xd0
5.35.5. java.sql.SQLRecoverableException: IO Error: The Network Adapter could not establish the connection
5.35.6. Field javaMailSender in cn.netkiller.rest.EmailRestController required a bean of type 'org.springframework.mail.javamail.JavaMailSender' that could not be found.
5.35.7. org.postgresql.util.PSQLException: FATAL: no pg_hba.conf entry for host "172.16.0.3", user "test", database "test ", SSL off
5.35.8. Spring boot 怎样显示执行的SQL语句
6. Spring MVC
6.1. @Controller
6.1.1. @RequestMapping
6.1.2. @ResponseBody
6.1.3. RequestMapping with Path Variables - @PathVariable
6.1.4. RequestMapping with Request Parameters - @RequestParam
6.1.5. @ModelAttribute
6.1.6. ModelAndView
6.1.7. @Scheduled
6.1.8. @CrossOrigin
6.1.9. @SessionAttributes
6.1.10. HttpServletRequest / HttpServletResponse
6.2. @RestController
6.2.1. 返回实体
6.2.2. JSON
6.2.3. XML
6.2.4. 兼容传统 json 接口
6.2.5. @PageableDefault 分页
6.3. View
6.3.1. Using Spring’s form tag library
6.3.2. Thymeleaf
6.3.3. FreeMarker
6.4. Properties
6.4.1. 载入*.properties文件
6.4.2. @Value 注解
6.4.3. @PropertySource 注解
6.5. FAQ
6.5.1. o.s.web.servlet.PageNotFound
6.5.2. HTTP Status 500 - Handler processing failed; nested exception is java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config
6.5.3. 同时使用 Thymeleaf 与 JSP
6.5.4. 排除静态内容
6.5.5. HTTP Status 406
7. RestTemplate - Spring4 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. HTTP Auth
7.7.1. Client
8. Spring Data Redis
8.1. pom.xml
8.2. springframework-servlet.xml
8.3. Controller
8.4. index.jsp
8.5. 测试
9. Spring Data MongoDB
9.1. Example Spring Data MongoDB
9.1.1. pom.xml
9.1.2. springframework-servlet.xml
9.1.3. POJO
9.1.4. Controller
9.1.5. 查看测试结果
9.1.6. 条件查询
9.2. @Document
9.2.1. @Indexed
9.2.2. @DateTimeFormat
9.2.3. @NumberFormat
9.2.4. 在 @Document 中使用 Enum 类型
9.2.5. 在 @Document 中定义数据结构 List/Map
9.3. MongoRepository
9.3.1. findAll()
9.3.2. deleteAll()
9.3.3. save()
9.3.4. count()
9.3.5. findByXXXX
9.3.6. StartingWith 和 EndingWith
9.3.7. Between
9.3.8. PageRequest
9.3.9. @Query
9.4. mongoTemplate
9.4.1. is
9.4.2. Regex 正则表达式搜索
9.4.3. lt 和 gt
9.4.4. between
9.4.5. Criteria
9.4.6. Sort
9.4.7. Query + PageRequest
9.4.8. newAggregation
10. Spring Data JPA
10.1. @Entity
10.1.1. @Id
10.1.2. @Table
10.1.3. @Column
10.1.4. @JoinColumn
10.1.5. @NotNull 不能为空声明
10.1.6. @DateTimeFormat 处理日期时间格式
10.1.7. CreatedDate
10.1.8. 默认时间规则
10.1.9. 唯一索引
10.1.10. 实体中使用 enum 类型
10.1.11. @OneToOne
10.1.12. OneToMany 一对多
10.1.13. ManyToMany 多对多
10.1.14. 其他
10.2. Repository
10.2.1. 传递枚举参数
10.2.2. 翻页操作
10.2.3. 排序操作操作
10.2.4. OrderBy
10.2.5. Query
10.2.6. @Transactional
10.3. CrudRepository
10.4. JpaRepository
10.5. JdbcTemplate
10.5.1. execute
10.5.2. queryForInt
10.5.3. queryForObject
10.5.4. queryForList
10.6. EntityManager
10.7. Spring Data FAQ
10.7.1. No identifier specified for entity
10.7.2. Oracle Date 类型显示日期和时间
10.7.3. Executing an update/delete query; nested exception is javax.persistence.TransactionRequiredException: Executing an update/delete query
11. Elasticsearch
11.1. 内嵌 Elasticsearch
11.1.1. Maven
11.1.2. src/main/resources/application.properties
11.1.3. Domain Class
11.1.4. ElasticsearchRepository
11.1.5. SearchRestController
11.1.6. 测试
11.2. 集群模式
11.3. Document
11.4. FAQ
11.4.1. java.lang.IllegalStateException: Received message from unsupported version: [2.0.0] minimal compatible version is: [5.0.0]
12. Spring Security
12.1. EnableWebSecurity
12.1.1. 访问控制列表(Access Control List,ACL)
12.1.2. WebSecurity
12.1.3. HTTP Auth
12.1.4. Rest
12.1.5. hasRole
12.1.6. Add User
12.2. 获取当前用户
12.3. HTTP 安全
13. Interceptor
13.1. WebMvcConfigurerAdapter
13.2. HandlerInterceptor
14. Spring Cloud
14.1. Spring Cloud Config
14.1.1. Git 仓库
14.1.2. Server
14.1.3. Client
14.1.4. Config server 用户认证
14.1.5. 加密敏感数据
14.2. Spring Cloud Netflix
14.2.1. Eureka Server
14.2.2. Eureka Client
14.2.3. Feign client
15. Tomcat Spring 运行环境
15.1. Maven
15.2. Spring Boot Quick start
15.2.1. pom.xml
15.2.2. Controller
15.3. Spring MVC configuration
15.4. Tomcat
15.5. 集成 Mybatis
15.5.1. pom.xml
15.5.2. properties
15.5.3. dataSource
15.5.4. SqlSessionFactory
15.5.5. Mapper 扫描
15.5.6. Mapper 单一class映射
15.5.7. Service
15.5.8. 测试实例
16. MyBatis
16.1. Mybatis 入门
16.2. 接口注解
17. Apache Struts
17.1. struts.xml
17.1.1. include
17.2. Struts Tags
17.2.1. property
17.2.2. set
17.2.3. url
17.2.4. s:include
17.2.5. s:action
17.2.6. HTML Form
17.2.6.1. form
17.2.6.2. textfield
17.2.6.3. s:hidden
17.2.6.4. select
17.2.7. iterator
17.2.8. if elseif else
17.3. Action
17.3.1. redirect
17.3.2. redirectAction
17.3.3. JSON
17.3.3.1. enableGZIP 压缩传输
17.3.3.2. excludeProperties 排除 Properties
17.3.3.3.
17.3.4. 传递 Timestamp 变量
17.4. Ajax + JSON
17.4.1. GET/POST JSON
17.5. Json 内容展示
17.5.1. 禁止方法
17.5.2. 格式化日期
17.5.3. 重命名变量名
17.5.4. org.apache.struts2.json
17.6. Interceptor
17.6.1. Session
17.7. Action 中使用线程
17.8. 日志
17.9. FAQ
17.9.1. Struts 怎样判断用户来自电脑还是移动设备
18. Apache Tiles
18.1. 配置 Tiles
18.1.1. Maven
18.1.2. web.xml
18.2. Template 配置模板
18.3. Struts tiles
19. Play
20. Log
20.1. Logback
20.2. slf4j
20.3. log4j
20.3.1. 安装 Log4j
20.3.1.1. 手工安装
20.3.1.2. Maven
20.3.2. log4j 环境变量
20.3.3. Log4j Example
20.3.4. log4j.properties
21. JSON (JavaScript Object Notation)
21.1. javax.json.*
21.1.1. Json 编码
21.1.2. Json 解码
21.1.3. URL获取Json
21.2. com.google.gson
21.2.1. map 处理
21.2.2. POJO
21.2.3. toJson
21.2.4. fromJson
21.2.5. JsonParser
22. AMQP(Advanced Message Queuing Protocol)
22.1. Send and Recv
22.2. direct
23. NoSQL
23.1. MongoDB
23.1.1. pom.xml
23.1.2. 插入操作
23.1.3. 读取操作
24. Jersey - RESTful Web Services in Java.
24.1. Client 2.x
24.1.1. Maven 版本
24.1.2. GET 操作
24.1.3. GET + Auth 用户认证
24.2. Client 1.x
24.2.1. Jersey + Auth + HTTP2 + SSL
25. Apache HttpComponents
25.1. Apache HttpClient
25.1.1. Maven
25.1.2. POST to Restfull
25.1.3. HTTPS
25.1.3.1. Get https 接口
25.1.3.2. POST json 数据
25.1.4. Host name 'api.netkiller.cn' does not match the certificate subject provided
26. Cache
26.1. java memcached client
26.2. Jedis
26.2.1. 认证
26.2.2. jedis.keys
26.3. Ehcache
27. Software Development Kit
27.1. Hessian
27.2. quartz-scheduler
27.3. Redisson

范例清单

1.1. /etc/profile.d/java.sh
2.1. Maven properties
5.1. Example Spring boot with Oracle
5.2. Spring boot with Email (pom.xml)
5.3. Spring boot with Velocity template (pom.xml)
5.4. RedisTemplate
5.5. Spring boot with Apache kafka.
8.1. Spring Data Redis Example
9.1. Spring Data MongoDB - springframework-servlet.xml
15.1. MyBatis
26.1. memcached.java