基於 Spring Boot 的個人部落格 FS-Blog

擺碼王子發表於2018-03-27

線上 Demo:http://fsblog.letec.top

Github 地址:https://github.com/jameszbl/fs-blog

1. 涉及技術及工具

  • 核心框架:SpringBoot
  • ORM 框架:MyBatis
  • MyBatis 工具:MyBatis Mapper
  • MVC 框架:Spring MVC
  • 模板引擎:Freemarker
  • 編譯輔助外掛:Lombok
  • CSS 框架:BootStrap 4.0
  • Markdown 編輯器:Editor.md
  • 資料庫:MySQL

2. 效果圖

2.1 首頁

首頁

2.2 部落格列表頁

部落格列表頁

2.3 部落格閱讀頁

部落格閱讀

2.4 個人簡歷頁

個人簡歷

2.5 文章編輯

文章編輯

3. 構建及執行

3.1 伺服器環境

  • 安裝 MySQL
  • 安裝 Gradle
  • 在專案目錄下執行 gradle clean build,生成的 jar 包位於 build/libs 目錄下,使用 java -jar .../fsblog.jar 執行
  • application-dev.yml 中配置資料庫使用者名稱和密碼,預設為:username: root password: root
  • 預設自動建立資料庫、資料表並自動匯入初始資料,同樣在application-dev.yml中配置

3.2 開發環境

  • 可直接在 IntelliJ IDEA 或 Eclipse 中開啟專案進行二次開發

4. 配置檔案

spring:
  # 應用名稱
  application:
    name: FS-Blog
  # 快取
  cache:
    cache-names: ehcache
    ehcache:
      # 快取的配置檔案
      config: ehcache.xml
  # Spring Boot 熱部署工具
  devtools:
    restart:
      enabled: true
  # 模板引擎
  freemarker:
    enabled: true
    cache: false
    suffix: .ftl
    charset: utf-8
    # 邏輯檢視名(所有檢視都要寫在這裡)
    view-names: index,
                error,
                userlogin,
                adminlogin,
                register,
                article,
                posts,
                admin/index,
                admin/userlogin,
                admin/blogadd,
                admin/blog_manage,
                admin/blog_modify,
                admin/admin_user_manage,
                admin/admin_user_pwd_modify
    content-type: text/html
    allow-request-override: true
    check-template-location: true
    expose-request-attributes: true
    expose-session-attributes: true
    expose-spring-macro-helpers: true
    request-context-attribute: request
    template-loader-path: classpath:/templates/
  # 靜態資源
  resources:
    chain:
      strategy:
        content:
          enabled: true
          # 靜態資源位置
          paths: /**
        fixed:
          enabled: true
          paths: /js/lib
          version: v12
    static-locations: classpath:/static/,classpath:/META-INF/resources/,classpath:/resources/,classpath:/public/
  # 資料來源
  datasource:
    type: com.zaxxer.hikari.HikariDataSource
    # 資料庫連線
    # 使用者名稱
    username: root
    # 密碼
    password: root
    # 資料庫 URL
    url: jdbc:mysql://127.0.0.1:3306?useUnicode:true&characterEncoding:UTF-8
    # 資料庫連線驅動
    driverClassName: com.mysql.jdbc.Driver
    # SQL 編碼
    sql-script-encoding: UTF-8
    hikari:
      # 連線存活時間
      connection-timeout: 30000
      # 連線池容量
      maximum-pool-size: 50
      minimum-idle: 5
    # 資料庫定義
    schema: classpath:schema.sql
    # 測試資料
    data: classpath:data.sql
    # 是否自動建立資料庫並自動匯入初始資料
    initialize: true
    continue-on-error: true
# 伺服器配置
server:
  # 埠
  port: 8083
  max-http-header-size: 8192
  compression:
      min-response-size: 512
      enabled: true
      mime-types: text/html,text/css,text/javascript,application/javascript,image/gif,image/png,image/jpg
  tomcat:
        maxThreads: 12
        minSpareThreads: 3
        # 訪問日誌
        accesslog:
          directory: /home/fullstack/app/fullstack
          pattern: combined
          enabled: true
# 會話
  session:
    cookie:
      # Session 存活時間
      max-age: 1800
# 日誌
logging:
    # Log4j2 配置檔案
    config: classpath:log4j2.xml
mybatis:
    # 實體類所在包
    type-aliases-package: me.zbl.fullstack.entity
    # xml 檔案位置
    mapper-locations: classpath:mapping/*.xml
複製程式碼

相關文章