SpringBoot+Vue豆宝社区前后端分离项目手把手实战系列教程05---每日一句功能实现

简介: SpringBoot+Vue豆宝社区前后端分离项目手把手实战系列教程05---每日一句功能实现

豆宝社区项目实战教程简介


本项目实战教程配有免费视频教程,配套代码完全开源。手把手从零开始搭建一个目前应用最广泛的Springboot+Vue前后端分离多用户社区项目。本项目难度适中,为便于大家学习,每一集视频教程对应在Github上的每一次提交。


项目首页截图


代码开源地址

前端

后端

视频教程地址

视频教程

前端技术栈


Vue

Vuex

Vue Router

Axios

Bulma

Buefy

Element

Vditor

DarkReader


后端技术栈


Spring Boot

Mysql

Mybatis

MyBatis-Plus

Spring Security

JWT

Lombok


每日一句后端

1.实体类

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@Data
@NoArgsConstructor
@TableName("bms_tip")
public class BmsTip implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 主键
     */
    private Integer id;
    /**
     * 内容
     */
    @TableField("`content`")
    private String content;
    /**
     * 作者
     */
    private String author;
    /**
     * 1:使用,0:过期
     */
    private boolean type;
}

2.mapper接口层

public interface BmsTipMapper extends BaseMapper<BmsTip> {
}

3.BmsTipMapper.xml

resource/mapper创建BmsTipMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.notepad.blog.mapper.BmsTipMapper">
    <select id="getRandomTip" resultType="com.notepad.blog.domain.BmsTip">
        select *
        from bms_tip
        order by rand()
        limit 1
    </select>
</mapper>


每日一句前端

1.在src下创建/api/tip.js

import request from '@/utils/request'
export function getTodayTip() {
    return request({
        url: '/tip/today',
        method: 'get'
    })
}

2.修改tip.vue

<template>
  <div>
    <el-card>
      <div class="header">
        <span>每日一句</span>
      </div>
      <div class="has-text-left block">
          {{ tip.content }}
      </div>
      <div class="has-text-right mt-5 block">
          {{ tip.author }}
      </div>
    </el-card>
  </div>
</template>
<script>
import { getTodayTip } from "@/api/tip";
export default {
  name: "CardBar",
  data() {
    return {
        tip: {}
    };
  },
  created() {
      this.fetchTodayTip()
  },
  methods: {
      fetchTodayTip() {
          getTodayTip().then(Response => {
              const { data } = response
              this.tip = data
          })
      }
  }
};
</script>


3.测试页面



目录
打赏
0
0
0
0
42
分享
相关文章
springboot项目集成dolphinscheduler调度器 实现datax数据同步任务
springboot项目集成dolphinscheduler调度器 实现datax数据同步任务
64 2
springboot项目集成dolphinscheduler调度器 可拖拽spark任务管理
springboot项目集成dolphinscheduler调度器 可拖拽spark任务管理
42 2
在SpringBoot项目中使用Netty实现远程调用
本文介绍了使用Netty解决网络连接性能问题的方法,重点讲解了Netty的NIO特性及其在SpringBoot中的应用。Netty作为高效的NIO框架,支持非阻塞IO,能通过单线程管理多个客户端连接,简化TCP/UDP套接字服务器开发。文章详细展示了Netty在SpringBoot中实现远程调用的过程,包括服务端与客户端代码实现、依赖配置及测试验证。通过示例代码,如`NettyServer`、`NettyClientUtil`等,清晰说明了Netty的工作原理和实际应用,解决了半包等问题,并提供了完整的测试结果。
156 3
Vue 中 key 属性的深入解析:改变 key 导致组件销毁与重建
Vue 中 key 属性的深入解析:改变 key 导致组件销毁与重建
210 0
|
3月前
|
vue实现任务周期cron表达式选择组件
vue实现任务周期cron表达式选择组件
380 4
基于 Vue 与 D3 的可拖拽拓扑图技术方案及应用案例解析
本文介绍了基于Vue和D3实现可拖拽拓扑图的技术方案与应用实例。通过Vue构建用户界面和交互逻辑,结合D3强大的数据可视化能力,实现了力导向布局、节点拖拽、交互事件等功能。文章详细讲解了数据模型设计、拖拽功能实现、组件封装及高级扩展(如节点类型定制、连接样式优化等),并提供了性能优化方案以应对大数据量场景。最终,展示了基础网络拓扑、实时更新拓扑等应用实例,为开发者提供了一套完整的实现思路和实践经验。
250 77
Vue 自定义进度条组件封装及使用方法详解
这是一篇关于自定义进度条组件的使用指南和开发文档。文章详细介绍了如何在Vue项目中引入、注册并使用该组件,包括基础与高级示例。组件支持分段配置(如颜色、文本)、动画效果及超出进度提示等功能。同时提供了完整的代码实现,支持全局注册,并提出了优化建议,如主题支持、响应式设计等,帮助开发者更灵活地集成和定制进度条组件。资源链接已提供,适合前端开发者参考学习。
176 17
Vue 文件批量下载组件封装完整使用方法及优化方案解析
本文详细介绍了批量下载功能的技术实现与组件封装方案。主要包括两种实现方式:**前端打包方案(基于file-saver和jszip)** 和 **后端打包方案**。前者通过前端直接将文件打包为ZIP下载,适合小文件场景;后者由后端生成ZIP文件流返回,适用于大文件或大量文件下载。同时,提供了可复用的Vue组件`BatchDownload`,支持进度条、失败提示等功能。此外,还扩展了下载进度监控和断点续传等高级功能,并针对跨域、性能优化及用户体验改进提出了建议。可根据实际需求选择合适方案并快速集成到项目中。
201 17
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问