GithubHelp home page GithubHelp logo

xiao-y / learn Goto Github PK

View Code? Open in Web Editor NEW
44.0 1.0 31.0 216.75 MB

一个学习使用的综合项目。实现方案为spring cloud alibaba

License: Apache License 2.0

Java 56.38% Batchfile 0.01% HTML 6.27% JavaScript 4.42% Vue 16.30% CSS 8.86% FreeMarker 1.34% Less 3.14% SCSS 3.18% Lua 0.07% Dockerfile 0.04%
nacos rabbitmq swagger2 springcloud springgateway spring-security redis seata oauth2

learn's Introduction

配置文件获取

采用 nacos 做为配置中心及路由中心,所有配置文件都是从配置中心获取:nacos--->dev-->cloud-config.properties, 需要依赖 learn-cloud-common 模块

模块说明

1.公用组件

  • learn-cloud-common 获取配置中心配置文件,所有的 learn-cloud-* 都要依赖
  • learn-shop-base 包含:

learn-shop-base-aop aop 公用切面,统一数据格式返回,统一异常,日志打印,long 转前端 string。所有业务模块都要依赖

learn-shop-base-common mq 交换机、路由、队列的定义,reids、swagger2、线程池的配置,获取用户信息工具类,redis 操作和redis锁控制类。所有业务模块都要依赖

learn-shop-base-email 邮件发送配置。system 依赖

learn-shop-base-job 定时任务配置,api 提供。system 依赖

learn-shop-base-jpa jpa 配置,jpa 操作基本方法封装(弃用)

learn-shop-base-mybatis mybatis 配置,基本方法封装,代码生成器。所有操作数据库的都要依赖

learn-shop-base-tools 公用工具类方法

learn-shop-base-workflow 工作流式相关。system 依赖

2.核心服务,端口:87**

nacos 注册中心,分布式配置中心 端口:8761

learn-cloud-getaway 路由网关,端口:8771

3.后端业务服务,端口:88/89**

learn-shop-app app端,端口:8089

learn-shop-admin-user 用户管理服务,端口:8801

learn-shop-admin-system 系统管理服务,端口:8811

learn-shop-core-order 购物车服务,端口:8901

learn-shop-core-cart 购物车服务,端口:

learn-shop-core-product 购物车服务,端口:8911

learn-shop-core-search 搜索服务,端口:8981

learn-shop-core-promotion 促销服务,端口:8921

项目启动顺序

  • mysql
  • redis
  • rabbtimq
  • nacos (单机启动命令:./startup.sh -m standalone)
  • learn-cloud-getaway
  • 启动业务服务

访问:(通过路由)

  • 注册中心、配置中心:

http://localhost:8761/nacos/index.html

用户名/密码:nacos/nacos

  • 业务服务:

http://localhost:8771/core-order #订单相关

http://localhost:8771/admin-user #用户相关

  • RabbitMQ: 管理页面

http://localhost:15672

用户名/密码:admin/admin123

  • Swagger2: 管理页面

http://localhost:/swagger-ui.html(查看单个)

http://localhost:8771/swagger-ui.html(查看聚合)

或者进入注册中心点击实例链接直接查看

注意

  • 特别提醒:如果使用本地配置文件需要修改 learn-cloud-config 下的 resources 里面的 application.ymlsearch-locations 修改为本地路径

  • 添加新服务时,要在 learn-cloud-gateway 中添加路由表

  • 首次启动修改 learn-shop-admin-system.yml 中的 database-schema-update 为 true,自动建表

  • 首次启动修改 learn-shop-admin-system.yml 中的 start-init-data 为 true,加载缓存

core-order:
  path: /core-order/**
  serviceId: learn-shop-core-order
  • 使用配置中心时 配置中心启动时会向注册中心注册,这里注册中心还没启动会报异常,不用关心
  • 如果是 learn-cloud-* pom 中添加 learn-cloud-common 依赖
  • 如果是 learn-shop-admin-*learn-shop-core-* pom 中添加 learn-shop-base-common 依赖
  • 项目启动先要条件

RabbitMQ, rabbitmq-server.bat

添加新用户:admin 密码:admin123,修改admin用为超级管理员

查询所有用户:rabbitmqctl.bat list_users

添加新用户: rabbitmqctl.bat add_user username password

赋予用户权限:rabbitmqctl.bat set_user_tags username administrator

在admin中设定虚拟主机(virtual-host)为/learn-default

  • redis启动

  • swagger2注解 使用说明

  • 注入 RedisTemplate 需要通过 @Resource 明确指定。因为两个使用的库不同,mybatis 默认使用的 15 号库。

// 正常设值的
@Resource
private RedisTemplate<String, Object> redisTemplate;

// mybatis 设置缓存
@Resource
protected RedisTemplate<String, Object> redisCacheTemplate;

其它

HTTP Method 与 CURD 数据处理操作对应

POST Create 新增一个没有id的资源

GET Read 取得一个资源

PUT Update 更新一个资源。或新增一个含 id 资源(如果 id 不存在)

DELETE Delete 删除一个资源

TODO

1.缓存的调整 2.订单释放 3.权限调整为权限码形式 4.后台管理首页修改为卡片形式

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.