基于 Spring Boot 博客系统开发(一)

2024-04-28 17:52

本文主要是介绍基于 Spring Boot 博客系统开发(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

基于 Spring Boot 博客系统开发(一)

本系统是简易的个人博客系统开发,为了更加熟练地掌握SprIng Boot 框架及相关技术的使用。🤓🤓🤓
基于 Spring Boot 博客系统开发(二)👈👈

本系统开发所需的环境及相关软件

操作系统:Windows
Java开发包:JDK 8
spring boot 版本:2.6.13
项目管理工具:Maven 3.8.0
项目开发工具:IntelliJ IDEA
数据库:MySQL
浏览器:谷歌浏览器

系统功能框架图

在这里插入图片描述

  1. 前端使用Spring Boot支持的模板引擎Thymeleaf+jQuery完成页面信息展示
  2. 后端使用Spring MVC+Spring+MyBatis Plus框架进行整合开发

静态资源首页效果预览

静态资源下载链接
在这里插入图片描述

项目结构

创建一个名称为blog_system01的Spring Boot项目,选择Web模块
在这里插入图片描述

数据库设计

文章详情表t_article
在这里插入图片描述
文章评论表t_comment
在这里插入图片描述
文章统计表t_statistic
在这里插入图片描述
用户信息表t_user
在这里插入图片描述
用户权限表authority
在这里插入图片描述
用户权限关联表t_user_authority
在这里插入图片描述

创建数据库并导入测试数据

创建一个名称为blog_system01的数据库,并选择该数据库,然后将本书资源中所提供的blog_system.sql文件导入到blog_system数据库中。
在这里插入图片描述

引入依赖

starters 快捷添加依赖
在这里插入图片描述
所需要的依赖

        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.2</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.5.1</version></dependency><dependency><groupId>org.apache.velocity</groupId><artifactId>velocity-engine-core</artifactId><version>2.0</version></dependency><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>5.1.10</version></dependency>

编写配置文件

application.properties全局配置文件添加配置

# 应用服务 WEB 访问端口
server.port=8080# 数据源
spring.datasource.driver‐class‐name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/blog_system01
spring.datasource.username=root
spring.datasource.password=root# 显示SQL日志
mybatis‐plus.configuration.log‐impl=org.apache.ibatis.logging.stdout.StdOutImpl# mapper.xml 配置文件路径
mybatis‐plus.mapper‐locations=classpath:mapper/*.xml
# 配置XML映射文件中指定的实体类别名路径
mybatis-plus.type-aliases-package=cn.qvtu.web.domain#Thymeleaf 模板缓存、模板编码、模板样式、指定模板页面存放路径、指定模板页面名称的后缀
spring.thymeleaf.cache=false
spring.thymeleaf.encoding=utf-8
spring.thymeleaf.mode=HTML5
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html

添加分页拦截器

package cn.qvtu.web.config;import com.github.pagehelper.PageInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;import java.util.Properties;@Configuration
public class MyBatisConfig {@Beanpublic PageInterceptor pageInterceptor(){PageInterceptor pageInterceptor = new PageInterceptor();Properties properties = new Properties();properties.setProperty("helperDialect", "mysql");pageInterceptor.setProperties(properties);return pageInterceptor;}
}

添加代码生成器

代码生成器代码文件需要修改数据库连接信息、生成目录、使用该类的主函数启动。
在这里插入图片描述

package cn.qvtu.web.config;import com.baomidou.mybatisplus.generator.FastAutoGenerator;import java.util.Arrays;
import java.util.Collections;
import java.util.List;/*** 代码生成器*/
public class MyBatisPlusCodeGenerator {public static void main(String[] args) {FastAutoGenerator.create("jdbc:mysql://localhost:3306/blog_system01", "root", "root")// 全局配置.globalConfig((scanner, builder) -> builder.author(scanner.apply("请输入作者名称?")).fileOverride().outputDir("E://"))
// 包配置.packageConfig((scanner, builder) -> builder.parent(scanner.apply("请输入包名?"))).packageConfig(builder-> builder.entity("domain"))
// 策略配置.strategyConfig((scanner, builder) -> builder.addInclude(getTables(scanner.apply("请输入表名,多个英文逗号分隔?所有输入 all"))).addTablePrefix("t_").controllerBuilder().enableRestStyle().enableHyphenStyle().entityBuilder().enableLombok().mapperBuilder().enableMapperAnnotation().build()).execute();}// 处理 all 情况protected static List<String> getTables(String tables) {return "all" .equals(tables) ? Collections.emptyList() : Arrays.asList(tables.split(","));}}

代码生成器生成基础文件放入项目

在这里插入图片描述

测试数据库的连接和分页

下面代码执行成功,返回sql日志和输出list对象信息,集合个数为3。🥳🥳🥳

@SpringBootTest
class BlogSystem01ApplicationTests {@Autowiredprivate IArticleService articleService;@Testvoid contextLoads() {PageHelper.startPage(1,3);List<Article> list = articleService.list();System.out.println(list);}}

前端资源引入

静态资源下载链接
在这里插入图片描述

配置404,500等错误页面

只需在template目录下创建error目录,然后将模板按错误码命名,发生404,500等错误时就会统一跳转到指定html页面。
在这里插入图片描述

前端模板结构

在这里插入图片描述

编写controller的页面跳转方法

编写完这些方法,通过http://127.0.0.1:8080/请求这些方法可以返回模板页面

@Controller
public class HomeController {@RequestMapping("/")public String home(){return "client/index";}@RequestMapping("/article")public String article(){return "client/article";}@GetMapping("/login")public String login(){return "client/login";}}

访问效果

在这里插入图片描述

这篇关于基于 Spring Boot 博客系统开发(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/943875

相关文章

typecho1.0博客搭建

在阿里云上买了服务器,放了一个多月,想着做个个人网站吧,内容呢还是以写博客为主,要支持markdown,看到大家推荐的有wordpress,gitblog,typecho等,最后还是觉得喜欢typecho,这款相对轻量级的博客,有很多主题和插件可以在网上免费获取。 1. PHP7.0 typecho是基于php实现的,在部署之前,要保证现有一个PHP的运行环境。下面给出简单的操作步骤来完成配置

rsync数据备份(三)--非系统用户备份数据--RHEL6.5

配置系统文件/etc/rsyncd.conf备份数据,创建备份账户,最后rsync以守护进程的方式运行。   服务器:192.168.80.137   客户端:192.168.80.138 1.  配置文件rsyncd.conf     1)配置项简介      port                      #→指定后台程序使用的端口号,默认为 873。     uid

JAVA定时创建mysql表

Java代码实现 @Value("${timeTask.scheduled}")private boolean scheduled;// 提前创建3天的表@Scheduled(cron = "0 0 1 * * ?")public void createTable() {if (scheduled) {log.info("开始检验日志表");LocalDate localDate = Loca

java中if-else的代替写法是什么?

在Java中,有一种常见的if-else的替代写法是使用三元运算符(Ternary Operator)或者switch语句。下面是这两种替代写法的示例: 三元运算符:result = (condition) ? value1 : value2;这表示如果条件(condition)为真,则将value1赋值给result,否则将value2赋值给result。例如: int num = 10;St

Spring初学入门(跟学笔记)

一、Spring概述 Spring是一款主流的Java EE轻量级开源框架。 Spring的核心模块:IoC(控制反转,指把创建对象过程交给Spring管理 )、AOP(面向切面编程,在不修改源代码的基础上增强代码功能) 二、Spring入门 2.1 入门案例开发步骤 引入spring相关依赖创建类,定义属性和方法按照spring要求创建配置文件在spring配置文件中配置相关信息进行测试

【全开源】JAVA语聊大厅语音聊天APP系统源码

语聊大厅语音聊天源码:打造专属的语音社交平台 核心功能 多人语音聊天:支持多人同时在线语音聊天,用户可以创建或加入不同的聊天室,与好友或陌生人进行实时互动。语音转文字:提供语音转文字功能,方便用户在聊天过程中查看聊天记录或进行文字回复。用户认证与权限管理:支持用户注册、登录、密码找回等基本功能,同时提供用户权限管理,确保平台的安全性。消息推送与通知:支持实时消息推送和通知功能,让用户能够及时了

Java各大GPS坐标系互转算法(保证好用)

不好用来捶我,好用的话点个赞鼓励一下~ /*** 坐标转换器*/public class CoordinateConverter {private static final double x_PI = 3.14159265358979324 * 3000.0 / 180.0;private static final double PI = 3.1415926535897932384626;pr

SpringBoot(三)之打包方式

SpringBoot(三)之打包方式 Spring Boot 提供了几种常见的打包方式,具体取决于你的项目需求和偏好: JAR(可执行的JAR文件): 这是 Spring Boot 的默认打包方式。它将项目的所有依赖打包到一个可执行的 JAR 文件中,包括 Spring Boot 应用程序以及嵌入的 Tomcat 或 Jetty 等服务器。你可以通过运行 java -jar your-appl

Spring AI默认gpt版本源码探究

Spring AI默认gpt版本源码探究 调试代码 通过调试,可以看到默认mdel为gpt-3.5-turbo 源码探究 进入OpenAiChatClient类查看具体的代码信息 可以看到如下代码,在有参构造方法中可以看到,model默认使用OpenAiApi.DEFAULT_CHAT_MODELpublic class OpenAiChatClient extends Abstract

PHP开发中的不安全反序列化

序列化是开发语言中将某个对象转换为一串字节流的过程,转换后的字节流可以方便存储在数据库中,也可以方便在网络中进行传输。而反序列化则是将数据库取出的字节流或从网络上接收到的字节流反向转换为对象的过程。概念虽如此,但不同的开发语言的序列化和反序列化的过程又略有不同。         以下代码是PHP序列化和反序列化的简单示例:     如果应用的反序列化字符串能够最终被用户操控,那么恶