spring-boot开发管理系统的心得和记录
2020年初,学习spring-boot开发管理系统的心得和记录。方便自己日后查阅和他人学习。同时加深自己学习的印象。
〇、Spring-Boot注释记录
在这里记录常用或使用过的注释,方便查询。
类注解:
注解 | 简介 |
---|---|
@SpringBootApplication | 标记spring-boot应用 |
- (exclude = DataSourceAutoConfiguration.class) | 关闭数据库自动配置 |
@Configuration | 标记配置组件 |
@Controller | 标记controller组件 |
@ResponseBody | 返回结果 |
@RestController | @Controller+@ResponseBody |
@CrossOrigin | 跨域 |
@Service | 标记service组件/dubbo服务注册到注册中心 |
@Component | 标记不好归类的组件 |
@Aspect | 标记aop类 |
@SpringBootTest | 标记spring-boot测试类 |
@Data | lombok中标记entity对象,自动生成getter,setter方法等 |
方法注解:
注解 | 简介 |
---|---|
@Bean | 产生一个bean对象 |
@RequestMapping | 映射请求路径 |
@GetMapping | get请求映射请求路径 |
@PostMapping | post请求映射请求路径 |
@PutMapping | put请求映射请求路径,update时使用 |
@DeleteMapping | delete请求映射请求路径,delete时使用 |
@Test | 测试方法 |
@Around | 环绕通知,aop中使用 |
> (“execution(* com.xxx.xxx.xxx . *Controller. *(. .))”) | 设置xxx包下的任意controller结尾的任意方法带任意参数 |
变量注解:
注解 | 简介 |
---|---|
@Autowire | 动态装配bean |
@Reference | dubbo中注入分布式的远程服务的对象 |
@Valid | 开启校验 |
@RequestBody | 接收请求体中的数据 |
@PathVariable | 接收请求路径中占位符的值 |
@RequestParam | 接收请求路径中的参数 |
@Size | lombok中设置校验数据的长度条件 |
@NotEmpty | lombok中设置校验字符串的非空条件 |
@NotNull | lombok中设置校验数据的非空条件 |
一、docker简介
通过安装镜像,使用容器提供服务,较在每台计算机中安装重复的,复杂的软件来说,更加轻量,方便。
对应操作 | docker命令 |
---|---|
移除镜像 | docker rmi 镜像名/id |
下载镜像 | docker pull 镜像名:版本号 |
查看镜像 | docker images |
创建容器 | docker run (根据需求加上下列配置) 镜像名 |
放在后台 | -d |
端口映射 | -p xxxx:xxxx |
重新命名 | –name |
启动容器 | docker start 镜像名/id |
删除容器 | docker rm -f 镜像名/id |
查看容器 | docker ps -a |
二、MySql安装
使用命令安装mysql:
docker pull mysql:5.7
选择5.7版本是因为兼容性好,可以减少很多会犯错的地方,同时,网络上相关的文档比较多,易于查找帮助。
使用命令运行容器:
docker run -p 3306:3306 --name mysql-master
-v /mydata/mysql/log:/var/log/mysql
-v /mydata/mysql/data:/var/lib/mysql
-v /mydata/mysql/conf:/etc/mysql
-e MYSQL_ROOT_PASSWORD=root
-d mysql:5.7
参数 | 解释 |
---|---|
-p 3306:3306 | 将容器的 3306 端口映射到主机的 3306 端口。 |
–name | 给容器命名 |
-v /mydata/mysql/conf:/etc/mysql | 将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。 |
-v /mydata/mysql/log:/var/log/mysql | 将主机当前目录下的 logs 目录挂载到容器的 /log。 |
-v /mydata/mysql/data:/var/lib/mysql | 将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。 |
-e MYSQL_ROOT_PASSWORD=123456 | 初始化 root 用户的密码。 |
-d | 后台运行 |
mysql:5.7 | 使用的镜像名 |
三、Mysql主从配置
在高并发系统中,由于数据库压力较大,所以需要多个数据库服务器来共同配合完成工作。尤其是在修改数据时,速度较慢。故通过配置数据库主从,让用户从主数据库中来进行写操作,从从数据库中进行读操作,减小数据库压力。
1、Mysql主从容器配置
-
修改配置文件
修改挂载到外部的conf目录下的my.cnf配置文件。master数据库添加:
server_id=1 log-bin=mysql-bin read-only=0
slave数据库添加:
server_id=2 log-bin=mysql-bin read-only=1
可以以同样的方式添加一些基本配置,如编码方式等。
-
重启master和slave数据库
-
进入容器内部,进行配置
如果在docker中进行配置,则键入命令:
docker exec -it 容器名/id /bin/bash
然后进行mysql登录即可进入。或者通过数据库可视化界面,连接对应数据库,进行查询即可
#1、查询master库的status
SHOW MASTER STATUS #使用非可视化界面操作时,好像要在末尾加上 \G
#2、记录file和position属性
#FILE POSITION Binlog_Do_DB Binlog_Ignore_DB Executed_Gtid_Set
#---------------- -------- ------------ ---------------- -------------------
#mysql-bin.xxxxx xxxx
#3、停止slave
STOP SLAVE #使用非可视化界面操作时,要在末尾加上 ;
#4、对slave库进行配置
CHANGE MASTER TO
MASTER_HOST='xxx.xxx.xxx.xxx', # 主机ip
MASTER_USER='xxx', # 用户
MASTER_PASSWORD='xxx', # 密码
MASTER_PORT=xxxx, # master端口号
MASTER_LOG_FILE='xxxxxxx', # master的file
MASTER_LOG_POS=xxx