10-1-Spring Boot综合项目实战-准备工作

源码地址:

axinawang/oeblogicon-default.png?t=N7T8https://gitee.com/axinawang/oeblog

一、系统演示与概述

1.演示

项目:简易的博客系统

2.系统功能介绍

前端使用Spring Boot支持的模板引擎Thymeleaf+jQuery完成页面信息展示

后端使用Spring MVC+Spring Boot+MyBatis框架进行整合开发

3.项目效果预览

前台首页

文章详情页

文章评论页

后台首页

后台文件编辑页面

后台文章管理列表页面

二、项目设计

1.系统开发及运行环境

操作系统:Windows

Java开发包:JDK 8

项目管理工具:Maven 3.6.0

项目开发工具:eclipse 或  IntelliJ IDEA

数据库:MySQL

缓存管理工具:Redis 3.2.100

浏览器:谷歌浏览器

2.文件组织结构

3.数据库设计

文章详情表t_article

字段名

类型

长度

是否为主键

说明

id

int

11

文章id

title

varchar

50

文章标题

content

longtext

文章内容

created

date

创建时间

modified

date

修改时间

categories

varchar

200

文章分类

tags

varchar

200

文章标签

allow_comment

tinyint

1

是否允许评论(默认1)

thumbnail

varchar

200

文章缩略图

文章评论表t_comment

字段名

类型

长度

是否为主键

说明

id

int

11

评论id

article_id

int

11

评论关联的文章id

created

date

 

创建时间

ip

varchar

200

评论用户所在ip

content

text

 

评论内容

status

varchar

200

评论状态(默认approved)

author

varchar

200

评论作者名

文章统计表t_statistic

字段名

类型

长度

是否为主键

说明

id

int

11

文章统计id

article_id

int

11

文章id

hits

int

11

文章点击量

comments_num

int

11

文章评论量

用户信息表t_user

字段名

类型

长度

是否为主键

说明

id

int

11

用户id

username

varchar

200

用户名

password

varchar

200

用户密码(加密后的密码)

email

varchar

200

用户邮箱

created

date

创建时间

valid

tinyint

1

是否为有效用户(默认1)

用户权限表authority

字段名

类型

长度

是否为主键

说明

id

int

11

权限id

authority

varchar

200

权限以ROLE_开头

用户权限关联表t_user_authority

字段名

类型

长度

是否为主键

说明

id

int

11

关联表主键id

user_id

int

11

用户id

authority_id

int

11

权限id

三、准备数据库资源

创建一个名称为blog_system的数据库,并选择该数据库,点击axinawang/oeblog,去下载源码,在每个项目下的resources都有blog_system.sql文件,执行这个脚本文件,结果如下:

四、准备项目环境

1.创建Spring Boot项目,引入依赖文件

项目名称:blog_system,包名:域名反写+项目名

        <!-- 阿里巴巴的Druid数据源依赖启动器 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.10</version>
        </dependency>

        <!-- MyBatis依赖启动器 -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.0.0</version>
        </dependency>

        <!-- MySQL数据库连接驱动 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>

        <!-- Redis服务启动器 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>

        <!-- mail邮件服务启动器 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>

        <!-- thymeleaf模板整合security控制页面安全访问依赖 -->
        <dependency>
            <groupId>org.thymeleaf.extras</groupId>
            <artifactId>thymeleaf-extras-springsecurity5</artifactId>
        </dependency>

        <!-- Spring Security依赖启动器 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>

        <!-- Thymeleaf模板引擎启动器 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>

        <!-- Web服务启动器 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!-- MyBatis分页插件 -->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.4.1</version>
        </dependency>

        <!-- String工具类包-->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
        </dependency>

        <!-- Markdown处理html -->
        <dependency>
            <groupId>com.atlassian.commonmark</groupId>
            <artifactId>commonmark</artifactId>
            <version>0.11.0</version>
        </dependency>

        <!-- Markdown处理表格 -->
        <dependency>
            <groupId>com.atlassian.commonmark</groupId>
            <artifactId>commonmark-ext-gfm-tables</artifactId>
            <version>0.11.0</version>
        </dependency>

        <!-- 过滤emoji表情字符 -->
        <dependency>
            <groupId>com.vdurmont</groupId>
            <artifactId>emoji-java</artifactId>
            <version>4.0.0</version>
        </dependency>

        <!-- devtools热部署工具 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
        </dependency>

        <!-- Spring Boot测试服务启动器 -->

2.编写配置文件(注意有六个#的注释,其下的属性可能需要修改)

a.将application.properties全局配置文件更名为application.yml

server:
  port: 8081

spring:
  profiles:
    # 外置jdbc、redis和mail配置文件
    active: jdbc,redis,mail,test
  # 关闭thymeleaf页面缓存
  thymeleaf:
    cache: false
  # 配置国际化资源文件
  messages:
    basename: i18n.logo

# MyBatis配置
mybatis:
  configuration:
    #开启驼峰命名匹配映射
    map-underscore-to-camel-case: true

    #控制台打印日志,能打印出被扫描的包和被解析的映射文件
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl


  #配置MyBatis的xml映射文件路径
  mapper-locations: classpath:mapper/*.xml
#######配置XML映射文件中指定的实体类别名路径
  type-aliases-package: com.itheima.myblog.model.domain

######mybatis日志显示SQL
logging:
  level:
    com.itheima.myblog.mapper: debug

#pagehelper分页设置
pagehelper:
  helper-dialect: mysql
  reasonable: true
  support-methods-arguments: true
  params: count=countSql

#浏览器cookie相关设置
COOKIE:
  # 设置cookie默认时长为30分钟
  VALIDITY: 1800

b.创建application-jdbc.properties

spring.datasource.type = com.alibaba.druid.pool.DruidDataSource
spring.datasource.initialSize=20
spring.datasource.minIdle=10
spring.datasource.maxActive=100
#MySQL在高版本需要指明是否进行SSL连接
spring.datasource.url=jdbc:mysql://localhost:3306/blog_system?serverTimezone=UTC&characterEncoding=utf-8&useSSL=false
spring.datasource.username=root
#######修改为你的密码
spring.datasource.password=root

c.创建application-mail.properties

######
spring.mail.host=smtp.sina.com
######
spring.mail.port=587
######
spring.mail.username=lxtestemail@sina.com
######改为授权码
spring.mail.password=32433bbe46d209a1
spring.mail.default-encoding=UTF-8
spring.mail.properties.mail.smtp.connectiontimeout=5000
######读超时可能设得不够长,会导致邮件发送失败
spring.mail.properties.mail.smtp.timeout=10000
spring.mail.properties.mail.smtp.writetimeout=5000

d.创建application-redis.properties

spring.redis.host=127.0.0.1
spring.redis.port=6379
spring.redis.password=

# 连接池最大连接数(使用负值表示没有限制)
spring.redis.jedis.pool.max-active=8

# 连接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.jedis.pool.max-wait=-1

# 连接池中的最大空闲连接
spring.redis.jedis.pool.max-idle=8

3.前端资源引入

 comments.html:两处logoutform改为logoutform2 

4、后端基础代码引入

报错:References to interface static methods are allowed only at source level 1.8

Pom文件的properties标签中添加

<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
【资源说明】 基于SpringBoot的活动管理平台源码(课程期末大作业).zip基于SpringBoot的活动管理平台源码(课程期末大作业).zip基于SpringBoot的活动管理平台源码(课程期末大作业).zip基于SpringBoot的活动管理平台源码(课程期末大作业).zip基于SpringBoot的活动管理平台源码(课程期末大作业).zip基于SpringBoot的活动管理平台源码(课程期末大作业).zip基于SpringBoot的活动管理平台源码(课程期末大作业).zip基于SpringBoot的活动管理平台源码(课程期末大作业).zip基于SpringBoot的活动管理平台源码(课程期末大作业).zip基于SpringBoot的活动管理平台源码(课程期末大作业).zip基于SpringBoot的活动管理平台源码(课程期末大作业).zip基于SpringBoot的活动管理平台源码(课程期末大作业).zip基于SpringBoot的活动管理平台源码(课程期末大作业).zip基于SpringBoot的活动管理平台源码(课程期末大作业).zip基于SpringBoot的活动管理平台源码(课程期末大作业).zip基于SpringBoot的活动管理平台源码(课程期末大作业).zip基于SpringBoot的活动管理平台源码(课程期末大作业).zip基于SpringBoot的活动管理平台源码(课程期末大作业).zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
当前课程中博客项目的实战源码是我在 GitHub上开源项目 My-Blog,目前已有 3000 多个 star:本课程是一个 Spring Boot 技术栈的实战类课程,课程共分为 3 大部分,前面两个部分为基础环境准备和相关概念介绍,第三个部分是 Spring Boot 个人博客项目功能的讲解,通过本课程的学习,不仅仅让你掌握基本的 Spring Boot 开发能力以及 Spring Boot 项目的大部分开发使用场景,同时帮你提前甄别和处理掉将要遇到的技术难点,认真学完这个课程后,你将会对 Spring Boot 有更加深入而全面的了解,同时你也会得到一个大家都在使用的博客系统源码,你可以根据自己的需求和想法进行改造,也可以直接使用它来作为自己的个人网站,这个课程一定会给你带来巨大的收获。作者寄语本课程录制于 2020 年,代码基于 Spring Boot 2.x 版本。到目前为止,Spring Boot 技术栈也有一些版本升级,比如 Spring Boot 2.7 发版、Spring Boot 3.x 版本发布正式版本。对于这些情况,笔者会在本课程实战项目的开源仓库中创建不同的代码分支,保持实战项目的源码更新,保证读者朋友们不会学习过气的知识点。课程特色 课程内容紧贴 Spring Boot 技术栈,涵盖大部分 Spring Boot 使用场景。开发教程详细完整、文档资源齐全、实验过程循序渐进简单明了。实践项目页面美观且实用,交互效果完美。包含从零搭建项目、以及完整的后台管理系统和博客展示系统两个系统的功能开发流程。技术栈新颖且知识点丰富,学习后可以提升大家对于知识的理解和掌握,对于提升你的市场竞争力有一定的帮助。实战项目预览    
当前课程中商城项目的实战源码是我发布在 GitHub 上的开源项目 newbee-mall (新蜂商城),目前已有 9900 多个 Star,本课程是一个 Spring Boot 技术栈的实战类课程,课程共分为 3 大部分,前面两个部分为基础环境准备和相关概念介绍,第三个部分是 Spring Boot 商城项目功能的讲解,让大家实际操作并实践上手一个大型的线上商城项目,并学习到一定的开发经验以及其中的开发技巧。商城项目所涉及的功能结构图整理如下: 作者寄语本课程录制于2019年,距今已有一段时间。期间,Spring Boot技术栈也有一些版本升级,比如Spring Boot 2.7.x发版、Spring Boot 3.x版本正式版本。对于这些情况,笔者会在本课程实战项目的开源仓库中创建不同的代码分支,保持实战项目的源码更新,保证读者朋友们不会学习过气的知识点。新蜂商城的优化和迭代工作不会停止,不仅仅是功能的优化,在技术栈上也会不断的增加,截止2023年,新蜂商城已经发布了 7 个重要的版本,版本记录及开发计划如下图所示。 课程特色 对新手开发者十分友好,无需复杂的操作步骤,仅需 2 秒就可以启动这个完整的商城项目最终的实战项目是一个企业级别的 Spring Boot 大型项目,对于各个阶段的 Java 开发者都是极佳的选择实践项目页面美观且实用,交互效果完美教程详细开发教程详细完整、文档资源齐全代码+讲解+演示网站全方位保证,向 Hello World 教程说拜拜技术栈新颖且知识点丰富,学习后可以提升大家对于知识的理解和掌握,可以进一步提升你的市场竞争力 课程预览 以下为商城项目的页面和功能展示,分别为:商城首页 1商城首页 2购物车订单结算订单列表支付页面后台管理系统登录页商品管理商品编辑
课程简介这是一门使用Java语言,SpringBoot框架,从0开发一个RESTful API应用,接近企业级的项目(我的云音乐),课程包含了基础内容,高级内容,项目封装,项目重构等知识,99%代码为手写;因为这是项目课程;所以不会深入到源码讲解某个知识点,以及原理,但会粗略的讲解下基础原理;主要是讲解如何使用系统功能,流行的第三方框架,第三方服务,完成接近企业级项目,目的是让大家,学到真正的企业级项目开发技术。适用人群刚刚毕业的学生想提高职场竞争力想学从零开发SpringBoot项目想提升SpringBoot项目开发技术想学习SpringBoot项目架构技术想学习企业级项目开发技术就是想学习SpringBoot开发能学到什么从0开发一个类似企业级项目学会能做出市面上90%通用API快速增加1到2年实际开发经验刚毕业学完后能找到满意的工作已经工作学完后最高涨薪30%课程信息全课程目前是82章,155小时,每节视频都经过精心剪辑。在线学习分辨率最高1080P课程知识点1~11章:学习方法,项目架构,编码规范,Postman使用方法,Git和Github版本控制12~16章:搭建开发环境,快速入门SpringBoot框架17~20章:快速入门MySQL数据库21~30章:MyBatis,登录注册,找回密码,发送短信,发送邮件,企业级接口配置31~41章:实现歌单,歌单标签,音乐,列表分页,视频,评论,好友功能42~48章:阿里云OSS,话题,MyBatis-plus,应用监控49~53章:Redis使用,集成Redis,SpringCache,HTTP缓存54~58章:Elasticsearch使用,集成Elasticsearch,使用ES搜索59~61章:商城,集成支付宝SDK,支付宝支付62~64章:常用哈希和加密算法,接口加密和签名65~67章:实时挤掉用户,企业级项目测试环境,企业级接口文档68~69章:SpringBoot全站HTTPS,自签证书,申请免费证书70~73章:云MySQL数据库,云Redis数据库使用,轻量级应用部署环境,域名解析74~80章:Docker使用,生产级Kubernetes集群,域名解析,集群全站HTTPS81~82章:增强和重构项目,课程总结,后续学习计划
第 1 章入门 l 1 . 1 SPring 风云再起 l 1 . 1 . 1 重新认识 SPring 2 1 . 1 . 2 SPring Boot 精要 3 1 . 1 . 3 SPring Boot 不是什么 6 1 . 2 SpringB0ot 人门 6 1 . 2 . !安装 SPring BootCU 7 1 . 2 . 2 使用 Spring Initializr 初始化 Spring Boot 项目 10 1 . 3 小结 18 第 2 章开发第一个应用程序 19 2 . 1 运用 Spring Boot 19 2 . 1 . 1 查看初始化的 Spring soot 新项目 21 21 . 2 Spring Boot 项目构建过程解析 24 2 . 2 使川起步依赖, 27 2 . 2 . 1 指定基于功能的依赖 28 2 . 2 . 2 覆盖起步依赖引入的传递依赖… 29 2 . 3 使用自动配且 30 2 . 3 . 1 专注于应用程序功能 31 2 . 3 . 2 运行应用程序 36 2 . 3 , 3 刚刚发生了什么 38 2 . 4 小结 41 第 3 章自定义配置 42 3 . !覆盖 SPring Boot 自动配丑 42 3 . 1 . 1 保护应用程序 43 3 . 2 通过属性文件外且配且 49 3 . 2 . 1 自动配置微调 50 3 . 2 . 2 应用程序 Bean 的配置外置 55 3 . 2 . 3 使用 Profilc 进行配呈 59 3 . 3 定制应用程序错误页面 62 3 . 4 小结 64 第 4 章测试 “ 4 . 1 集成测试自动配置 “ 4 . 2 测试 Web 应用程序 68 4 . 2 . !模拟 SPring MVC, 69 4 . 2 . 2 侧试 Wcb 安全 72 4 . 3 测试运行中的应用程序 74 4 . 3 . 1 用随机端口启动服务器, 75 4 . 3 . 2 使用 Sclcniuln 沮 11 试 HTML 页面 76 4 . 4 小结 78 第 5 章 Groovy 与 Spring Boot CLI 80 5 . 1 开发 SPring Boot CLI 应用程序 80 5 . 1 . 1 设置 CU 项目 81 5 . 1 . 2 通过 Groovy 消除代码嗓声 引 5 . 1 . 3 发生了什么 85 5 . 2 获取依赖 86 5 . 2 . 1 覆盖双认依赖版本 87 5 . 2 . 2 添加依赖仓库 88 5 . 3 用 CLI 运行测试 89 5 . 4 创建可部署的产物,, , … 91 5 . 5 小结 91
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值