# begin_web **Repository Path**: yangsj/begin_web ## Basic Information - **Project Name**: begin_web - **Description**: 主站 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-09 - **Last Updated**: 2026-07-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # BeginCode Personal Site BeginCode 个人知识运营主站,采用 Java 17、Spring Boot 3、Apache Shiro 3、原生 MyBatis、Thymeleaf、Flyway、MySQL 和 Druid 连接池。 ## Local Java 17 当前项目需要 Java 17。若使用本机 Homebrew 安装的 OpenJDK 17: ```bash export JAVA_HOME=/opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk/Contents/Home export PATH="$JAVA_HOME/bin:$PATH" ``` Oracle JDK 17 也可以使用,只要 `JAVA_HOME` 指向对应 JDK 17 目录即可。 ## Build ```bash mvn clean test ``` ## Run 先准备 MySQL 数据库: ```sql create database begin_web default character set utf8mb4 collate utf8mb4_unicode_ci; ``` 启动: ```bash export BEGIN_DB_URL='jdbc:mysql://127.0.0.1:3306/begin_web?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useSSL=true' export BEGIN_DB_USERNAME='root' export BEGIN_DB_PASSWORD='' mvn -pl begin-site-web -am package java -jar begin-site-web/target/begin-site-web-1.0.0.jar --server.port=8088 ``` 需要关闭本地模板缓存、并通过 HTTP 调试登录时,可以启用 `local` Profile。该 Profile 仍然连接 MySQL,只覆盖模板缓存和 Cookie 的本地开发设置: ```bash export BEGIN_DB_URL='jdbc:mysql://127.0.0.1:3306/begin_web?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useSSL=false' export BEGIN_DB_USERNAME='root' export BEGIN_DB_PASSWORD='' mvn -pl begin-site-web -am package java -jar begin-site-web/target/begin-site-web-1.0.0.jar \ --spring.profiles.active=local \ --server.port=8088 ``` 数据库结构和基础数据统一由 Flyway 管理,不再提供 H2 内存数据库或自动重置的演示数据。 管理后台地址: - 工作台:`/admin` - 首页配置:`/admin/pages/home` - 产品页配置:`/admin/pages/products` - 教程页配置:`/admin/pages/learning` - 会员页配置:`/admin/pages/membership` - 图片存储:`/admin/storage` ## Production JAR 线上配置文件位于 `begin-site-web/src/main/resources/application-prod.yml`,打包时会自动进入 可执行 JAR。打包前可以直接修改其中的 MySQL 地址、账号和密码配置,也可以使用 `BEGIN_DB_URL`、`BEGIN_DB_USERNAME`、`BEGIN_DB_PASSWORD` 环境变量覆盖: ```bash mvn -pl begin-site-web -am clean package -DskipTests java -jar begin-site-web/target/begin-site-web-1.0.0.jar \ --server.port=8088 ``` 主配置会显式激活 `prod` Profile,因此在宝塔 Java 项目中可以直接运行 JAR,只需要配置端口: ```bash java -jar begin-site-web-1.0.0.jar --server.port=8088 ``` 如果复用已有表的 MySQL 数据库,线上 Profile 会从 Flyway baseline 版本 `0` 开始管理 本项目的 `bc_` 表,不要求数据库必须为空。数据库用户需要拥有 `begin_web` 库的 `SELECT`、`INSERT`、`UPDATE`、`DELETE`、`CREATE`、`ALTER`、`INDEX` 权限。 线上环境默认同时输出控制台日志和滚动文件日志,日志文件为 `./logs/begin-web.log`。 可以通过启动参数修改路径: ```bash java -jar begin-site-web/target/begin-site-web-1.0.0.jar \ --server.port=8088 \ --logging.file.name=/data/logs/begin-web/begin-web.log ``` 查看实时日志: ```bash tail -f /data/logs/begin-web/begin-web.log ``` 线上配置文件中的密码会包含在 JAR 中,可以通过解压 JAR 读取。正式环境优先使用环境变量 或密钥管理服务覆盖,不要把真实生产密码提交到 Git。 ## 开放接口 签名开放接口支持上传图片以及创建课程、章节、文章和产品: - 接口文档:`docs/open-api.md` - 签名调用脚本:`scripts/open-api-request.sh` - 共享 Key 环境变量:`BEGIN_OPEN_API_KEY` ## Modules - `begin-common`:通用异常、分页等基础对象。 - `begin-domain`:文章、专题、产品、课程、用户、会员模型。 - `begin-infrastructure`:原生 MyBatis Mapper/XML、Flyway、Markdown 渲染。 - `begin-application`:文章、专题、产品、课程、会员访问控制等应用服务。 - `begin-site-web`:Web 启动、Shiro、Controller、Thymeleaf 模板和静态资源。