使用Android Studio+Spring Boot+MySQL数据库实现博客APP

为什么要写这个

因为课程需要,我们设计了一个基于Android的个人博客APP,由于网上的教程参差不齐,特别是对于基础比较薄弱的同学,没有github源码分享,没有项目目录结构,没有运行说明和测试用户、狂贴冗余代码等等原因,使得很多优秀的项目难以被参考,所以我尽量通俗易懂的介绍我搭建的简易博客APP,并且在文末放github源码地址,项目功能暂未完全完善,并且仅用来学习交流。
同时欢迎根据需求访问
基于Spring Boot的个人博客网站
基于Jsp+Servlet+SQL Server数据库实现的个人博客网站

技术说明

1.Java开源框架Spring Boot: Java平台下快速开发基于Web和MVC模式的企业级应用程序的一种开源框架。

2.安卓Activity+XML: 安卓是一种基于Linux内核的自由及开放源代码的操作系统,主要用于移动设备,Xml是activity的布局文件通过设置Xml的布局组件,实现页面的合理布局。

3.数据库基础: 数据库是存放数据的仓库。它的存储空间很大,可以存放百万条、千万条、上亿条数据。本实验使用了MySQL数据库。

4.Spring Data JPA进行ORM映射: 使用Spring Data JPA进行ORM映射,将数据库的操作封装好,提交数据库的可移植性。

5.Gson:谷歌的一个开源的JAVA库,主要用途为序列化Java对象为Json字符串,或者反序列化Json字符串成为java对象。

6.AsyncHttpClient:是Android中处理异步Http的方法。特点:创建异步 HTTP请求,在匿名回调中处理响应。

开发环境

Android Studio 、Intelij Idea、Navicat

主要功能

1.可注册
2.可以登录
3.可浏简单浏览其他用户已发表文章
4.可查看文章详情内容和评论详情
5.可以修改已设置的密码,更改已设置的信息;
6.可以管理自己的文章,包括发表新文章、删除已发表的文章;
7.可以评论文章
8.一次登录,以后就不需要再登录
9.可以根据文章内容、文章标题、用户名、标签进行模糊搜索(暂未实现)
10.可以关注其他用户,查看关注用户的博客(暂未实现)

部分UI设计(少量来源于网络)

首页
在这里插入图片描述
详情页
在这里插入图片描述
评论页
在这里插入图片描述
我的
在这里插入图片描述

数据库说明

项目运行会自动建立或更新数据库,如果想使用其他数据库,只需要在application.properties配置文件中修改为其他数据库的配置命令,并在pom.xml文件中添加相关依赖。详情可参照其他博客文章,本项目使用MySQL数据库。

运行说明

后端:可以使用Idea的版本管理直接拉取源码,无需修改其他内容可以直接运行。或者clone后倒入idea中直接运行。
前端:可以使用Android Studio的版本管理直接拉取源码,无需修改其他内容可以直接运行。或者clone后倒入Android Studio中直接运行,据我的实践经验来看,大概率出现版本兼容问题,出现版本兼容问题,依赖无法正常加载,gradle失败等情况,建议自建工程,复制粘贴文档,以正确方式导入依赖。

遇到的问题及解决思路

在项目中,我遇到了很多问题,有大有小,大部分从网上百度到了合适的解决方案,放在这里供参考,未解决的问题之后会继续进展,也欢迎各路大神指点。

1、时间格式化:大部分的时间格式都是LocalDateTime,在前端直接进行输出时,中间会有一个字母T,还会显示毫秒数,这里的解决方法不难,但是我经过用多种方法得出总结,使用一个Configuration的配置类,进行相应的转码,可以使项目中所有的LocalDateTime格式的时间数据,全部变为想要的格式,非常的方便。
2、随机生成一段字符串:在注册时我的注册界面自动为用户生成一个随机字符串,使用的是 RandomStringUtils的randomAlphanumeric方法,比较方便生成固定大小的字符串。
3、在ScrollView中,嵌套ListView时,会出现ListView无法滑动,只能展示固定长度的大小,这里困扰了好长时间,最后在CSDN找到了重新定义自己的ListView组件MyListView,使用这种方法就可以在一个页面中同时进行博文的显示和评论的展示。
5、当点击下一个Activity,返回键可以返回到上一个Activity,在有些场景下这样是不符合使用需求的,最简单的办法就是加一个finish,结束上一个activity。
6、如何存Session:当用户登录之后,如何保存当前登录信息,这个在网上找了好久没有找到合适的,我在登录中如果需要使用用户信息,采用的是从SP文件中读取,不知道实际情况是否是这样做。
7、如何实现浏览量:我希望用户在观看过一篇博文后,可以自动记录浏览记录,网上说是用监听器适配器,我也搞不太懂是什么意思,所以没有做这个。
8、如何实现缓存页面:当我每一次点击首页或者详情时,都会重新从后端服务器获取数据,这样在小并发的情况下可以维持,但是当用户访问量如果过多可能会出现问题,所以如何做缓存是一个比较重要的问题。

GitHub源码分享

链接: 前端-Android Studio工程文件
链接: 后端-Spring Boot 工程文件

猜你喜欢

转载自blog.csdn.net/weixin_42098332/article/details/107032230