本文默认你已经了解了一些基本的概念和依赖框架。
请提前安装IntelliJ IDEA。并安装Java JDK 1.8
1. New Project -> 选择 Spring Initializr -> 输入项目名称-> 选择依赖 Web、JPA 、MySql、redis。 完成
2. 完成之后的项目工程目录, 如图所示:
3. 添加其他依赖:打开 pom.xml 文件
添加tomcat 、fastJson、druid、 swagger、jwt、lombok的依赖
com.alibaba
druid
1.1.12
com.alibaba
fastjson
1.2.51
org.springframework.boot
spring-boot-starter-tomcat
provided
org.projectlombok
lombok
1.16.18
io.springfox
springfox-swagger2
2.2.2
io.springfox
springfox-swagger-ui
2.2.2
io.jsonwebtoken
jjwt
0.9.1
com.auth0
java-jwt
3.4.0
4. 编写application.yml文件配置。 可以配置多个用于区分开发和正式环境。
5. 创建数据库,并且设置连接数据库
在服务器上安装mysql,并且进入mysql执行命令行, 创建一个新数据库 mysite, 然后按照以下命令创建表结构
DROP TABLE IF EXISTS `t_logger_infos`;
CREATE TABLE `t_logger_infos` (
`ali_id` int(11) NOT NULL AUTO_INCREMENT,
`ali_client_ip` varchar(30) DEFAULT NULL COMMENT '客户端请求IP地址',
`ali_uri` varchar(100) DEFAULT NULL COMMENT '日志请求地址',
`ali_type` varchar(50) DEFAULT NULL COMMENT '终端请求方式,普通请求,ajax请求',
`ali_method` varchar(10) DEFAULT NULL COMMENT '请求方式method,post,get等',
`ali_param_data` longtext COMMENT '请求参数内容,json',
`ali_session_id` varchar(100) DEFAULT NULL COMMENT '请求接口唯一session标识',
`ali_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '请求时间',
`ali_returm_time` varchar(50) DEFAULT NULL COMMENT '接口返回时间',
`ali_return_data` longtext COMMENT '接口返回数据json',
`ali_http_status_code` varchar(10) DEFAULT NULL COMMENT '请求时httpStatusCode代码,如:200,400,404等',
`ali_time_consuming` int(8) DEFAULT '0' COMMENT '请求耗时(毫秒单位)',
PRIMARY KEY (`ali_id`)
) ENGINE=InnoDB AUTO_INCREMENT=106119 DEFAULT CHARSET=utf8 COMMENT='请求日志信息表';
DROP TABLE IF EXISTS `t_users`;
CREATE TABLE `t_users` (
`uid` int(10) unsigned NOT NULL AUTO_INCREMENT,
`username` varchar(32) DEFAULT NULL,
`password` varchar(64) DEFAULT NULL,
`email` varchar(200) DEFAULT NULL,
`homeUrl` varchar(200) DEFAULT NULL,
`screenName` varchar(32) DEFAULT NULL,
`created` int(10) unsigned DEFAULT '0',
`activated` int(10) unsigned DEFAULT '0',
`logged` int(10) unsigned DEFAULT '0',
`groupName` varchar(16) DEFAULT 'visitor',
PRIMARY KEY (`uid`),
UNIQUE KEY `name` (`username`),
UNIQUE KEY `mail` (`email`)
) ENGINE=InnoDB DEFAULT CHARACTER SET utf8 COMMENT='用户信息表';
-- ----------------------------
-- Records of `t_users`
-- ----------------------------
BEGIN;
INSERT INTO `t_users` VALUES ('1', 'admin', 'a66abb5684c45962d887564f08346e8d', '[email protected]', null, 'admin', '1490756162', '0', '0', 'visitor');
COMMIT;
数据库创建好之后,需要在application.yml中配置。
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://47.105.152.255:3306/mysite?characterEncoding=utf8
username: root
password: root
#最大活跃数
maxActive: 20
#初始化数量
initialSize: 1
#最大连接等待超时时间
maxWait: 60000
#打开PSCache,并且指定每个连接PSCache的大小
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20
#通过connectionProperties属性来打开mergeSql功能;慢SQL记录
#connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
minIdle: 1
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: select 1 from dual
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
#配置监控统计拦截的filters,去掉后监控界面sql将无法统计,'wall'用于防火墙
filters: stat, wall, log4j
jpa:
properties:
hibernate:
show_sql: true
format_sql: true
redis:
host: 47.105.152.255
port: 6379
database: 0
timeout: 60s
jedis:
pool:
password: root
max-idle: 20
min-idle: 1
max-active: 20
maxwait: -1s
swagger:
show: true