2 技术栈
2.1 后端技术
后端主要采用了:
-
SpringBoot
-
SpringSecurity
-
MyBatis
-
部分接口遵循Restful风格
-
MySQL
2.2 前段技术
前端主要采用了:
-
Vue
-
.axios
-
ElementUI
-
vue-echarts
-
mavon-editor
-
vue-router
还有其他一些琐碎的技术我就不在这里一一列举了。
3 快速运行
3.1 克隆项目到本地
git@github.com:lenve/VBlog.git
3.2 执行建表和初始化表数据的sql
找到blogserver
项目中resources目录下的vueblog.sql
文件,使用root账户连接MySQL
数据库的客户端后在控制台中执行sql
脚本(需要在windows电脑本地和linux服务器上安装mysql数据库服务,笔者在两个环境安装的是Mysql5.7):
这里笔者使用root账户为访问vueblog2数据库创建的一个新的用户vueblog
– 本地开发环境创建vueblog用户和登录密码
CREATE USER ‘vueblog’@‘localhost’ IDENTIFIED by ‘vueblog2021#’;
– 本地开发环境授权vueblog2数据库中表的增删改查权限给vueblog用户
GRANT CREATE,DROP,ALTER,INSERT,UPDATE,SELECT,DELETE on vueblog2.* to ‘vueblog’@‘localhost’ with grant OPTION;
– linux服务器生产环境用户和密码设置
CREATE USER ‘vueblog’@‘%’ IDENTIFIED by ‘blog2021’;
GRANT CREATE,DROP,ALTER,INSERT,UPDATE,SELECT,DELETE on vueblog2.* to ‘vueblog’@‘%’ with grant OPTION;
– 开发环境和生产环境都需要执行的sql
FLUSH PRIVILEGES;
在linux服务器上创建vueblog
用户后可能会发现登录被拒,这时候需要执行如下sql
脚本查看是否创建成功
use mysql;
SELECT * from user where User=‘vueblog’;
如果创建vueblog
不成功则需要执行如下sql查看用户名和密码是否符合Mysql的规则,并根据规则做出修改
show VARIABLES like 'validate_%';
3.3 修改配置文件
根据自己本地和生产环境情况修改数据库配置,本地和生产环境数据库连接信息分别配置在SpringBoot
项目的application-dev.properties
和application-prod.properties
中
为了区别本地和生产配置信息文件,笔者在application.properties
配置文件的基础上新建了,分别是application-dev.properties
和application-prod.properties
两个配置文件
application.properties
配置文件内容:
#激活本地开发环境
spring.profiles.active=dev
server.port=8081
application-dev.properties
配置文件内容:
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.url=jdbc:mysql://localhost:3306/vueblog2?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
spring.datasource.username=vueblog
spring.datasource.password=vueblog2021#
application-prod.properties
配置文件内容:
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
打包到Linux服务器上时使用
spring.datasource.url=jdbc:mysql://localhost:3306/vueblog2?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
spring.datasource.username=vueblog
spring.datasource.password=blog2021
3.4 本地运行blogserver
项目
在IntelliJ IDEA中
以Debug模式运行blogserver
项目
控制台出现如下日志信息表明后端服务启动成功:
2021-05-23 21:40:06.768 INFO 9400 — [ main] o.s.s.c.ThreadPoolTaskScheduler : Initializing ExecutorService ‘taskScheduler’
2021-05-23 21:40:06.846 INFO 9400 — [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8081 (http) with context path ‘’
2021-05-23 21:40:06.849 INFO 9400 — [ main] org.sang.BlogserverApplication : Started BlogserverApplication in 4.025
3.5 本地运行vueblog
项目
vueblog
项目是一个前端vue项目。进入到vueblog目录中,鼠标右键->执行Git Bash Here命令在控制台中行依次输入如下命令:
安装依赖
npm install
在 localhost:8080 启动项目
npm run dev
项目的作者江南一点雨在vueblog
项目中已经配置了端口转发,将数据转发到SpringBoot
上,因此项目启动之后,在浏览器中输入http://localhost:8080
就可以访问我们的前端项目了,所有的请求通过端口转发将数据传到SpringBoot
中(注意此时不要关闭SpringBoot
项目)。
这时候在浏览器中输入http://localhost:8080就能进入项目的登录页面了
5 部署到Linux服务器
5.1 后端blogserver
项目打包部署
(1) 在blogserver
项目所在文件夹 鼠标点击右键->Git Bash Here, 在控制台中执行mvn clean package
命令把项目达成一个jar包,在控制台日志中看到如下信息表明打包成功
[INFO] — maven-jar-plugin:3.1.2:jar (default-jar) @ blogserver —
[INFO] Building jar: D:\SpringBootProject\VBlog\blogserver\target\blogserver-0.0.1-SNAPSHOT.jar
[INFO]
[INFO] — spring-boot-maven-plugin:2.2.7.RELEASE:repackage (repackage) @ blogserver —
[INFO] Replacing main artifact with repackaged archive
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 11.271 s
[INFO] Finished at: 2021-05-23T22:15:44+08:00
[INFO] ------------------------------------------------------------------------
此时进入blogserver
项目的target目录下可以看到生成了一个jar包格式的文件:blogserver-0.0.1-SNAPSHOT.jar
(2)使用XShell6
ssh客户端连接软件登录自己的Linux云服务器,执行cd /usr/local
命令进入/usr/local
目录
(3)执行 mkdir vueblog
命令创建vueblog
文件夹,使用XShell6
自带的Xftp
文件传输工具将blogserver-0.0.1-SNAPSHOT.jar
文件上传到/usr/local/vueblog
目录下
(4) 执行cd ./vueblog
命令进入/usr/local/vueblog
目录后执行mkdir logs
命令创建日志文件夹
(5) 在当前目录执行vim startup.sh
命令创建项目的启动bash脚本文件
startup.sh
文件内容如下:
#!/bin/bash
jar_name=blogserver-0.0.1-SNAPSHOT.jar
port=8081
log_path=./logs
ID=ps -ef | grep $port | grep -v "grep" | awk '{print $2}'
echo $ID
if [ {$ID} ]; then
echo ‘App is Running,Kill the Proccess!’
kill -9 $ID
echo ‘Stop Success!’
fi
rm -rf $log_path
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
惊喜
最后还准备了一套上面资料对应的面试题(有答案哦)和面试时的高频面试算法题(如果面试准备时间不够,那么集中把这些算法题做完即可,命中率高达85%+)
一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!
AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算
219476)]
[外链图片转存中…(img-6ByyIBBh-1712456219477)]
一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!
AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算