Mr丶冷文

文章 分类 评论
117 10 6310

站点介绍

冷文学习者(KEVINLU98.COM),记录一个北漂小码农的日常业余生活
友链申请地址(直接评论即可): 传送门

(一)项目介绍及框架搭建

MR丶冷文 2022-10-05 447 1条评论 个人博客项目视频教程 javaspringboot个人博客

首页 / 正文
Freewind主题v1.5版本已发布,下载请移步Freewind 1.5,同时还有主题伴生插件Freewind Markdown,下载请移步 Freewind Markdown,有问题请在留言板,交换友链请直接在友链留言,我创建了一个主题交流群,有兴趣可以加下: 点此加入
报毒我说明一下,是因为我把主题的版权信息做了加密,其中用了eval,杀毒软件认为eval函数是一个危险的操作,这点介意的话请勿下载,我也没有强迫任何人去下载,也没有向大家收取一分钱的主题费用,所以也犯不着因为这些事情来喷我,喜欢就用,不喜欢就不用,就这么简单

发布于2022-10-28

项目介绍及框架搭建

简介

利用SpringBoot开发一个功能完善且颜值优雅的个人博客项目,整体难度适中,不管是用来巩固SpringBoot还是在校生找工作而没有像样的项目或者就单纯的想自己开发一个个人博客而不知道如何下手都是一个不错的选择

技术栈:

  • 整体框架:SpringBoot
  • 数据库访问框架:SpringBoot-JPA
  • 模板引擎:Thymeleaf
  • 数据库:MySQL
  • 前端UI框架:BootStrap3
  • 其它:

    • 字体图标:FontAwesome4
    • CommonMark:解析Markdown
    • 邮件:SpringBootMail
    • BootStrapTable:展示管理页面的数据

能学到什么

  • 如何得用SpringBoot快速搭建一个完整的项目
  • 个人博客相关逻辑的处理
  • 页面的局部刷新(效果类似php中的pjax,但原理和方法不同)
  • Java邮件相关
  • 如何在生产环境部署SpringBoot项目

项目展示

https://imagebed-1252410096.cos.ap-nanjing.myqcloud.com/203203/4f9bd038541249c697d7bcf1921bf1a8.png

https://imagebed-1252410096.cos.ap-nanjing.myqcloud.com/203203/a7d57a3d62854f04aa050c8bc409d3a2.png

https://imagebed-1252410096.cos.ap-nanjing.myqcloud.com/203203/ceea610aa5d64cb5b97a9a40878df392.png

准备工作

本机需要安装如下工具(当然,几乎每个Java开发者应该都装了的):

  • MySQL(这里也可以用远程的)
  • JDK
  • Idea

如果需要部署上线的话请准备一台服务器以及域名(这个到最后几节课后面会说)

课件:所有课件都以及文章的形式放在我的博客上了冷文博客,如果本节课有其它资料(如页面、素材等)请直接在文章最下面的附件中找,如果下载链接失效了请联系我

素材介绍

  • blog-page:博客的前端页面,因为写了大量的样式,如果带着大家在教程中写会很浪费时间,我就提前给大家写好了一套博客的前端页面,就放到我的网站上,大家直接去下载就行。我们的目的就是将其集成到项目中去,会集成这套页面了想换个样式无非就从网上找些其它页面改一改就能集成到你自己的项目中了
  • blog-admin:博客的管理页面,这个页面我就写了个主体的架子,因为不涉及太多样式,就纯粹用bootstrap拼接起来的

项目搭建

  • 创建一个空的数据库
  • 用idea创建一个maven项目
  • 复制下面的依赖到pom文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>cn.kevinlu98</groupId>
    <artifactId>blog-project</artifactId>
    <version>1.0-SNAPSHOT</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.7.RELEASE</version>
    </parent>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <maven.compiler.plugin.version>3.8.1</maven.compiler.plugin.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <mysql-connector-java.version>8.0.30</mysql-connector-java.version>
        <lombok.version>1.18.24</lombok.version>
    </properties>

    <dependencies>
        <!-- 上边引入 parent,因此 下边无需指定版本 -->
        <!-- 包含 mvc,aop 等jar资源 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--thymeleaf模版引擎-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>

        <!-- springboot测试 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!--springbootjpa的依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql-connector-java.version}</version>
        </dependency>
        <!--lombok-->
        <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>${lombok.version}</version>
        <scope>provided</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>${maven.compiler.plugin.version}</version>
                <configuration>
                    <source>${maven.compiler.source}</source>
                    <target>${maven.compiler.target}</target>
                    <encoding>${project.build.sourceEncoding}</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>
  • 创建application.yml配置文件并配置数据库连接信息及jackson
spring:
  jackson:
    date-format: yyyy-MM-dd HH:mm:ss
    time-zone: GMT+8
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/my_blog?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false
    username: root
    password: 123456
  jpa:
    hibernate:
      ddl-auto: update # 更新或者创建数据表结构 如果数据库中没做表,Jpa会我们创建 这个配置就是在没有表的时候创建,实体类发生改变的话 会更新表结构
    show-sql: true
  • 创建main方法并启动项目进行测试
package cn.kevinlu98;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * Author: Mr丶冷文
 * Date: 2022/9/29 16:43
 * Email: kevinlu98@qq.com
 * Description:
 */
@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}
  • 创建logback的配置文件logback-spring.xml,内容如下
<configuration>
    <property scope="context" name="LOG_PATTERN" value="[%-5p %d] [%t %c{10}] - %marker%m %n%xEx" />

    <springProperty scope="context" name="LOG_DIR" source="logging.file.path"/>
    <springProperty scope="context" name="LOG_LEVEL" source="logging.level.root"/>

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%highlight(%-5level) -%logger - %marker%msg %n%xEx</pattern>
        </encoder>
    </appender>

    <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_DIR}/application.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${LOG_DIR}/application-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <maxFileSize>10MB</maxFileSize>
            <maxHistory>10</maxHistory>
            <totalSizeCap>50MB</totalSizeCap>
        </rollingPolicy>
        <encoder>
            <pattern>${LOG_PATTERN}</pattern>
        </encoder>
    </appender>

    <appender name="async-file" class="ch.qos.logback.classic.AsyncAppender">
        <appender-ref ref="file"/>
    </appender>


    <appender name="error" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_DIR}/application.err.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${LOG_DIR}/application-%d{yyyy-MM-dd}.%i.err.log</fileNamePattern>
            <maxFileSize>10MB</maxFileSize>
            <maxHistory>10</maxHistory>
            <totalSizeCap>50MB</totalSizeCap>
        </rollingPolicy>
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>ERROR</level>
        </filter>
        <encoder>
            <pattern>${LOG_PATTERN}</pattern>
        </encoder>
    </appender>
    <appender name="async-error" class="ch.qos.logback.classic.AsyncAppender">
        <appender-ref ref="error"/>
    </appender>

    <root level="${LOG_LEVEL}">
        <appender-ref ref="STDOUT"/>
        <appender-ref ref="async-file"/>
        <appender-ref ref="async-error"/>
    </root>
</configuration>
  • application.yml中补充logback的相关配置
logging:
  file:
    path: ./logs
  level:
    root: info
  • 启动项目并测试

评论(1)

  1. 向星辰 游客 2022-10-24 08:24 回复

    很好

最新评论

  • 阿伟

    拿下

  • 阿伟

    我looklook

  • 阿伟

    拿下

  • 阿伟

    来了

  • 阿伟

    下载

日历

2023年02月

   1234
567891011
12131415161718
19202122232425
262728    

文章目录

站点公告
Freewind主题v1.5版本已发布,下载请移步Freewind 1.5,同时还有主题伴生插件Freewind Markdown,下载请移步 Freewind Markdown,有问题请在留言板,交换友链请直接在友链留言,我创建了一个主题交流群,有兴趣可以加下: 点此加入
报毒我说明一下,是因为我把主题的版权信息做了加密,其中用了eval,杀毒软件认为eval函数是一个危险的操作,这点介意的话请勿下载,我也没有强迫任何人去下载,也没有向大家收取一分钱的主题费用,所以也犯不着因为这些事情来喷我,喜欢就用,不喜欢就不用,就这么简单
点击小铃铛关闭