# springboot-demo
**Repository Path**: sawyes/springboot-demo
## Basic Information
- **Project Name**: springboot-demo
- **Description**: JAVA SpringBoot 技术栈学习Demo
- **Primary Language**: Java
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2021-11-14
- **Last Updated**: 2024-12-26
## Categories & Tags
**Categories**: Uncategorized
**Tags**: Java, SpringBoot
## README
# SpringBoot-demo
[](https://gitee.com/sawyes/springboot-demo)
[commons.apache.org依赖包](https://commons.apache.org/proper/)
## 介绍
有一日逛到[xkcoding/spring-boot-demo](https://github.com/xkcoding/spring-boot-demo)项目有感, 虽然有自己搭建的私人笔记网站, 但是这么多年了也没沉淀代码
有时候仅仅笔记, 是无法复现和说明问题, 所以还是试试这个, 跟着Demo走一遍.
所以, 这不是一个严格意义上的项目, 只是笔记.
## 开发环境
* jdk 1.8
* mysql 5.7
* maven 3.63
* OS: Mac/Window 10
* springboot 2.3.7.RELEASE
## jdbc连接说明
```
url: jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false&tinyInt1isBit=false&serverTimezone=Asia/Shanghai
```
* `tinyInt1isBit=false` (default: true), https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-reference-type-conversions.html
* `UTF-8` For 5.1.47 and later: utf8mb4, 参考 https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-reference-charsets.html
* `zeroDateTimeBehavior=convertToNull`, 参考 https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-installing-upgrading-3-0-to-3-1.html
* `profileSQL=true` 开发环境调试SQL非常有用,可以直接看见原生SQL 参考 https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-conn-props-ueConfigs.html
## Demo 列表
| Module 名称 | Module 介绍 |
| ------------------------------------------------------------ |-----------------------------------------------------------------------------------------------------|
| [maven-demo-bean-factory-singleton](./maven-demo-bean-factory-singleton)| 结合工厂和单例理解Bean实现, 单例知识点,synchronized和volatile |
| [maven-demo-test](./maven-demo-test) | maven集成测试test |
| [maven-demo-spring](./maven-demo-spring) | maven集成spring |
| [maven-demo-jdbc](./maven-demo-jdbc) | maven集成测试jdbc |
| [maven-demo-mybatis-manual](./maven-demo-mybatis-manual) | maven整合mybatis
整合mybatis使用Druid管理连接池
通过动态注入配置(用户名/密码)整合Druid连接池 |
| [maven-demo-proxy](./maven-demo-proxy) | 动态代理 |
| [maven-demo-totp](./maven-demo-totp) | totp 动态秘钥算法demo |
| [spring-demo-bean-scope](./spring-demo-bean-scope) | spring bean 生命周期, 成员变量控制问题 |
| [spring-demo-druid](./spring-demo-druid) | spring集成druid |
| [maven-demo-enum](./maven-demo-enum) | enum 常规用法, 实例代码, 状态码枚举, 方法枚举 |
| [maven-demo-template-variable](./maven-demo-template-variable) | 模板变量替换,org.apache.commons.text包使用 |
| [maven-demo-time](./maven-demo-time) | 时间,日期操作类 |
| [maven-demo-redson-spring-boot-starter](./maven-demo-redisson-spring-boot-starter)| 自定义starter步骤 |
| [spring-demo-starter-redisson-client](./spring-demo-starter-redisson-client)| 引入用自定义starter ,验证[maven-demo-redson-spring-boot-starter](./maven-demo-redisson-spring-boot-starter) |
| [spring-demo-redis](./spring-demo-redis) | spring集成redis, redis template工具类封装 |
| [spring-demo-arthas](./spring-demo-arthas) | 学习arthas排查线上错误 |
| [spring-demo-web](./spring-demo-web) | 学习spring demo web项目搭建,统一CommonResult,集成Selenium测试框架, SpringbootCliApplication 命令行cli使用 |
| [spring-demo-oom](./spring-demo-oom) | 了解JVM运行时数据区各个情况的OOM |
| [spring-demo-xxljob-client](./spring-demo-xxljob-client) | xxljob入门示例 |
| [spring-demo-job-annotation](./spring-demo-job-annotation) | 模仿XXLJOB原理,实现扫描注解方法,然后根据需要调度 |
| [spring-demo-netty-websocket](./spring-demo-netty-websocket) | 验证websocket |
| [spring-demo-mybatis-plus](./spring-demo-mybatis-plus) | SpringBoot整合MyBatisPlus入门 |
## IDEA设置
插件列表
* Free Mybatis plugin
* Markdown Image Kit
#### Markdown Image Kit插件
先创建一个仓库专门用作图床,这样由插件异步上传图片并生成图片地址, 非常方便
> token是个人令牌


#### Intellij IDEA在controller中使用@Autowired注解,出现could not autowire错误
测试类容易Autowired 连接池, 实际运行不报错,但是IDEA提示错误, 需要关闭, 不然影响测试打包
File-->setting-->Inspections
* Spring->Spring Core->Code->Autowiring for Bean Class 错误等级设置为 warning

#### .editorconfig 风格统一
* EditorConfig的匹配规则是从上往下,即先定义的规则优先级比后定义的优先级要高。
* 对于VS Core,对应的插件名是EditorConfig for VS Code。

#### 文件和代码模板
维护作者以及日期信息

#### java,xml代码注释缩进(默认顶格)


## 延伸阅读
* [Java JDBC和Mysql 字段类型, 你必须了解](https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-reference-type-conversions.html)
* [Mysql utf8mb4 字符集问题](https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-reference-charsets.html)
* [jdbc url reConfigs](https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-conn-props-ueConfigs.html)
* [Query、VO、DTO、BO、DO、PO的区别和联系](https://blog.csdn.net/weixin_36337122/article/details/114807625?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-0&spm=1001.2101.3001.4242)
* [设计模式](https://www.runoob.com/design-pattern/design-pattern-tutorial.html)
## License
[MIT](http://opensource.org/licenses/MIT)
Copyright (c) 2021 Peter Wu