- springBoot
- springMVC: MVC框架
- undertow: web容器
- mybatis: ORM框架
- velocity: 模板引擎
- lombok: 工具
- quartz: 定时任务
- ehcache: 缓存
- bootstrap: css/html框架
- editor.md: markdown编辑器
- mysql:数据库
####部署
-
打开deploy目录,可以看到jcalaBlog-1.0.0.jar。(也可以自己用gradle打成jar包,shell进入项目主目录,执行gradle clean build,在项目目录/build/libs目录下可看到打成的jar包)将jar上传到服务器/home/jcala目录
-
服务器安装mysql,进入mysql创建jcala_blog数据库。(不创建的话HikariCP数据库连接池有时会出现问题)
-
部署文件夹下的application-prod.yml配置文件为默认配置,运行时可以覆盖默认配置。例如运行:java -jar --spring.datasource.username=root --spring.datasource.password=123 --spring.datasource.initialize=true 设置数据库用户名为root,数据库密码为123,运行时自动导入数据库表结构和数据
####配置文件
server:
port: 80 #博客端口号
compression:
min-response-size: 512 #压缩文件最小大小(kb)
enabled: true #是否压缩
mime-types: text/html,text/css,text/javascript,application/javascript,image/gif,image/png,image/jpg #要压缩的文件格式
undertow:
io-threads: 4 #io线程数
worker-threads: 10 #工作线程数
buffer-size: 16384 #每个缓冲的字节数
accesslog:
enabled: true #是否开启undertow日志
dir: /home/jcala/blog/log/server_log #undertow日志目录
pattern: combined #日志格式
logging:
config: classpath:logback-spring.xml #logback配置文件
path: /home/jcala/blog/log/spring_log #logback日志目录
spring:
velocity:
cache: true #velocity是否开启缓存
charset: UTF-8
view-names: error,index,projects,tags,tagView,archives,post,about,login,admin/blog_add,admin/project,
admin/moniter,admin/blog_modify,admin/blog_list,admin/info,admin/result,admin/resume
#允许的vm名称,新建的vm文件要想使用必须在此注册
properties:
input.encoding: UTF-8
output.encoding: UTF-8
velocimacro.library: VM_global_library.vm #velocity的宏文件
directive.parse.max.depth: 2 #parse解析的深度
http:
encoding.charset: UTF-8
encoding.force: false
multipart:
max-file-size: 3MB #上传文件最大的大小,因此上传的图片不可超过这个大小,否则抛出异常
max-request-size: 10MB
cache:
cache-names: ehcache #设置缓存的实现为ehcache
ehcache:
config: ehcache.xml #ehcache的配置文件
datasource:
type: com.zaxxer.hikari.HikariDataSource #数据库连接池为hikariCP
username: root #数据库访问用户名
password: root #数据库访问密码
url: jdbc:mysql://127.0.0.1:3306/jcala_blog?useUnicode:true&characterEncoding:UTF-8
driverClassName: com.mysql.jdbc.Driver
schema: classpath:import.sql #数据库表结构
data: classpath:data.sql #数据库初始化数据
initialize: false #是否初始化数据库。true的话则执行import.sql,data.sql sql语句,导入表结构和初始化数据
sql-script-encoding: UTF-8 #导入的sql文件编码
hikari:
connection-timeout: 30000
maximum-pool-size: 50 #数据库连接池最大连接数
minimum-idle: 5 #初始连接池的连接数
mybatis:
type-aliases-package: me.jcala.blog.domain,me.jcala.blog.mapping
type-handlers-package: org.apache.ibatis.type.LocalDateTypeHandler
config-location: classpath:mybatis-config.xml #mybatis配置文件
pic:
home: G:\home\jcala\xmarket\pic #图片在服务器上存放的目录
####注意事项
- 运行后中文显示乱码:在linux下,vim /etc/mysql/my.cnf 。在[mysqld]下添加character-set-server=utf8
- 二次开发报错,没有getter,setter等方法:因为使用了lombok,需要idea或者Eclipse安装lombok插件
- 运行后,后台管理初始用户名admin,密码admin
####优点
- 响应式,前端适配手机
- cdn加速,gzip压缩
- 前端页面用Ehcache缓存加速
- 一键黑夜模式
- 事务处理
####2.0版本将要做出的改变
- 用react.js将前端重写为单页面应用,去除模板引擎,前端模拟路由。服务器端只负责收发json数据。
- 项目分模块,前后端分离,增强拓展性。
- 加入钩子,方便自定义插件。
- 前端模板化,可自定义定制主题。
- 增强安全性。
- jdk版本升级为java8。
- 还会逐步提供评论,全文检索,项目托管等功能或者插件。