整合Nacos
下载nacos,该项目使用的是2.0.1版本
1.下载启动nacos,在本机windows系统上运行,双击startup.cmd(在linux上运行startup.sh,linux上的部署运行这里不做详细说明,包括数据库更换,百度一下你就知道)
2.启动后,访问http://localhost:8848/nacos,账号密码默认都是nacos
3.新增yaml配置
(1)user-service.yaml,配置文件名称必须和spring.application.name一致
server:
port: 9002
spring:
application:
name: user-service
redis:
host: localhost
#password: 123456
port: 6379
timeout: 2000ms
cloud:
#注册中心地址
nacos:
discovery:
server-addr: localhost:8848
#数据库配置
datasource:
driver-class-name: org.postgresql.Driver
url: jdbc:postgresql://localhost:5432/user-center
username: postgres
password: 123456
#阿里云OSS配置
#aliyun:
# oss:
# access-key:
# accessKeySecret:
# endpoint: oss-cn-hangzhou.aliyuncs.com
# bucketName:
# domain:
#配置plus打印sql日志
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
#log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl
#设置日志级别,ERROR/WARN/INFO/DEBUG,默认是INFO以上才显示
logging:
level:
root: INFO
com.alibaba.nacos.client.config.impl: WARN
#默认用户头像
user:
head:
img: https://xxxxx/head_img/headImg.jpg
(2)api-gateway-service.yaml
server:
port: 9200
spring:
application:
name: api-gateway-service
cloud:
#注册中心地址
nacos:
discovery:
server-addr: localhost:8848
gateway:
routes:
#后台管理服务
- id: user-service
uri: lb://user-center
order: 2
predicates:
- Path=/user-service/**
filters:
- StripPrefix=1
#开启网关拉取nacos的服务
discovery:
locator:
enabled: true
#设置日志级别,ERROR/WARN/INFO/DEBUG,默认是INFO以上才显示
logging:
level:
root: INFO
com.alibaba.nacos.client.config.impl: WARN
数据库
1.该项目使用的是PostgreSQL10数据库,也可以使用mysql,可自行切换,修改配置文件中的datasource即可
(1)创建数据库
-- Database: user-center
-- DROP DATABASE "user-center";
CREATE DATABASE "user-center"
WITH
OWNER = postgres
ENCODING = 'UTF8'
LC_COLLATE = 'Chinese (Simplified)_China.936'
LC_CTYPE = 'Chinese (Simplified)_China.936'
TABLESPACE = pg_default
CONNECTION LIMIT = -1;
COMMENT ON DATABASE "user-center"
IS '用户服务';
(2)创建数据表
菜单表:sys_menu的设计与前端的实现有关,可根据实际情况修改,可保持一致,后面会有前端篇
-- Table: public.sys_user
-- DROP TABLE public.sys_user;
CREATE TABLE public.sys_user
(
id integer NOT NULL GENERATED BY DEFAULT AS IDENTITY ( INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 2147483647 CACHE 1 ),
username character varying COLLATE pg_catalog."default" NOT NULL,
nickname character varying COLLATE pg_catalog."default" NOT NULL,
pwd character varying COLLATE pg_catalog."default" NOT NULL,
head_img character varying COLLATE pg_catalog."default" NOT NULL,
create_time timestamp without time zone NOT NULL,
secret character varying COLLATE pg_catalog."default" NOT NULL,
CONSTRAINT user_pkey PRIMARY KEY (id)
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;
ALTER TABLE public.sys_user
OWNER to postgres;
COMMENT ON TABLE public.sys_user
IS '用户表';
COMMENT ON COLUMN public.sys_user.username
IS '用户名';
COMMENT ON COLUMN public.sys_user.nickname
IS '昵称';
COMMENT ON COLUMN public.sys_user.pwd
IS '密码';
COMMENT ON COLUMN public.sys_user.head_img
IS '头像';
COMMENT ON COLUMN public.sys_user.secret
IS '密钥';
-- Index: username_idx
-- DROP INDEX public.username_idx;
CREATE INDEX username_idx
ON public.sys_user USING btree
(username COLLATE pg_catalog."default" varchar_ops)
TABLESPACE pg_default;
-- Table: public.sys_role
-- DROP TABLE public.sys_role;
CREATE TABLE public.sys_role
(
id integer NOT NULL GENERATED BY DEFAULT AS IDENTITY ( INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 2147483647 CACHE 1 ),
code character varying COLLATE pg_catalog."default" NOT NULL,
name character varying COLLATE pg_catalog."default" NOT NULL,
create_time timestamp without time zone NOT NULL,
update_time timestamp without time zone,
CONSTRAINT role_pkey PRIMARY KEY (id)
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;
ALTER TABLE public.sys_role
OWNER to postgres;
COMMENT ON TABLE public.sys_role
IS '角色表';
COMMENT ON COLUMN public.sys_role.code
IS '角色编码';
COMMENT ON COLUMN public.sys_role.name
IS '角色名称';
-- Table: public.sys_permission
-- DROP TABLE public.sys_permission;
CREATE TABLE public.sys_permission
(
id integer NOT NULL GENERATED BY DEFAULT AS IDENTITY ( INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 2147483647 CACHE 1 ),
permission character varying COLLATE pg_catalog."default" NOT NULL,
name character varying COLLATE pg_catalog."default" NOT NULL,
create_time timestamp without time zone NOT NULL,
update_time timestamp without time zone,
CONSTRAINT permission_pkey PRIMARY KEY (id)
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;
ALTER TABLE public.sys_permission
OWNER to postgres;
COMMENT ON TABLE public.sys_permission
IS '指令权限表';
COMMENT ON COLUMN public.sys_permission.permission
IS '权限指令';
COMMENT ON COLUMN public.sys_permission.name
IS '权限名称';
-- Table: public.sys_menu
-- DROP TABLE public.sys_menu;
CREATE TABLE public.sys_menu
(
id integer NOT NULL GENERATED BY DEFAULT AS IDENTITY ( INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 2147483647 CACHE 1 ),
parent_id integer NOT NULL,
name character varying COLLATE pg_catalog."default" NOT NULL,
url character varying COLLATE pg_catalog."default" NOT NULL,
path character varying COLLATE pg_catalog."default" NOT NULL,
title character varying COLLATE pg_catalog."default" NOT NULL,
icon character varying COLLATE pg_catalog."default" NOT NULL,
sort integer NOT NULL,
create_time timestamp without time zone NOT NULL,
update_time timestamp without time zone,
CONSTRAINT menu_pkey PRIMARY KEY (id)
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;
ALTER TABLE public.sys_menu
OWNER to postgres;
COMMENT ON TABLE public.sys_menu
IS '菜单表';
COMMENT ON COLUMN public.sys_menu.name
IS '菜单名称';
COMMENT ON COLUMN public.sys_menu.title
IS '菜单标题';
-- Table: public.user_role
-- DROP TABLE public.user_role;
CREATE TABLE public.user_role
(
user_id integer NOT NULL,
role_id integer NOT NULL,
CONSTRAINT user_role_key PRIMARY KEY (user_id, role_id)
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;
ALTER TABLE public.user_role
OWNER to postgres;
COMMENT ON TABLE public.user_role
IS '用户角色表';
-- Table: public.role_permission
-- DROP TABLE public.role_permission;
CREATE TABLE public.role_permission
(
role_id integer NOT NULL,
permission_id integer NOT NULL,
CONSTRAINT role_permission_key PRIMARY KEY (role_id, permission_id)
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;
ALTER TABLE public.role_permission
OWNER to postgres;
COMMENT ON TABLE public.role_permission
IS '角色权限表';
-- Table: public.role_menu
-- DROP TABLE public.role_menu;
CREATE TABLE public.role_menu
(
role_id integer NOT NULL,
menu_id integer NOT NULL,
CONSTRAINT role_menu_key PRIMARY KEY (role_id, menu_id)
)
WITH (
OIDS = FALSE
)
TABLESPACE pg_default;
ALTER TABLE public.role_menu
OWNER to postgres;
COMMENT ON TABLE public.role_menu
IS '角色菜单表';
启动服务
1.准备好数据库、数据表、配置好nacos后,就可以启动后台服务了,由于是springboot项目,启动很方便,直接运行启动类即可或者在services dashboard运行
2.现在还没有写任何接口,可以创建一个controller,使用postman或swagger进行测试(swagger地址:http://localhost:9002/swagger-ui/index.html),如http://localhost:9200/user-service/api/user/v1/info。能正常访问即可
下一次,使用逆向工程生成代码,开始编写公共模块,完成用户注册、登录相关功能!