【SpringBoot系列】03-测试与数据库操作
配置属性与数据
获取配置文件属性
在前面我们有学习过,在配置文件添加属性,使用@ConfigurationProperties获取配置文件属性的值,并且通过实体类来封装这些数据,实体类需要有set方法来进行自动注入。
使用实体类封装配置属性
使用实体类来封装配置文件的属性需要以下三个步骤:
定义属性
创建实体类封装属性
在实体类绑定属性并生成get、set方法
定义实体类为Bean对象(这样实体类才可以被IOC容器管理注入信息)
定义属性
比如我们在配置文件添加如下几个属性:
123student: name: 小码同学 major: 计算机科学与技术
封装属性
然后再使用一个实体类来封装这些信息
123456789import lombok.Data;import org.springframework.boot.context.properties.ConfigurationProperties;@Data // 自动生成get、set方法@ConfigurationProperties(prefix = "student") // 绑定配置文 ...
Linux常见问题
Linux环境
Nginx安装报错
configure编译错误
make安装错误
解决方法
错误表示说没有找到error.log文件,没有办法设置日志文件环境变量,所以报错了。
那我们创建一个就好了,报错的路径在哪里,我们就在哪里创建一个日志文件。
12mkdir -p /usr/local/nginx/logs/touch /usr/local/nginx/logs/error.log
PHP-FPM启动报错
排查错误
启动PHP-FPM报错
1Job for php-fpm.service failed because the control process exited with error code. See "systemctl status php-fpm.service" and "journalctl -xe" for details.
查看PHP-FPM状态
查看状态是否报错,或者看看能不能从状态看出点问题来。
12345678910111213141516[root@ECS- bin]# systemctl ...
Flarum问答社区
前言
中文站:https://flarum.org.cn/
Flarum 是一款非常简洁的开源论坛软件。 它响应快速、简便易用,拥有打造一片成功的社区所需的所有功能。 它也极其可扩展,允许达到终极的可定制性。
Flarum 的前身是 esoTalk 和 FluxBB, 它生来就被设计如此:
快速、简单。 不杂乱不臃肿,没有复杂的依赖关系。 Flarum 使用 PHP 构建,因此很容易被部署。 界面采用高性能且小巧的 JavaScript 框架 Mithril。
漂亮、响应式。 以人为本的论坛软件。 Flarum 被精心设计以在不同平台间保持一致性和直观性,开箱即用。
强大、可扩展。 您可以客制化、扩展或集成 Flarum 以满足您的社区需求。 Flarum 基于 MIT 协议 发布。
免费、开源。 Flarum 以 MIT 许可证 发布。
安装Flarum
安装Flarum的方式有两种,一个是Docker一个是直接安装,Docker方式安装方便,快速,直接拉取镜像一个命令就可以快速启动,但稳定性不如直接安装。直接安装就是环境比较复杂,但比较稳定。
Docker方式安装
...
【SpringBoot系列】2-整合SSMP+高级配置
什么是SSMP?
SSMP和SSM差不多,只是将SSM中的Mybatis换成MybatisPlus,其中SSM是Spring、SpringMvc、Mybatis框架的整合,是标准的MVC模式,标准的SSM框架有四层,分别是dao层(mapper),service层,controller层和View层。使用spring实现业务对象管理,使用spring MVC负责请求的转发和视图管理,mybatis作为数据对象的持久化引擎。
我们下面讲解整合一下Junit、Mybatis、MybatisPlus、Druid,然后做一个小案例。
创建SpringBoot项目
创建SpringBoot有几种方式,一种是使用Maven来创建SpringBoot项目,一种是从官网配置项目信息,然后下载压缩包在本地打开,还有一种是直接在idea创建SpringBoot项目,下面演示在idea创建一个SpringBoot项目:
分析pom依赖
我们在创建SpringBoot项目时,如果不勾选任何依赖,在创建项目后,我们在pom.xml文件可以看到下面这段标签,这就是SpringBoot自带的Junit5 测 ...
Jenkins集成Gitee持续集成
前言
Jenkins集成Gitlab持续集成
之前使用过Jenkins+Gitlab+Dockerfile+Nginx来部署过SpringBoot项目,这次试试使用Gitee仓库部署项目,使用Gitee来集成项目,对于独立开发者用的更多,使用GitHub需要魔法,有时候push会失败就没办法,用Gitee的效果就会好很多。速度快。
我们还可以将我们的博客源码放在Gitee上,然后在Jenkins自动化构建我们的博客。方面管理。
安装Jenkins
我们使用Docker安装Jenkins,因为如果使用Jenkins安装包可能会因为会因为环境问题导致无法打开Jenkins,之前使用Jenkins的jar包来安装Jenkins,是真的难搞,一大堆因为环境问题无法打开Jenkins,所以我们使用Docker容器来部署Jenkins,这样会避免一些环境的问题。
安装准备
安装Docker(必装)
安装Docker这里就不展开讲了,可以去我之前的文章看看怎么安装Docker。
安装Docker教程:https://blog.hikki.site/2802e5c6.html
安装Mav ...
Java开发Swagger接口文档入门
前言
什么是Swagger?
Swagger是一种API设计工具,在API文档和代码之间建立了关系,并使API文档在不断更改的代码基础上保持最新、准确和可读性。它允许描述API的结构,以便机器可以读取它们,这就是Swagger的所有魅力的根源。通过读取API的结构,它可以自动构建漂亮和交互式的API文档。此外,Swagger还可以为您的API以多种语言自动生成客户端库,并探索其他可能性,如自动测试。
Swagger有什么用?
现在开发项目,大多数都是采用前后端开发,前后端交互都是通过API文档进行交流,前后端各自开发,互不干扰。
传统开发方式
传统的开发模式,后端写好API接口,生成文档,发给前端工程师,前端根据后端发过来的API文档进行开发,但这样做有个缺点,文档无法做到实时同步。
Swagger接口
在Java项目中,集成Swagger后,当我们编写出接口时,Swagger就会自动扫描我们的接口,通过Restful风格发布,每当后端的接口有更新,Swagger都会扫描到,并且更新,通过网页展示每个端接口的情况。
你甚至还能给每个接口添加注释,供前端工程师了解每个接口所需 ...
迁移Docker容器及数据
前言
最近领了一台服务器,感觉闲着也是闲着,倒不如拿来挂一下PT,赚点魔力值也不错,就想安装一下Transmission,但拉取镜像的时候发现,它更新了,并且已经移除了第三方的UI页面,变得好丑好丑的界面,忍不了,得换个好看的。
我在另外的两台服务器也有部署到Transmission这个服务,但以前拉取的镜像,我忘记是哪个版本了,那时候拉取的镜像时最新版latest,没办法根据这个标签来定位镜像,想想倒不如直接将现在这个容器打包复制到这台新服务器上,这样也不用到处找了。
迁移Docker我认为有两个方式:
复制docker-compose.yml文件内容+挂载数据到新服务器(推荐)
打包整个容器成新镜像,将新镜像打包成tar压缩包复制到新服务器
下面演示这两种方式都演示一遍,方便你的选择。
容器数据
可能你有个疑问,如果这个容器里面有什么数据,打包后这些数据怎么办?
答:我们一般在运行docker容器前会设置重要的数据进行挂载到宿主机,这样是为了数据持久化,保证数据不会因为容器的停止而丢失。
当我们有挂载数据到宿主机时,我们可以直接复制这些数据到新的服务器上,并且将docker ...
Spring项目web.xml详解
web-app标签
123456789<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0"> </web-app>
欢迎页
1234<!-- 欢迎页 默认是 webapp/index.jsp --> <welcome- ...
REST风格API开发
REST风格
REST介绍
REST(Representational State Transfer),表现形式状态转换
传统风格资源描述形式
http://localhost/user/getById?id=1
http://localhost/user/saveUser
REST风格描述形式
http://localhost/user/1
http://localhost/user
优点:
隐藏资源的访问行为,无法通过地址得知对资源是何种操作
书写简化
RESTful介绍
按照REST风格访问资源时使用行为动作区分对资源进行了何种操作
http://localhost/users 查询全部用户信息 (查询)
http://localhost/users/1 查询指定用户信息(查询)
http://localhost/users 添加用户信息(新增/保存)
http://localhost/users 修改用户信息(修改/更新)
http://localhost/users/1 删除用户信息(删除)
根据REST风格对资源进行访问称为RESTful
...
部署静态资源到腾讯对象存储
官方文档
腾讯云对象存储托管静态网站文档:https://cloud.tencent.com/document/product/436/9512
该文档教你在对象存储上部署一个静态网站,也可以将静态资源部署在对象存储,让你的博客的服务器减少压力。
我这次的实验内容就是将博客上的部分静态资源文件部署在对象存储上,减少服务器压力。
常见问题
官方文档写得也比较详细了,这里就不写了,只说一下博主遇到的问题。
创建存储桶访问权限
如果你是部署网站或者是将静态资源部署在对象存储,然后在博客引用对象存储的静态资源的话,这里的访问权限选择公有读私有写。
所属地域:一般选自己常驻地域,这样读取的速度可能会快些
名称:任意
访问权限:公有读私有写
自定义源站域名
源站域名自定义一个域名,但这个域名必须是你的域名下的子域名,比如我的域名是hikki.site,那我就可以定义一个子域名cdn.could.hikki.site,当然,你要验证这个域名的所有权。
添加源站域名
域名解析
我的域名在阿里云万网买的,那就去万网的hikki.site域名添加一条记录,记录如下:
记录类型:CNAME
主 ...