一、关于框架更名的一点说明

最近在做年终总结、明年规划、还有几个项目需要了结、出解决方案,事情还比较多,死了不少脑细胞,距离上一篇文章发出已经过了3天,是不是有些人会认为我放弃了又不搞了,NONO,一定会坚持下去,趁周末赶紧整理第二篇并把工程骨架构建起来。

上一篇<开篇博文>将框架之前命名为JCloud,后来发现诸多重名,这种感觉很不爽,经过深思熟虑,决定将框架名更改为 Aooms,上一篇博文标题、内容就暂不修改了留个印记。

Aooms 名称来源:取自 a microservice 英文缩写,中文翻译为一个微服务框架,简写 ams 发现太短,还是比较容易重复,后来中间补上两个oo,没啥具体含义就是凑个数避免重复,加上后惊喜的发现看起来比较顺眼,也比较好记,那就是它了, 它念 ‘’奥木思‘’,哈哈是不是土的很。

二、开发环境说明

环境名称 名称及版本
开发IDE IDEA_2017.3.3
JDK 1.8+
Servlet 3.0+
Web服务器 Tomcat8.5+
数据库 Mysql5.5+
Spring 5.0.2
SpringBoot 2.0.0+

idea初次使用,都说好用尝试一下。

三、工程结构说明

工程整体分为 公共部分 、应用部分、Demo部分。

(1)公共部分

业务无关的公共封装类库与前端资源库,为应用部分服务。

  • aooms-core

    • 提供技术框架层面的支撑能力,包含公共的工具类、缓存、消息队列、服务注册、发现、调用、分库分表等,为整个框架的核心
  • aooms-static-web
    • 前端所需的公共资源库,包含css、js、images及各种前端所需插件
  • aooms-static-webmgr
    • 管理后台所需的公共资源库,包含css、css、js、images及各种管理后台所需插件

(2)应用部分

业务无关的基础应用,具体项目中拿来即用,无需重复开发,下面以rbac为例说明应用部分的工程结构。

rbac:用户权限系统,包含角色、用户、机构、菜单、功能等的配置维护。

  • aooms-rbac

    • 权限系统的基础服务
  • aooms-rbac-web
    • 权限系统的前端界面(对于权限系统此处可能不需要前端,仅仅为了说明完整工程结构)
  • aooms-rbac-webmgr
    • 权限系统的后台界面
  • aooms-rbac-gateway
    • 权限系统的网关,提供给三方调用或其他服务调用的入口,加此网关层,一是为了避免服务间存在细节性的耦合,二是统一服务调用入口,便于做监控、集中式的管理。(同样对于权限系统此处可能不需要,仅仅为了说明完整工程结构)

(3) Demo部分

为框架的基本使用说明、演示工程

后续其他的基础应用工程结构rbac公共结构一致,具体业务系统也可按此方式构建,需要强调一点,上面说的前端界面、后台界面实则都属于前端,但是具体到用户群体、使用场景不一样,使用到的前端技术可能会存在一些差异,因此构建公共资源部分时分了前端与后台进行了区分,后面在说到前端界面实则指的是面向用户大众的功能界面,后台界面说的是管理员或运维人员使用系统的界面或者偏管理型系统的界面

四、构建过程遇到的一点问题

下面是初次使用SpringCloud构建工程时可能会遇到的问题,老司机此处可以飞过了。

(1) pom配置完成后,maven显示红线

问题描述:配置完pom.xml文件,发现idea右侧的Maven Projects 视图中,部分包下带红波浪线。

截图当时没保存,贴到图时调整正常的

解决办法如下:

1、从pom文件先去掉对应到依赖,然后在引入,一般都能正常

2、如果1步骤无法解决,需要检查仓库地址、groupId、artifactId、或version 信息是否正确

———————————————————————————————————————————

(2) has broken path

问题描述:maven依赖正常,类中却无法引入,查看Project Setting, 发现如下错误

关键错误信息:has broken path.

解决办法如下:

1、双击错误的jar,进入编辑界面,点击左上角加号,从本地目录中选择jar包文件所在目录,确定即可

2、在jar列表查看错误到信息已经消失,问题解决

———————————————————————————————————————————

(3) 启动报错

问题描述:工程构建完毕,右键Run启动之后出现如下异常信息

解决办法如下:

启动主类添加注解@EnableDiscoveryClient(autoRegister=false)默认autoRegister属性为true

默认情况下我们并没有启动Eureka服务端,也没有配置发现注册中心的相关IP、端口信息,需要先禁用客户端的自动注册功能,另外如果需要运行一个最简单的应用,最好将pom.xml中多余的依赖暂时去掉,具体可参考spring官方给的pom文件模版,对应的项目信息、springboot版本修改为自己需要的即可(下面贴个官方给的模版),让工程运行起来

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId>
<artifactId>myproject</artifactId>
<version>0.0.1-SNAPSHOT</version> <parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.BUILD-SNAPSHOT</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies> <!-- Additional lines to be added here... --> <!-- (you don't need this if you are using a .RELEASE version) -->
<repositories>
<repository>
<id>spring-snapshots</id>
<url>https://repo.spring.io/snapshot</url>
<snapshots><enabled>true</enabled></snapshots>
</repository>
<repository>
<id>spring-milestones</id>
<url>https://repo.spring.io/milestone</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-snapshots</id>
<url>https://repo.spring.io/snapshot</url>
</pluginRepository>
<pluginRepository>
<id>spring-milestones</id>
<url>https://repo.spring.io/milestone</url>
</pluginRepository>
</pluginRepositories>
</project>

———————————————————————————————————————————

(4) 控制器写完后,启动后无法访问

问题描述:控制器编写完成,项目启动后无法访问

解决办法如下:

没有引入spring-webmvc的包,引入spring-webmvc包, 启动主类添加注解@EnableWebMvc,开启mvc支持,其实当引入了spring-webmvc 包时,不配置@EnableWebMvc注解也可以,程序启动时会自动进行扫描映射路径。


———————————————————————————————————————————

五、项目地址

Aooms_微服务基础开发平台实战_002_工程构建的更多相关文章

  1. Aooms_微服务基础开发平台实战_001_开篇

    一.引子 “ 微服务”近年来很火的一个词,如今的热度不亚于当年的SSH组合,各种开发框架.中间件.容器.概念层出不穷. 比如:dubbo.motan.zookeeper.springboot.spri ...

  2. Aooms_微服务基础开发平台实战_003_配置文件与简单的web环境搭建

    一.前言 本篇文章介绍两个重点 (1) 工程核心配置文件application.yml (2) 如何在一个标准的的SpringCloud工程上构建起一个基本的web结构 二.配置文件applicati ...

  3. Apollo-open-capacity-platform 微服务能力开发平台 (转)

    来自大佬的apollo整合微服务的教程:欢迎大家点评和star,链接如下:https://gitee.com/owenwangwen/open-capacity-platform 官方demo链接:h ...

  4. 开发指南专题十一:JEECG微云高速开发平台--基础用户权限

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/zhangdaiscott/article/details/26580037     开发指南专题 ...

  5. 专题开发十二:JEECG微云高速开发平台-基础用户权限

      专题开发十二:JEECG微云高速开发平台-基础用户权限 11.3.4自己定义button权限 Jeecg中.眼下button权限设置,是通过对平台自己封装的button标签(<t:dgFun ...

  6. Springcloud 微服务 高并发(实战1):第1版秒杀

    疯狂创客圈 Java 高并发[ 亿级流量聊天室实战]实战系列之15 [博客园总入口 ] 前言 前言 疯狂创客圈(笔者尼恩创建的高并发研习社群)Springcloud 高并发系列文章,将为大家介绍三个版 ...

  7. SpringCloud微服务基础学习

    看了蚂蚁课堂的微服务学习,确实学习了不少关于微服务的知识,现在总结学习如下 : SpringCloud微服务基础单点系统架构传统项目架构传统项目分为三层架构,将业务逻辑层.数据库访问层.控制层放入在一 ...

  8. 开发指南专题十四:JEECG微云高速开发平台MiniDao 介绍

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/zhangdaiscott/article/details/27068645   开发指南专题十四:J ...

  9. NET Core微服务之路:实战SkyWalking+Exceptionless体验生产下追踪系统

    原文:NET Core微服务之路:实战SkyWalking+Exceptionless体验生产下追踪系统 前言 当一个APM或一个日志中心实际部署在生产环境中时,是有点力不从心的. 比如如下场景分析的 ...

随机推荐

  1. 原生js实现删除class和添加class

    内容来自百度搜索 //判断样式是否存在 function hasClass(ele, cls) {     return ele.className.match(new RegExp("(\ ...

  2. R语言读取EXCEL文件的各种方法

    路径问题 原始文件路径C:\Users\air\Desktop\1.txt R中有两种方法读取该路径 C:\\Users\\air\\Desktop\\1.txt C:/Users/air/Deskt ...

  3. #Java学习之路——基础阶段(第五篇)

    我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...

  4. PHP零基础入门

    字符函数库: 函数库基础 安装字符串函数库 字符串函数库列表 函数是可以实现特定功能,可以重复执行的代码段. 函数分 内置函数 和 用户函数. 内置函数是指PHP本身提供的各类库函数. 字符串函数库, ...

  5. [Swift]LeetCode55. 跳跃游戏 | Jump Game

    Given an array of non-negative integers, you are initially positioned at the first index of the arra ...

  6. [Swift]LeetCode143. 重排链表 | Reorder List

    Given a singly linked list L: L0→L1→…→Ln-1→Ln,reorder it to: L0→Ln→L1→Ln-1→L2→Ln-2→… You may not mod ...

  7. [Swift]LeetCode213. 打家劫舍 II | House Robber II

    You are a professional robber planning to rob houses along a street. Each house has a certain amount ...

  8. [Swift]LeetCode323. 无向图中的连通区域的个数 $ Number of Connected Components in an Undirected Graph

    Given n nodes labeled from 0 to n - 1 and a list of undirected edges (each edge is a pair of nodes), ...

  9. CkEditor批量上传图片(java)

    CKEditor上传视频CKEditor批量上传图片flvplayer.swf播放器CKEditor整合包(v4.6.1) ------------------------------------ 最 ...

  10. Linux suse 11 sp1 安装教程

    在 VMware Workstation Pro 中打开 iso 文件,进入主界面,选择 installation : 语言选择 简体中文,键盘选择 美国US ,选择下一步,点击继续: 选择 全部安装 ...