SpringBoot+SemanticUI 我的第一个博客
我的第一个博客(孟哈哈)
此次用到了Springboot以及SemanticUI框架构建一个个人博客。第一次写,如有错误,请多多指正。
引用自 https://www.bilibili.com/video/BV1Pt4y1U7hv
所需技术
后端:Spring Boot + JPA + thymeleaf模板
数据库:MySQL
前端UI:Semantic UI框架
1.开发工具与环境:
IDEA 2020
Maven 3
JDK 1.8
2.学习内容:
1.需求分析与介绍
2.页面的制作与设计
3.后端管理实现
4.前段管理实现
- 管理员 ,将会对分类,标签,做相应的增删改查。
- 用户,对博客进行评论,浏览。
3.功能搭建
1.前端页面:
首页: index (搭建首页页面)
分类: type (搭建分类页面)
标签: tag (搭建标签页面)
归档: archives (搭建归档页面)
关于我: about (搭建关于我页面)
2.涉及的插件:
编辑器 Markdown
内容排版 typo.css
动画 animate.css
代码高亮 prism
目录生成 Tocbot
滚动侦测 waypoints
平滑滚动 jquery.scrollTo
二维码生成 qrcode.js
3.引入的SpringBoot模板:
web
Thymeleaf
JPA
MySQL
Aspects (此处IDEA如没有此选项,需要到Aspect官网下载插件引入)
DevTools
4.yml文件配置
1.application.yml
:
spring:
thymeleaf:
mode: HTML
profiles:
active: dev
messages:
(此处i18n国际化界面)
basename: i18n/messages
comment.avatar: /images/me.png
(此处使用端口80,方便上传到自己的服务器,通过域名直接访问,不需要输入后面的:8080 进行访问)
server:
port: 80
2.application-dev.yml
spring:
datasource:
(新版的Mysql版本要用cj.jdbc)
driver-class-name: com.mysql.cj.jdbc.Driver
(此处的49.232.212.151为域名,开始编写时输入数据库的主机名即可)
url: jdbc:mysql://49.232.212.151/blog?serverTimezone=GMT&useUnicode=true&characterEncoding=utf-8
username: root
password: Meyolo0904!
jpa:
hibernate:
ddl-auto: update
show-sql: true
(日志:方便调试,开发)
logging:
level:
root: info
com.myl.blog: debug
file:
name: blog-dev.log
5.异常处理:
erro文件夹:
404页面
500页面
6.实体类设计
此处示例一个即可(分类):
dao层编写:
TypeRepository
package com.myl.blog.dao;
import com.myl.blog.po.Type;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import java.util.List;
public interface TypeRepository extends JpaRepository<Type,Long> {
Type findByName(String name);
@Query("select t from Type t")
List<Type> findTop(Pageable pageable);
}
po层编写:
Type
package com.myl.blog.po;
import javax.persistence.*;
import org.hibernate.validator.constraints.NotBlank;
import java.util.ArrayList;
import java.util.List;
@Entity
@Table(name ="t_type")
public class Type {
@Id
@GeneratedValue
private Long id;
@NotBlank(message = "分类名称不能为空哦")
private String name;
@OneToMany(mappedBy = "type")
private List<Blog> blogs = new ArrayList<>();
public Type() {
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}