个人中心项目--朋友圈模块(三)

该博客详细介绍了如何实现个人中心的朋友圈动态功能,包括文字和图片发布。讲解了数据库设计、图片存储策略、Mapper、Service、Controller层的代码实现,并提到了SpringBoot中图片路径的获取与上传。在遇到动态发布后图片加载问题时,提供了解决方案,即重写WebMvcConfigurer以正确显示图片。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.描述:

这部分功能主要是实现发表一条动态并在朋友圈显示的功能。

2.效果展示:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.思路:

在这里插入图片描述
上图是动态对应的数据库表单,我们每次发动态时,可选的有动态的文字部分或者是图片部分,而时间就是当前时间,own_id通过获取当前登录的用户信息获取。
图片在数据库存储方式选择图片地址拼接方式,中间使用逗号隔开(当然,还可以选择更特殊一点的标记符号,因为我在测试过程中发现,有的图片地址中就含有逗号,这样,我们在从数据库取出来图片字段进行字符串切割时,会把这个图片地址切成多份,那么在页面肯定会显示找不到图片的…)

4.代码:
4.1 Mapper:

这部分只是一条插入语句,而且我是通过逆向工程生成的代码,说一这部分没添加代码:

 <insert id="insert" parameterType="com.luckysheep.model.Dynamic" >
    <!--
      WARNING - @mbggenerated
      This element is automatically generated by MyBatis Generator, do not modify.
      This element was generated on Fri Jun 12 14:10:02 CST 2020.
    -->
    insert into dynamic (img, own_id,
    time_pub, content)
    values (#{
   img,jdbcType=VARCHAR}, #{
   ownId,jdbcType=INTEGER},
    #{
   timePub,jdbcType=TIMESTAMP}, #{
   content,jdbcType=LONGVARCHAR})
  </insert>
4.2 Service:
    @Override
    public void insertDynamtic(Dynamic dynamic) {
   
        dynamicMapper.insert(dynamic);
    }
4.3 Controller:
 @PostMapping("/pubDynastic")
    public String pubDynastic(@RequestParam("imghead1")MultipartFile[] imghead, HttpServletRequest request){
   
        String myText = request.getParameter("myText");
        String property = System.getProperty("user.dir");
        String picture = "";
        if(null != imghead && imghead.length > 0){
   
            for (MultipartFile picFile  : imghead) {
   
                if(null != picFile && null != picFile.getOriginalFilename()){
   
                    String filePath = property+"\\src\\main\\resources\\static\\img\\"+ picFile.getOriginalFilename();
                    File fileMdkr = new 
继“Java开发微信朋友圈PC版系统-架构1.0”之后,debug这段时间日撸夜撸,终于赶在春节放假前给诸位带来了这一系统的架构2.0版本,特此分享给诸位进行学习,以掌握、巩固更多的技术栈以及项目和产品开发经验,同时也为即将到来的金银四跳槽季做准备! 言归正传,下面仍然以问答的方式介绍下本门课程的相关内容! (1)问题一:这是一门什么样的课程? 很明显,本门课程是建立在架构1.0,即 第1门课程 的基础上发布的,包含了架构1.0的内容,即它仍然是一门项目、产品实战课,基于Spring Boot2.X + 分布式中间件开发的一款类似“新浪微博”、“QQ空间”、“微信朋友圈”PC版的互联网社交软件,包含完整的门户网前端 以及 后台系统管理端,可以说是一套相当完整的系统! (2)问题二:架构2.0融入了哪些新技术以及各自有什么作用? 本课程对应着系统架构2.0,即第2阶段,主要目标:基于架构1.0,优化系统的整体性能,实现一个真正的互联网社交产品;其中,可以学习到的技术干货非常多,包括:系统架构设计、Spring Boot2.X、缓存Redis、多线程并发编程、消息中间件RabbitMQ、全文搜索引擎Elastic Search、前后端消息实时通知WebSocket、分布式任务调度中间件Elastic Job、Http Restful编程、Http通信OKHttp3、分布式全局唯一ID、雪花算法SnowFlake、注册中心ZooKeeper、Shiro+Redis 集群Session共享、敏感词自动过滤、Java8 等等; A.  基于Elastic Search实现首页列表数据的初始化加载、首页全文检索;B.  基于缓存Redis缓存首页朋友圈“是否已点赞、收藏、关注、评论、转发”等统计数据;整合Shiro实现集群部署模式下Session共享;C.  多线程并发编程并发处理系统产生的废弃图片、文件数据;D.  基于Elastic Job切片作业调度分布式多线程清理系统产生的废弃图片;E.  基于RabbitMQ解耦同步调用的服务模块,实现服务模块之间异步通信;F.  基于WebSocket实现系统后端 与 首页前端 当前登录用户实时消息通知;G.  基于OKHttp3、Restful风格的Rest API实现ES文档、分词数据存储与检索;H.  分布式全局唯一ID 雪花算法SnowFlake实现朋友圈图片的唯一命名;I.  ZooKeeper充当Elastic Job创建的系统作业的注册中心;J.  为塑造一个健康的网络环境,对用户发的朋友圈、评论、回复内容进行敏感词过滤;K.  大量优雅的Java8  Lambda编程、Stream编程;  (3)问题:系统运行起来有效果图看吗?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值