### 新功能 远程请求本地文件, 热更新, 聊天框, 未来添加的功能, 断线重连 ### 全局设置 1. 计算全部代码量 ``` find . -name *.java | xargs cat | wc -l ``` 因为用户输入的文本默认是 NFC 形 式。不过,安全起见,保存文本之前,最好使用 normalize('NFC', user_text) 清洗字符串 ##### 注解 ``` import org.springframework.web.bind.annotation.RestController; @RestController import org.springframework.web.bind.annotation.RequestMapping; @RequestMapping @GetMapping @PostMapping import org.springframework.beans.factory.annotation.Autowired; @Autowired # 添加autowired前要先添加Mapper autowired需要在类前面添加services @Service public class LoginServiceImpl implements LoginService { ``` ##### 依赖 ``` Spring Boot Starter JDBC Project Lombok MySQL Connector/J mybatis-plus-boot-starter mybatis-plus-generator spring-boot-starter-security # 登录安全验证 jjwt-api jjwt-impl jjwt-jackson joor-java-8 动态编译代码包 ``` ##### 创建微服务 1. 创建父项目, 删除src, 1.1 从maven仓库中添加spring-cloud-dependencies依赖 2. 创建子项目 2.1 创建文件新建- 新建-新模块 2.2 名称, 高级-组 设置路径 2.3 添加依赖 2.4 创建application.properties 设置端口号server.port = 3152 2.5 定义springboot入口, 并统一入口类名 ##### 前端 ``` vs code 插件 Live Server Auto Rename Tag Auto Rename Tag 插件可以在修改HTML 标签的时候,自动修改标签对名称 点击settings,然后输入format,然后勾选上Format On Save ``` ``` #安装nodejs 安装完毕后,用管理员启动cmd #1.检查 node -v npm -v #2.创建两个目录: C:\Users\huali\3D Objects\node\node_cache C:\Users\huali\3D Objects\node\node_global #3.设置global cache路径 npm config set prefix "C:\Users\huali\3D Objects\node\node_global" npm config set cache "C:\Users\huali\3D Objects\node\node_cache" #4.修改用户的环境变量 添加:Path-> C:\Users\huali\3D Objects\node\node_global C:\Users\huali\3D Objects\node\node_cache #5.修改系统变量 添加:NODE_PATH C:\Users\huali\3D Objects\node\node_global\node_modules 添加:Path C:\Users\huali\3D Objects\node\node_global C:\Users\huali\3D Objects\node\node_cache #6.修改镜像 npm config get registry npm config set registry https://registry.npmmirror.com npm config get registry npm install -g cnpm --registry=https://registry.npm.taobao.org #7.测试安装 npm install express -g #8.安装vue npm install -g @vue/cli #9.启动 vue ui #10 插件 router, vuex, 依赖 bootstrap, popperjs/core , jquery , ace-builds, vue3-ace-editor 将输入框修改为代码框前端依赖 vue3-ace-editor ``` ##### 日志 首先,您需要在application.properties或application.yml文件中配置日志级别和日志文件的路径。这个文件通常位于src/main/resources目录下。 如果您使用的是application.properties,可以添加以下配置 ``` logging.level.root=INFO logging.file.name=mylog.log ``` 例如,在BackendApplication.java中, 删除原有的日志文件 ``` @SpringBootApplication public class BackendApplication { private static final Logger logger = LoggerFactory.getLogger(BackendApplication.class); public static void main(String[] args) { LoggerConfig.setLogger(); logger.info("Starting application"); SpringApplication.run(BackendApplication.class, args); } } ``` 在config.LoggerConfig中 ``` package com.kob.backend.config; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; public class LoggerConfig { private static final Logger logger = LoggerFactory.getLogger(LoggerConfig.class); public static void setLogger() { Path logFilePath = Paths.get("mylog.log"); if (Files.exists(logFilePath)) { try { Files.delete(logFilePath); logger.info("Existing log file deleted"); } catch (IOException e) { logger.error("Error deleting log file", e); } } logger.info("日志启动成功"); } } ``` ##### 安装mysql ``` 使用mybatis plus 不需要写任何mysql语句 账号: root 密码: 1234 添加环境变量 关闭:net stop mysql80 启动:net start mysql80 ``` ##### application.properties 1. 端口 2. 数据库参数 3. logger依赖 第一行账号, 第二行密码, 第三行数据库名字需要修改为自己的 ``` spring.datasource.username=root spring.datasource.password=1234 spring.datasource.url=jdbc:mysql://localhost:3306/kob?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver ``` ##### 跨域验证问题 添加 CorsConfig类 ### 功能 ##### 4.1 配置数据库 4.1.1密码加密 1. 跨域问题 CorsConfig 2. 配置数据库, 添加pom.xml依赖, 在resources/application.properties中添加配置 3. 测试数据库, 使用queryWrapper封装查询条件 4. 添加授权认证机制, 修改Spring Security, 实现 UserDetailsServiceImpl implements UserDetailsService 没有的时候只能用默认账号登录, 用来管理用户名密码. 5. 实现config.SecurityConfig类,用来实现用户密码的加密存储 4.1.2访问限制 ##### 4.2 配置数据库 4.2.1 jwt验证 4.2.2 pojo中的类对应数据库修改, 如对id添加自增 4.2.3 写登录验证接口, 先写service, 在写impl, 最后写controller 代码执行过程, 先进入controller, 在进入service ##### 4.3. 配置数据库 1. 前端页面授权 2. 特 3. 登录持久化 ##### 5.1 注意数据库里面用下划线命名, 在pojo中需要用驼峰命名相对应, serviceimpl中要用下划线与数据库一直使 1. 创建机器人数据库和对应的网页 1.1 创建pojo 1.2 创建mapper 1.3 创建4个api 1.3.1 创建service 1.3.2 实现service impl 1.3.3 实现controller 配置security, 使其可以验证账号密码 ### 八股文 http只能客户端向服务器请求, 服务器无法主动发送信息给客户端 websocket可以双向发送信息