Echo/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/e0/65/351f5309d19b5500bcdf2d5398756008f84ae383330fc9c0c1197b7b889fcda920fc03af589f44bf1940b58ba3694d75e20f8488737dc283b56b3a7e4d67

1 line
72 KiB
Plaintext
Raw Normal View History

2021-02-11 21:31:41 +08:00
{"code":"(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{363:function(t,s,a){\"use strict\";a.r(s);var n=a(42),e=Object(n.a)({},(function(){var t=this,s=t.$createElement,a=t._self._c||s;return a(\"ContentSlotsDistributor\",{attrs:{\"slot-key\":t.$parent.slotKey}},[a(\"h1\",{attrs:{id:\"echo-开源社区系统\"}},[a(\"a\",{staticClass:\"header-anchor\",attrs:{href:\"#echo-开源社区系统\"}},[t._v(\"#\")]),t._v(\" Echo — 开源社区系统\")]),t._v(\" \"),a(\"hr\"),t._v(\" \"),a(\"h2\",{attrs:{id:\"📚-从本项目你能学到什么\"}},[a(\"a\",{staticClass:\"header-anchor\",attrs:{href:\"#📚-从本项目你能学到什么\"}},[t._v(\"#\")]),t._v(\" 📚 从本项目你能学到什么\")]),t._v(\" \"),a(\"ul\",[a(\"li\",[t._v(\"学会主流的 Java Web 开发技术和框架\")]),t._v(\" \"),a(\"li\",[t._v(\"积累一个真实的 Web 项目开发经验\")]),t._v(\" \"),a(\"li\",[t._v(\"掌握本项目中涉及的常见面试题的答题策略\")])]),t._v(\" \"),a(\"h2\",{attrs:{id:\"💻-核心技术栈\"}},[a(\"a\",{staticClass:\"header-anchor\",attrs:{href:\"#💻-核心技术栈\"}},[t._v(\"#\")]),t._v(\" 💻 核心技术栈\")]),t._v(\" \"),a(\"p\",[t._v(\"后端:\")]),t._v(\" \"),a(\"ul\",[a(\"li\",[t._v(\"Spring\")]),t._v(\" \"),a(\"li\",[t._v(\"Spring Boot 2.1.5 RELEASE\")]),t._v(\" \"),a(\"li\",[t._v(\"Spring MVC\")]),t._v(\" \"),a(\"li\",[t._v(\"ORMMyBatis\")]),t._v(\" \"),a(\"li\",[t._v(\"数据库MySQL 5.7\")]),t._v(\" \"),a(\"li\",[t._v(\"日志SLF4J日志接口 + Logback日志实现\")]),t._v(\" \"),a(\"li\",[t._v(\"分布式缓存Redis\")]),t._v(\" \"),a(\"li\",[t._v(\"本地缓存Caffeine\")]),t._v(\" \"),a(\"li\",[t._v(\"消息队列Kafka 2.13-2.7.0\")]),t._v(\" \"),a(\"li\",[t._v(\"搜索引擎Elasticsearch 6.4.3\")]),t._v(\" \"),a(\"li\",[t._v(\"安全Spring Security\")]),t._v(\" \"),a(\"li\",[t._v(\"邮件Spring Mail\")]),t._v(\" \"),a(\"li\",[t._v(\"分布式定时任务Spring Quartz\")])]),t._v(\" \"),a(\"p\",[t._v(\"前端:\")]),t._v(\" \"),a(\"ul\",[a(\"li\",[t._v(\"Thymeleaf\")]),t._v(\" \"),a(\"li\",[t._v(\"Bootstrap 4.x\")]),t._v(\" \"),a(\"li\",[t._v(\"Jquery\")]),t._v(\" \"),a(\"li\",[t._v(\"Ajax\")])]),t._v(\" \"),a(\"h2\",{attrs:{id:\"🔨-开发环境\"}},[a(\"a\",{staticClass:\"header-anchor\",attrs:{href:\"#🔨-开发环境\"}},[t._v(\"#\")]),t._v(\" 🔨 开发环境\")]),t._v(\" \"),a(\"ul\",[a(\"li\",[t._v(\"操作系统Windows 10\")]),t._v(\" \"),a(\"li\",[t._v(\"构建工具Apache Maven\")]),t._v(\" \"),a(\"li\",[t._v(\"集成开发工具Intellij IDEA\")]),t._v(\" \"),a(\"li\",[t._v(\"数据库MySQL 5.7\")]),t._v(\" \"),a(\"li\",[t._v(\"应用服务器Apache Tomcat\")]),t._v(\" \"),a(\"li\",[t._v(\"接口测试工具Postman\")]),t._v(\" \"),a(\"li\",[t._v(\"压力测试工具Apache JMeter\")]),t._v(\" \"),a(\"li\",[t._v(\"版本控制工具Git\")])]),t._v(\" \"),a(\"h2\",{attrs:{id:\"🎨-功能列表\"}},[a(\"a\",{staticClass:\"header-anchor\",attrs:{href:\"#🎨-功能列表\"}},[t._v(\"#\")]),t._v(\" 🎨 功能列表\")]),t._v(\" \"),a(\"p\",[a(\"img\",{attrs:{src:\"https://gitee.com/veal98/images/raw/master/img/20210208222403.png\",alt:\"\"}})]),t._v(\" \"),a(\"ul\",[a(\"li\",[a(\"p\",[t._v(\"[x] \"),a(\"strong\",[t._v(\"注册\")])]),t._v(\" \"),a(\"ul\",[a(\"li\",[t._v(\"用户注册成功,将用户信息存入 MySQL但此时该用户状态为未激活\")]),t._v(\" \"),a(\"li\",[t._v(\"向用户发送激活邮件用户点击链接则激活账号Spring Mail\")])])]),t._v(\" \"),a(\"li\",[a(\"p\",[t._v(\"[x] \"),a(\"strong\",[t._v(\"登录 | 登出\")])]),t._v(\" \"),a(\"ul\",[a(\"li\",[a(\"p\",[t._v(\"进入登录界面,动态生成验证码,并将验证码短暂存入 Redis60 秒)\")])]),t._v(\" \"),a(\"li\",[a(\"p\",[t._v(\"用户登录成功(验证用户名、密码、验证码),生成登录凭证且设置状态为有效,并将登录凭证存入 Redis\")]),t._v(\" \"),a(\"p\",[t._v(\"注意:登录凭证存在有效期,在所有的请求执行之前,