diff --git a/README.md b/README.md
index 85e38ea..9cccbab 100644
--- a/README.md
+++ b/README.md
@@ -2,20 +2,27 @@
spring boot 实践学习案例,是 spring boot 初学者及核心技术巩固的最佳实践。
# 推荐
-- [高性能 TCP/UDP 通信框架 HP-Socket](https://github.com/ldcsaa/HP-Socket)
-- springcloud-learning-example
-[spring cloud 实践学习案例](https://github.com/JeffLi1993/springcloud-learning-example)
-https://github.com/JeffLi1993/springcloud-learning-example
+由于工作原因,我发表原创博客也需要编写的时间。期间很多人私我问题,没有及时得到回复,这里说声抱歉。因此,建一个星球
+「泥瓦匠BYSocket」和朋友们讨论技术相关的话题,你一起来吧?
+
+[泥瓦匠BYSocket 星球](https://t.zsxq.com/nMzjqbe "泥瓦匠BYSocket")
+
+[泥瓦匠BYSocket 星球](https://t.zsxq.com/nMzjqbe "泥瓦匠BYSocket")
+
+[泥瓦匠BYSocket 星球](https://t.zsxq.com/nMzjqbe "泥瓦匠BYSocket")
+
+这个星球里面讲深入讨论 Java 、Java EE、Spring Boot 等框架技术及工作经验交流,分享一路技术走来的经验、教训。硬实力软实力、择业、职业规划等。
+
+## 计划
+Spring Boot 2.0 最大的热点肯定是 Web Flux。我这边也就开始操刀了...
+
+Web Flux 努力进行中,尽情期待。唯一文章入口:[GitChat文章地址](http://gitbook.cn/gitchat/author/58968d35f2b669527d7a7c57 "gitchat")
## Spring For All 社区
[Spring For All 社区](http://www.spring4all.com/ "spring4all")是新组建的关于 Spring 的纯技术交流社区(涵盖 Spring Boot、Spring Cloud 等内容),集诸多开源爱好者和技术大牛贡献内容和交流问题。我们不夸大、不装逼、做最纯粹的技术分享!!!
-看看我们超强的群众基础,欢迎有兴趣的朋友加入QQ群分享与交流:
-Spring For All 社区 ⑪ 517395240
-Spring For All 社区 ⑫ 498098401
-
-博主微信:139-5868-6678
+看看我们超强的群众基础,欢迎有兴趣的朋友加入QQ群分享与交流:[点击立即加入](http://www.spring4all.com/about "about")
## 作者与学习乐园
源码地址:我的[GitHub地址](https://github.com/JeffLi1993 "GitHub")、[OSCGit地址](https://git.oschina.net/jeff1993/springboot-learning-example "OSCGit")
@@ -23,7 +30,6 @@ Spring For All 社区 ⑫ 498098401
关注微信公众号【泥瓦匠BYSokcet】,及时得到技术文章推送

-
## 一、项目结构
「Spring Boot 那些事」:[传送门](http://www.bysocket.com/?page_id=1639 "Spring Boot 那些事")
@@ -74,56 +80,6 @@ Dubbo 服务提供者工程和 Dubbo 服务消费者工程
- spring-data-elasticsearch-query
spring-data-elasticsearch - 实战案例详解
-## 二、项目 Quick Start 快速开发指南
-#### a. 基本环境配置
-在 MySQL 中,创建数据库 springbootdb:
-````
-CREATE DATABASE springbootdb;
-````
-创建表 city 城市 (因为我喜欢徒步)
-````
-DROP TABLE IF EXISTS `city`;
-CREATE TABLE `city` (
- `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '城市编号',
- `province_id` int(10) unsigned NOT NULL COMMENT '省份编号',
- `city_name` varchar(25) DEFAULT NULL COMMENT '城市名称',
- `description` varchar(25) DEFAULT NULL COMMENT '描述',
- PRIMARY KEY (`id`)
-) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
-````
-插入基础数据
-````
-INSERT city VALUES (1 ,1,'温岭市','BYSocket 的家在温岭。');
-````
-
-
-### 《 springboot-mybatis 工程 Quick Start 》
-首先 check 基本环境配置完成,创建好数据库和表。
-
-#### 1. 修改数据库配置
-配置文件地址:springboot-mybatis/src/main/resources/application.properties
-修改相应的数据源配置,比如账号、密码等
-
-#### 2. 编译工程
-在项目根目录 `springboot-learning-example`,运行 maven 指令:
-````
-mvn clean install
-````
-#### 3. 运行工程
-右键运行工程包中 `org.spring.springboot.Application` Spring Boot 应用启动类的 main 函数,然后在浏览器访问:
-`````
-http://localhost:8080/api/city?cityName=温岭市
-`````
-可以看到返回的 JSON 结果:
-````
-{
- "id": 1,
- "provinceId": 1,
- "cityName": "温岭市",
- "description": "我的家在温岭。"
-}
-````
最后,
-推荐
[《Spring Boot教程与Spring Cloud教程》](https://git.oschina.net/didispace/SpringBoot-Learning "Spring Boot教程与Spring Cloud教程")
diff --git a/chapter-2-spring-boot-quick-start/pom.xml b/chapter-2-spring-boot-quick-start/pom.xml
deleted file mode 100644
index f86c3de..0000000
--- a/chapter-2-spring-boot-quick-start/pom.xml
+++ /dev/null
@@ -1,84 +0,0 @@
-
-
- 4.0.0
-
- spring.boot.core
- chapter-2-spring-boot-quick-start
- 0.0.1-SNAPSHOT
- jar
-
- chapter-2-spring-boot-quick-start
- 第二章快速入门案例
-
-
- org.springframework.boot
- spring-boot-starter-parent
- 2.0.0.M4
-
-
-
- UTF-8
- UTF-8
- 1.8
-
-
-
-
-
-
- org.springframework.boot
- spring-boot-starter-web
-
-
-
-
- org.springframework.boot
- spring-boot-starter-test
- test
-
-
-
-
- org.springframework.boot
- spring-boot-starter-data-jpa
-
-
-
-
- com.h2database
- h2
- runtime
-
-
-
-
- org.springframework.boot
- spring-boot-starter-thymeleaf
-
-
-
-
-
-
-
-
- org.springframework.boot
- spring-boot-maven-plugin
- 1.5.1.RELEASE
-
-
-
-
-
-
- spring-milestones
- Spring Milestones
- https://repo.spring.io/libs-milestone
-
- false
-
-
-
-
-
diff --git a/chapter-2-spring-boot-quick-start/src/main/java/spring/boot/core/QuickStartApplication.java b/chapter-2-spring-boot-quick-start/src/main/java/spring/boot/core/QuickStartApplication.java
deleted file mode 100644
index 001fea7..0000000
--- a/chapter-2-spring-boot-quick-start/src/main/java/spring/boot/core/QuickStartApplication.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package spring.boot.core;
-
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-
-@SpringBootApplication
-public class QuickStartApplication {
-
- public static void main(String[] args) {
- SpringApplication.run(QuickStartApplication.class, args);
- }
-}
diff --git a/chapter-2-spring-boot-quick-start/src/main/java/spring/boot/core/domain/User.java b/chapter-2-spring-boot-quick-start/src/main/java/spring/boot/core/domain/User.java
deleted file mode 100644
index 5291ee2..0000000
--- a/chapter-2-spring-boot-quick-start/src/main/java/spring/boot/core/domain/User.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package spring.boot.core.domain;
-
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Id;
-import java.io.Serializable;
-
-/**
- * 用户实体类
- *
- * Created by bysocket on 21/07/2017.
- */
-@Entity
-public class User implements Serializable {
-
- /**
- * 编号
- */
- @Id
- @GeneratedValue
- private Long id;
-
- /**
- * 名称
- */
- private String name;
-
- /**
- * 年龄
- */
- private Integer age;
-
- /**
- * 出生时间
- */
- private String birthday;
-
- public Long getId() {
- return id;
- }
-
- public void setId(Long id) {
- this.id = id;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public Integer getAge() {
- return age;
- }
-
- public void setAge(Integer age) {
- this.age = age;
- }
-
- public String getBirthday() {
- return birthday;
- }
-
- public void setBirthday(String birthday) {
- this.birthday = birthday;
- }
-
- @Override
- public String toString() {
- return "User{" +
- "id=" + id +
- ", name='" + name + '\'' +
- ", age=" + age +
- ", birthday=" + birthday +
- '}';
- }
-}
diff --git a/chapter-2-spring-boot-quick-start/src/main/java/spring/boot/core/domain/UserRepository.java b/chapter-2-spring-boot-quick-start/src/main/java/spring/boot/core/domain/UserRepository.java
deleted file mode 100644
index 6e40f4a..0000000
--- a/chapter-2-spring-boot-quick-start/src/main/java/spring/boot/core/domain/UserRepository.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package spring.boot.core.domain;
-
-import org.springframework.data.jpa.repository.JpaRepository;
-
-/**
- * 用户持久层操作接口
- *
- * Created by bysocket on 21/07/2017.
- */
-public interface UserRepository extends JpaRepository {
-
-}
diff --git a/chapter-2-spring-boot-quick-start/src/main/java/spring/boot/core/service/UserService.java b/chapter-2-spring-boot-quick-start/src/main/java/spring/boot/core/service/UserService.java
deleted file mode 100644
index 8111e6f..0000000
--- a/chapter-2-spring-boot-quick-start/src/main/java/spring/boot/core/service/UserService.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package spring.boot.core.service;
-
-
-import spring.boot.core.domain.User;
-
-import java.util.List;
-
-/**
- * User 业务层接口
- *
- * Created by bysocket on 24/07/2017.
- */
-public interface UserService {
-
- List findAll();
-
- User insertByUser(User user);
-
- User update(User user);
-
- User delete(Long id);
-
- User findById(Long id);
-}
diff --git a/chapter-2-spring-boot-quick-start/src/main/java/spring/boot/core/service/impl/UserServiceImpl.java b/chapter-2-spring-boot-quick-start/src/main/java/spring/boot/core/service/impl/UserServiceImpl.java
deleted file mode 100644
index 9da3385..0000000
--- a/chapter-2-spring-boot-quick-start/src/main/java/spring/boot/core/service/impl/UserServiceImpl.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package spring.boot.core.service.impl;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import spring.boot.core.domain.User;
-import spring.boot.core.domain.UserRepository;
-import spring.boot.core.service.UserService;
-
-import java.util.List;
-
-/**
- * User 业务层实现
- *
- * Created by bysocket on 24/07/2017.
- */
-@Service
-public class UserServiceImpl implements UserService {
-
- private static final Logger LOGGER = LoggerFactory.getLogger(UserServiceImpl.class);
-
- @Autowired
- UserRepository userRepository;
-
- @Override
- public List findAll() {
- return userRepository.findAll();
- }
-
- @Override
- public User insertByUser(User user) {
- LOGGER.info("新增用户:" + user.toString());
- return userRepository.save(user);
- }
-
- @Override
- public User update(User user) {
- LOGGER.info("更新用户:" + user.toString());
- return userRepository.save(user);
- }
-
- @Override
- public User delete(Long id) {
- User user = userRepository.findById(id).get();
- userRepository.delete(user);
-
- LOGGER.info("删除用户:" + user.toString());
- return user;
- }
-
- @Override
- public User findById(Long id) {
- LOGGER.info("获取用户 ID :" + id);
- return userRepository.findById(id).get();
- }
-}
diff --git a/chapter-2-spring-boot-quick-start/src/main/java/spring/boot/core/web/UserController.java b/chapter-2-spring-boot-quick-start/src/main/java/spring/boot/core/web/UserController.java
deleted file mode 100644
index e4b409b..0000000
--- a/chapter-2-spring-boot-quick-start/src/main/java/spring/boot/core/web/UserController.java
+++ /dev/null
@@ -1,90 +0,0 @@
-package spring.boot.core.web;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Controller;
-import org.springframework.ui.ModelMap;
-import org.springframework.web.bind.annotation.ModelAttribute;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import spring.boot.core.domain.User;
-import spring.boot.core.service.UserService;
-
-/**
- * 用户控制层
- *
- * Created by bysocket on 24/07/2017.
- */
-@Controller
-@RequestMapping(value = "/users") // 通过这里配置使下面的映射都在 /users
-public class UserController {
-
- @Autowired
- UserService userService; // 用户服务层
-
- /**
- * 获取用户列表
- * 处理 "/users" 的 GET 请求,用来获取用户列表
- * 通过 @RequestParam 传递参数,进一步实现条件查询或者分页查询
- */
- @RequestMapping(method = RequestMethod.GET)
- public String getUserList(ModelMap map) {
- map.addAttribute("userList", userService.findAll());
- return "userList";
- }
-
- /**
- * 显示创建用户表单
- *
- */
- @RequestMapping(value = "/create", method = RequestMethod.GET)
- public String createUserForm(ModelMap map) {
- map.addAttribute("user", new User());
- map.addAttribute("action", "create");
- return "userForm";
- }
-
- /**
- * 创建用户
- * 处理 "/users" 的 POST 请求,用来获取用户列表
- * 通过 @ModelAttribute 绑定参数,也通过 @RequestParam 从页面中传递参数
- */
- @RequestMapping(value = "/create", method = RequestMethod.POST)
- public String postUser(@ModelAttribute User user) {
- userService.insertByUser(user);
- return "redirect:/users/";
- }
-
- /**
- * 显示需要更新用户表单
- * 处理 "/users/{id}" 的 GET 请求,通过 URL 中的 id 值获取 User 信息
- * URL 中的 id ,通过 @PathVariable 绑定参数
- */
- @RequestMapping(value = "/update/{id}", method = RequestMethod.GET)
- public String getUser(@PathVariable Long id, ModelMap map) {
- map.addAttribute("user", userService.findById(id));
- map.addAttribute("action", "update");
- return "userForm";
- }
-
- /**
- * 处理 "/users/{id}" 的 PUT 请求,用来更新 User 信息
- *
- */
- @RequestMapping(value = "/update", method = RequestMethod.POST)
- public String putUser(@ModelAttribute User user) {
- userService.update(user);
- return "redirect:/users/";
- }
-
- /**
- * 处理 "/users/{id}" 的 GET 请求,用来删除 User 信息
- */
- @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET)
- public String deleteUser(@PathVariable Long id) {
-
- userService.delete(id);
- return "redirect:/users/";
- }
-
-}
\ No newline at end of file
diff --git a/chapter-2-spring-boot-quick-start/src/main/resources/application.properties b/chapter-2-spring-boot-quick-start/src/main/resources/application.properties
deleted file mode 100644
index 51350c6..0000000
--- a/chapter-2-spring-boot-quick-start/src/main/resources/application.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-## 是否显示 SQL 语句
-spring.jpa.show-sql=true
\ No newline at end of file
diff --git a/chapter-2-spring-boot-quick-start/src/main/resources/static/css/default.css b/chapter-2-spring-boot-quick-start/src/main/resources/static/css/default.css
deleted file mode 100755
index 4da3051..0000000
--- a/chapter-2-spring-boot-quick-start/src/main/resources/static/css/default.css
+++ /dev/null
@@ -1,2 +0,0 @@
-/* contentDiv */
-.contentDiv {padding:20px 60px;}
\ No newline at end of file
diff --git a/chapter-2-spring-boot-quick-start/src/main/resources/static/images/favicon.ico b/chapter-2-spring-boot-quick-start/src/main/resources/static/images/favicon.ico
deleted file mode 100755
index e5a2934..0000000
Binary files a/chapter-2-spring-boot-quick-start/src/main/resources/static/images/favicon.ico and /dev/null differ
diff --git a/chapter-2-spring-boot-quick-start/src/main/resources/templates/userForm.html b/chapter-2-spring-boot-quick-start/src/main/resources/templates/userForm.html
deleted file mode 100644
index c6768ad..0000000
--- a/chapter-2-spring-boot-quick-start/src/main/resources/templates/userForm.html
+++ /dev/null
@@ -1,55 +0,0 @@
-
-
-
-
-
-
-
-
- 用户管理
-
-
-
-
-
-
《 Spring Boot 2.x 核心技术实战》第二章快速入门案例
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter-2-spring-boot-quick-start/src/main/resources/templates/userList.html b/chapter-2-spring-boot-quick-start/src/main/resources/templates/userList.html
deleted file mode 100644
index 3d680f1..0000000
--- a/chapter-2-spring-boot-quick-start/src/main/resources/templates/userList.html
+++ /dev/null
@@ -1,46 +0,0 @@
-
-
-
-
-
-
-
-
- 用户列表
-
-
-
-
-
-
-
《 Spring Boot 2.x 核心技术实战》第二章快速入门案例
-
-
-
-
-
- | 用户编号 |
- 名称 |
- 年龄 |
- 出生时间 |
- 管理 |
-
-
-
-
- |
- |
- |
- |
- 删除 |
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/chapter-2-spring-boot-quick-start/src/test/java/spring/boot/core/QuickStartApplicationTests.java b/chapter-2-spring-boot-quick-start/src/test/java/spring/boot/core/QuickStartApplicationTests.java
deleted file mode 100644
index ce75da4..0000000
--- a/chapter-2-spring-boot-quick-start/src/test/java/spring/boot/core/QuickStartApplicationTests.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package spring.boot.core;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.junit4.SpringRunner;
-
-@RunWith(SpringRunner.class)
-@SpringBootTest
-public class QuickStartApplicationTests {
-
- @Test
- public void contextLoads() {
- }
-
-}
diff --git a/chapter-2-spring-boot-quick-start/src/test/java/spring/boot/core/domain/UserRepositoryTests.java b/chapter-2-spring-boot-quick-start/src/test/java/spring/boot/core/domain/UserRepositoryTests.java
deleted file mode 100644
index d65b35f..0000000
--- a/chapter-2-spring-boot-quick-start/src/test/java/spring/boot/core/domain/UserRepositoryTests.java
+++ /dev/null
@@ -1,120 +0,0 @@
-package spring.boot.core.domain;
-
-import org.junit.Assert;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.junit4.SpringRunner;
-
-@RunWith(SpringRunner.class)
-@SpringBootTest
-public class UserRepositoryTests {
-
- @Autowired
- UserRepository userRepository;
-
- /**
- * 单元测试 - 新增用户
- */
- @Test
- public void testSave() {
- User user = new User();
- user.setName("mumu");
- user.setAge(2);
-// user.setBirthday(new Date());
- user = userRepository.save(user);
-
- // 验证新增用户
- Assert.assertNotNull(user.getId());
- }
-
- /**
- * 单元测试 - 删除用户
- */
- @Test
- public void testDelete() {
-
- // 新增两个用户数据
- User mumu = new User();
- mumu.setName("mumu");
- mumu.setAge(2);
-// mumu.setBirthday(new Date());
- userRepository.save(mumu);
-
- User zizi = new User();
- zizi.setName("zizi");
- zizi.setAge(25);
-// zizi.setBirthday(new Date());
- userRepository.save(zizi);
-
- // 验证是否获取的用户列表大小是 2
- Assert.assertEquals(2, userRepository.findAll().size());
-
- // 删除用户
- userRepository.delete(mumu);
-
- // 验证是否获取的用户列表大小是 1
- Assert.assertEquals(1, userRepository.findAll().size());
- }
-
- /**
- * 单元测试 - 更新用户
- */
- @Test
- public void testUpdate() {
- User user = new User();
- user.setName("mumu");
- user.setAge(2);
-// user.setBirthday(new Date());
- user = userRepository.save(user);
-
- user.setName("zizi");
- user = userRepository.save(user);
-
- // 验证新增用户的编号是否为 1
- Assert.assertNotNull(user.getId());
- Assert.assertEquals("zizi", user.getName());
- }
-
- /**
- * 单元测试 - 获取用户列表
- */
- @Test
- public void testFindAll() {
- // 新增两个用户数据
- User mumu = new User();
- mumu.setName("mumu");
- mumu.setAge(2);
-// mumu.setBirthday(new Date());
- userRepository.save(mumu);
-
- User zizi = new User();
- zizi.setName("zizi");
- zizi.setAge(25);
-// zizi.setBirthday(new Date());
- userRepository.save(zizi);
-
- // 验证是否获取的用户列表大小是 2
- Assert.assertEquals(2, userRepository.findAll().size());
- }
-
- /**
- * 单元测试 - 获取单个用户
- */
- @Test
- public void testFindById() {
- // 新增用户
- User mumu = new User();
- mumu.setName("mumu");
- mumu.setAge(2);
-// mumu.setBirthday(new Date());
- userRepository.save(mumu);
-
- // 验证是否获取的用户是否是插入的用户
- User expected = userRepository.findById(1L).get();
- Assert.assertEquals("mumu", expected.getName());
- }
-
-
-}