MultipleBlog_System项目(SpringBoot+Linux部署上线)

在学完SpringBoot框架、MyBatis后,直接开始做第一个项目:multipleblog_system
首先,该multipleblog_system包含核心功能有:
 一、登录、注册、退出登录功能。
 二、没有登陆前可以查看文章首页以及博客展示的分页处理,以及点击查看文章可以查看用户写的文章功能。
 三、用户登陆后进行写文章、修改文章、删除文章操作功能,并记录修改文章、写下文章的时间,记录写的文章数量。
 四、在为了保证用户账户安全情况下,进行用户密码登陆后MD5加盐处理。
 五、修改头像、增加访问量功能、
 六、以及统一数据的返回、统一异常处理、拦截器拦截接口、网页、文件包

 七、Redis实现Session持久化、数据缓存。

  此项目由个人独立开发,包括后端、数据库表的设计以及各种功能的设计。
  运用技术:
  前端:HTML、CSS、JavaScript、JQuery、Ajax
  后端:Java、SpringBoot、MyBatis
  数据库:MySQL、Redis
  部署服务器:Linux
  部署服务器所用工具:Xshell、Xftp
  后端接口设计测试工具:Postman
访问网站:http://110.41.154.247:8080/blog_list.html
开源代码:blog_system: blog_system_project (gitee.com)

下面是完成界面展示

登陆界面:

注册界面:

不登录情况下访问首页查看博客列表

在博客列表页查看某一篇博客

登录以后管理自己的博客列表页

里面包括修改头像、查看自己博客、删除自己博客、写博客、退出登录功能。

写博客页面:

修改博客页面



点击删除博客:


接下来介绍后端设计:

在设计后端架构上,主要分了这几层:

common 层:主要为了放一些拦截器类、统一数据返回类、统一异常处理、Session常量设置、密码MD5加盐处理、虚拟路径设置类。
model层:主要放用户类:userinfo、文章类:articleinfo
controller层:主要放相关前端访问的接口方法,包括UserController、ArticleController
mapper层:主要放用来连接MySQL的一些方法,与Mapper.xml与之对应
service层:主要放用来连接Controller和Mapper层的方法

依赖配置:

  <dependencies>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.3.0</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.session</groupId>
            <artifactId>spring-session-data-redis</artifactId>
        </dependency>
        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <!-- redis配置 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        <!-- lecttuce 缓存连接池-->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-pool2</artifactId>
        </dependency>

    </dependencies>


逐个介绍每个层的作用和代码详情:
common层:

1. 拦截器设置:

先自定义拦截器需要拦截的接口和页面以及文件:


将自定义拦截器里面信息放入统一拦截器并加上注解:


2. 统一数据返回,自定义Result类,将失败、成功的结果进行封装统一返回:

将数据返回类注入Spring容器:


3.设置密码MD5 以及加盐处理,里面设置两个方法,第一个方法是将密码进行UUID加盐、然后调用DigestUtils类进行MD5加密且去除“ - ”字符后再拼接盐值得到一个64位字符串 ,随后设置decrypt进行密码校验,从数据库拿到finalpassword密码,与用户登陆时输入的密码进行比对,具体算法为:将finalpassword取前32位(MD5处理会生成32位字符串,UUID加盐也会生成32位字符串),然后结合用户传入的password进行拼接然后进行MD5处理,比对处理结果和finalword是否一致,如果一致则密码正确,否则密码错误!:


4. 虚拟路径设置:
将服务器上的路径进行虚拟处理,得到一个/path/** 的路径,以至于可以被前端img 的src进行超链接访问服务器里面的图片获取用户上传的图片,完成修改头像功能:
例如<img src = 127.0.0.1: 8080//path/xxx.png>就可以获得服务器上的图片,通过访问设置的虚拟地址。



前端设计:

前端设计几个页面,里面需要引入JQuery的包,而且将css和html拷贝到Resource里面的static里面:

前端主要的作用是将页面渲染出来,得到一个个提供给用户看的界面,主要使用JavaScript来进行操作,利用JQuery的Ajax进行post/get 的http请求 发送给后端,后端通过controller层的接口接受前端传入的相关数据,然后处理请求,再将数据传送给Service层,然后给mapper层,通过Mybatis与数据库进行连接,通过Sql语句将数据传送给数据库,最后数据库可以将结果以相同的方式从数据库到mapper再到service再到controller 再通过统一数据返回传送给前端页面,前端页面通过success / error 的function进行接收最后进行渲染到前端。
下图就是一个前端JS里面的ajax请求的例子,前端通过发送post的http请求,通过url路径为“/user/login” 给后端接口 传输数据为data,随后后端处理完以后通过success进行结果的接收,返回给前端的result结果,最后渲染。


MySQL、Redis连接配置、缓存存活时间设置、Session存活时间设以及Mybatis配置:

spring:
  datasource:
    url: jdbc:mysql://110.41.154.247:3306/blog_system?characterEncoding=utf8&useSSL=false
    username: root
    password: 15113225959
    driver-class-name: com.mysql.cj.jdbc.Driver
  session:
    store-type: redis
    redis:
      flush-mode: on_save
      namespace: spring:session
  redis:
      host: 110.41.154.247
      password: 15113225959
      port: 6379

 cache:
   type: redis
   cache-names: "cache"
   redis:
     time-to-live: "10s"

server:
  servlet:
    session:
      timeout: 20

# 设置 Mybatis 的 xml 保存路径
mybatis:
  mapper-locations: classpath:mapper/**Mapper.xml
  configuration: # 配置打印 MyBatis 执行的 SQL
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
# 配置打印 MyBatis 执行的 SQL
logging:
  level:
    com:
      example:
        BlogSystem: debug


部署上线:
这里需要修改项目几个东西:

1、需要修改连接数据库的jdbc语句,将127.0.01改成服务器的ip地址
2、需要将连接数据库的用户名和密码改成服务器上的,也就是云端服务器linux里面数据库的用户名和密码
3、需要将图片保存路径修改成服务器里面的目录,将用户上传的图片保存在服务器 例如 :  D:xxx/xx改成 linux里面的目录:/root/xxx 
4、需要将虚拟路径进行修改,将虚拟路径为 /path/** 指向服务器里面的目录路径

部署需要用到云服务器,这里作者在华为云租了一个云端服务器,然后通过开放8080、3306端口,然后通过Xshell 、XFTP 进行部署,这里将maven打包好的jar后缀java文件通过xftp拖拽到远程云端服务器的目录下。
在这之前,需要在linux服务器里面先下载相关环境:JDK1.8、MariaDB,随后将sql文件通过Xftp传到linux目录下,通过source / root / xxx.sql进行执行,得到两个数据表,随后通过nohup java -jar xxx.jar &将项目部署在后台执行,遂可以通过网址访问制作好的项目。
 

  • 13
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
SpringBoot Vue项目部署Linux服务器需要进行以下步骤: 1. 在服务器上安装Java和Node.js环境。 在Linux中使用命令sudo apt-get install java和sudo apt-get install nodejs安装好Java和Node.js环境。 2. 在服务器上安装Nginx服务器。 在Linux中使用命令sudo apt-get install nginx安装Nginx服务器,并使用sudo service nginx start启动Nginx。 3. 将SpringBoot Vue项目打包成jar包。 在SpringBoot项目根目录下使用命令mvn package打包jar文件。 4. 将打包好的jar文件上传到Linux服务器。 可以使用FTP工具将jar文件上传到Linux服务器的指定目录。 5. 在服务器中生成systemd服务配置。 在Linux中使用命令sudo vi /etc/systemd/system/springboot_vue.service创建配置文件,文件内容如下: [Unit] Description=springboot_vue Application After=syslog.target [Service] User=www-data ExecStart=/usr/bin/java -jar /path/to/jar/springboot_vue.jar SuccessExitStatus=143 [Install] WantedBy=multi-user.target 其中/path/to/jar/为jar文件上传到服务器的目录。 6. 重启systemd和Nginx服务器。 在Linux中分别使用命令sudo systemctl daemon-reload、sudo systemctl enable springboot_vue.service和sudo systemctl restart nginx重启systemd和Nginx服务器。 7. 配置Nginx反向代理。 在Linux中使用命令sudo vi /etc/nginx/sites-available/default修改配置文件,文件内容如下: server { listen 80; server_name your_domain_name; location / { proxy_pass http://localhost:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } 其中your_domain_name为你的域名。 最后,在浏览器中输入域名就可以访问部署好的SpringBoot Vue项目了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值