| pc布局 | mobile布局 |
|---|---|
![]() |
![]() |
这是一个基于互联网架构的一个博客系统,采用SSM框架,Shiro认证授权框架,整合Redis等缓存中间件,Freemarker模板引擎完成的。响应式布局完美适配
PC,平板和手机布局。此项目已用springboot重写,请移步这里。
- Ioc容器 - Spring
- MVC框架 - Spring MVC
- 持久化框架 - Mybatis
- 缓存 - Redis
- 认证授权安全框架 - Shiro
- 模板渲染引擎 - Freemarker
- 模块化前端框架 - Layui
- markdown编辑器 - editor.md
- 日志系统 - slf4j + logback
- git clone项目
- 将
db.properties中的jdbc.username和jdbc.password改为你的数据库账户和密码,mysql和redis都是按照默认的端口配置,如有需要也可更改配置文件,指定ip和port。 - 运行
mvn package,将项目打包成war包,然后将打包后war包放到tomcat的webapps目录即可,无需手动建表,容器初始化时会自动建表。 - 注意用外置的
servlet容器部署时,需要配置去除项目名访问,不然会报404错误。 - 运行
startup.sh启动tomcat。 - 后台管理系统地址为
http://domain:port/admin,初始用户名为[email protected],初始密码为19960821。
- 下载并解压 JDK 1.8
tar zxvf jdk-8u172-linux-x64.tar.gz
mv jdk1.8.0_172 /usr/local/jdk
- 下载并解压 Redis 4.0.9
tar zxvf redis-4.0.9.tar.gz
mv redis-4.0.9 /usr/local/redis
- 下载并解压 Tomcat 9.0.8
tar zxvf apache-tomcat-9.0.8.tar.gz
mv apache-tomcat-9.0.8 /usr/local/tomcat
- 安装MySQL或MariaDB
注意!如果是mariadb需要将user表中的plugin字段值'unix_socket'改为'mysql_native_password',否则jdbc连接会出错
- Debian系列Linux参考以下过程
#apt-get update //获取最新软件包
#apt-get install mariadb mariadb-server //安装mariadb客户端和服务器
#service mysql start //启动服务
#mysql_security_installation //执行安全安装脚本
- Redhat系列Linux参考以下过程
#yum update
#yum install mariadb mariadb-server
#systemctl start mariadb
#mysql_security_installation
- 设置环境变量(用vim打开/etc/profile这个文件,在后面添加以下内容)
export JAVA_HOME=/usr/local/jdk
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
export CATALINA_HOME=/usr/local/tomcat
export CATALINA_BASE=/usr/local/tomcat
export PATH=$CATALINA_HOME/bin:$PATH
export PATH=/usr/local/redis/bin:$PATH
- 启动redis和tomcat
redis-server &
startup.sh
-
将打包好的war包放入tomcat的app目录
-
启动容器
startup.sh
- 下载源码后在根目录下运行以下命令
mvn package
mvn dockerfile:build
-
不出意外本地已经成功生成docker镜像了,你可以push到你的docker仓库中,随时pull到任何一台docker容器中部署了
-
运行容器
tag为当前版本号
docker run -d -p 80:80 stdutil/blog-ssm:tag
java (源码根目录)
|----net.stackoverflow.blog
|----common/ (公共类)
|----dao/ (数据访问对象,一般存放mybatis的mapper接口或jpa的repository接口)
|----exception/ (异常类定义)
|----pojo/ (存放po,vo,dto等类,可进一步划分子包)
|----service/ (服务接口以及实现类)
|----shiro/ (shiro相关代码)
|----cache/ (shiro整合redis缓存相关代码)
|----filter/ (shiro自定义过滤器)
|----realm/ (shiro自定义realm)
|----task/ (后台任务)
|----util/ (工具类)
|----validator/ (校验工具)
|----web/ (web相关代码)
|----controller/ (业务层,提供restful接口)
|----freemarker/ (freemarker整合shiro注解配置类)
|----interceptor/ (拦截器)
|----listener/ (监听器)
resources (资源文件夹)
|----mapper/ (存放mybatis的mapper.xml)
|----sql/ (存放sql脚本)
|----application.properties (项目配置文件)
|----logback.xml (logback日志配置)
|----mybatis-config.xml (mybatis配置文件)
|----redis.properties (redis配置文件)
|----spring-context.xml (spring配置文件)
|----spring-mvc.xml (springmvc配置文件)
|----spring-mybatis.xml (spring整合mybatis配置文件)
|----spring-redis.xml (spring整合redis配置文件)
|----spring-shiro.xml (spring整合shiro配置文件)
webapp (web目录)
|----static/ (静态文件,包括js,css,图片,以及第三方前端库)
|----WEB-INF/
|----view/ (freemarker模板文件)
|----web.xml (web配置文件)
|----favicon.icon (浏览器title处图片)
|----robots.txt (搜索引擎爬取规则)
/data 输出根目录
|----upload/ (文件上传目录)
|----backup/ (数据库周期性备份目录)
|----log/ (日志输出目录)

