当前位置: 首页 > news >正文

【Spring Boot】SpringBoot完整实现社交网站系统

一个完整的社交网站系统需要涉及到用户登录、发布动态、关注、评论、私信等各方面。这里提供一个简单的实现示例,供参考。

  1. 前端代码

前端使用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>

  1. 后端代码

后端使用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方法,以及构造方法等
}

  1. 数据库代码

使用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

http://www.lryc.cn/news/142458.html

相关文章:

  • Modbus转Profinet网关连接三菱变频器博图快速配置
  • 8.9 【C语言】有关指针的小结
  • WordPress Nginx伪静态规则设置以及二级目录规则
  • 2023年高教社杯 国赛数学建模思路 - 复盘:人力资源安排的最优化模型
  • React内置函数之startTransition与useTransition
  • 观察者模式简介
  • 统计程序两个点之间执行的指令数量
  • 时序预测 | MATLAB实现基于TSO-XGBoost金枪鱼算法优化XGBoost的时间序列预测(多指标评价)
  • java- ConcurrentHashMap 并发
  • java练习8.100m小球落地
  • Android JNI系列详解之生成指定CPU的库文件
  • Leetcode每日一题:1448. 统计二叉树中好节点的数目
  • 华为OD七日集训第2期 - 按算法分类,由易到难,循序渐进,玩转OD(文末送书)
  • 3d max插件CG MAGIC中的蜂窝材质功能可提升效率吗?
  • 一句话木马攻击复现:揭示黑客入侵的实战过程
  • 【游戏开发教程】Unity Cinemachine快速上手,详细案例讲解(虚拟相机系统 | 新发出品 | 良心教程)
  • 当图像宽高为奇数时,如何计算 I420 格式的uv分量大小
  • 结构型模式-代理模式
  • SpringBoot+Redis BitMap 实现签到与统计功能
  • P5739 【深基7.例7】计算阶乘
  • scikit-learn中OneHotEncoder用法
  • linux操作系统的权限的深入学习(未完)
  • C 连接MySQL8
  • 福利之舞:员工的心跳与企业的平衡术
  • MyBatis动态语句且如何实现模糊查询及resultType与resultMap的区别---详细介绍
  • 麒麟OS国产系统身份证阅读器web网页开发使用操作流程
  • 前端面试:【事件处理】探索事件流、委托与事件对象
  • c语言函数指针使用例子
  • 云计算技术应用专业实训室建设方案
  • C语言学习之共用体(union)的运用