spring boot之从零开始开发自己的网站 (2)

 

spring boot之从零开始开发自己的网站

首页展示

首页也文章列表+图片的形式展示内容,默认最大显示12篇文章,包括发布时间和分类

上部展示菜单栏,支持搜索,归档页等功能

右侧显示菜单栏,展示个人github地址,个人信息,标签云等

使用redis缓存首页的html页面,加速访问。

打包、部署和运行

本项目采用springboot的maven插件进行打包,打成jar形式

部署方式:使用**nohub java -jar xxx.jar &**的方式,启动项目

 

数据设计

用户表:t_users

spring boot之从零开始开发自己的网站

用户表主要管理后台管理用户。

文章表:t_contents

spring boot之从零开始开发自己的网站

主要管理文章内容,外键为cid

标签表:t_metas

spring boot之从零开始开发自己的网站

管理标签信息,外键为mid

文章标签关系表:t_relationships

spring boot之从零开始开发自己的网站

记录文章和分类的关系,多对多表

 

性能与可靠性 性能设计

将文章内容写入redis中,加快访问速度

可靠性设计

后台管理,可以系统日志,查看系统运行状态

定时发送邮件,发送服务端的可用内存,cpu,最新日志,硬盘情况进行监控

对于恶意的IP,支持黑名单设置,禁止访问

开发流程 数据库的curd

首先,编写sql语句,创建数据库。

本项目的crud操作采用mybatis的逆向功能,对于特殊操作,需要自己手写sql语句

springboot如何使用mybatis,以及mybatis的逆向工程,请参考springboot与mybatis

编写service层,根据需求分析和概要设计,将具体业务转成具体代码

关于事务的使用,使用srping中的@Transactional,还是很方便的

本流程的开发不是特别难,关键在于业务的实现

页面与展示

作为一个后端开发,css的功力还是有所欠缺的,所以也是用了妹子UI主题,和tale的后端页面,大大减少了页面的开发难度,特此感谢

页面与后端的交换主要是在controller包中,springboot的页面开发和springmvc是几乎一样的,@PostMapping和@GetMapping这两个注解也是方便了开发。

统一的异常处理,使用@ControllerAdvice,定义异常页面,设置自动跳转500,404页面。

拦截器,获取http请求中的ip,判断是否在黑名单(如果在,则禁止访问系统)

其他功能

该项目是在My blog基础上修改的,修复了部分bug,增加添加黑白单功能,指定文章缩略图

分析访问量最多的数据,主要在于文章访问部分,将文章放入redis缓存。每次编辑完文章后,更新缓存

每天定时发送邮件,汇报服务器运行状态和最新日志,手机即可查看。

系统安全

使用阿里云云主机,借助阿里云本身防护机制,

在主机中安装denyhosts,对于尝试暴力破解ssh的IP,实施封禁

对于评论部分,能够抵御sql注入和xss攻击

打包测试

使用springboot本身测试方式,在集成测试之前,先进行单元测试

打包,使用springboot的mvn插件,打成jar包

网站建设

服务器选用的是阿里云centos7

域名是腾讯送的

网站需要备案,备案的话,只要按照阿里云提示的流程走,就可以了,就是上传个人身份信息,和审核,大概需要一个月的时间

开发总结

springboot常用注解

srpingboot整合mybatis

springboot之邮件的发送

springboot之thymeleaf的使用

springboot之定时任务

springboot之netty的使用

springboot之redis的整合与使用

以上是我学习springboot总结的一些博客,特此分享

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpswdj.html