优化项目结构

This commit is contained in:
lsy
2017-10-12 21:02:26 +08:00
parent 41fdd48555
commit 01b45f4bbe
274 changed files with 246 additions and 95 deletions
+26 -54
View File
@@ -1,57 +1,29 @@
# 欢迎查看micro-fast项目说明
# 欢迎查看ms项目说明
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
## 项目简介
`micro-fast`使用mybatis,spring系列框架作为基础,致力于打造一套中小企业分布式系统解决方案.借助于springCould微服务框架,对原框架进行整合扩展使用
云架构进行开发
`micro-fast`使用mybatis,spring系列框架作为基础,致力于打造一套中小企业系统解决方案.项目中对常用技术进行封装便于复用以及提高
开发效率,还提供了一个借助springcloud实现的一个分布式项目.
## 模块介绍
### SSM公共模块 common
common模块对SSM框架进行了整合,借助springboot实现了模块的热插拔,具有可复用性和可扩展性
### 配置中心 config-server
配置中心默认启动端口号9999,健康检查端口号19999.访问地址www.config.server.com
### 注册中心 eureka-server
注册中心默认启动端口号10002,健康检查端口号20002.访问地址www.eureka.server.com.为保证服务的稳定可靠,可以创建多个注册中心,实现服务注
册的备份冗余,实现高可用性
### 注册中心2 eureka-server2
注册中心2默认启动端口号10003,健康检查端口号20003.访问地址www.eureka.server2.com
### 用户权限管理中心 upms
用户权限管理中心默认启动端口号10004,健康检查端口号20004.访问地址www.upms.com
### 内容管理系统 cms
内容管理系统默认启动端口号10005,健康检查端口号20005,访问地址www.cms.com
### 用户中心 ucenter
用户中心默认启动端口号10006,健康检查端口20006,访问地址www.ucenter.com
### 服务网关 gateway
服务网关默认启动端口号10007,健康检查端口号20007,访问地址www.gateway.com
### 后台管理界面 manage-system
使用vue.js搭建后台管理界面
## 项目相关约束
### 遵循类似于springboot约定大与配置的原则.本项目开发约束如下:
#### 关于使用docker方式运行项目
可以使用传统方式运行,可以使用docker容器的方式运行.程序的启动顺序是配置中心,注册中心,其他服务。无论是使何种方式运行,保证除配置中心外,其
他所有服务都能从配置中加载到对应的配置文件,其他所有的服务都能注册到注册中心。所以运行的时候一定要将除配置中心外所有服务的注册空间的配置空间都指
定正确,本项目中本地运行时则是都指定到本机的ip地址
#### common模块的相关约束
得益于springboot的自动配置以及条件化装配的机制.我们可以扩展封装自己的ssm-boot,也是就是本项目中的commom,本项目的自定义扩展配置如下:
- `jdbc.master.username` 用户名(必要参数)
- `jdbc.master.password` 密码是使用common模块中的AESUtil加密过后的(必要参数)
- `jdbc.master.url`    数据库连接的url(必要参数)
- `jdbc.master.driverClass` 数据库连接驱动类(必要参数)
- `druid.master.servletInitParams` druid数据连接池的servlet的初始化参数,默认的druid账号密码是root,studyj2e.如果需要自定义可以传入自己的配
置,使用key:value的数组的形式.
- `druid.master.servletUrl` druid数据库连接池的访问路径,默认访问路径是/druid/*
- `druid.master.beanNames` druid要监控的bean的名字,多个使用逗号分割
- `druid.master.defaultAutoCommit` 事务是否自动提交,默认为true
- `druid.master.initialSize` 连接池的初始化大小,默认是20
- `druid.master.maxActive` 连接池的最大的数量,默认是50
- `druid.master.minIdle`连接池的最小空闲数量,默认是10
- `druid.master.maxWait` 当连接池中连接已经用完了,等待建立一个新连接的最大毫秒数,默认是1000
- `druid.master.minEvictableIdleTimeMillis` 等待到达多长时间释放连接池,默认是3600000
- `mybatis.typeAliasesPackage` pojo包所在的位置(必要参数)
- `mybatis.mappers` mapper映射文件所在的路径(必要参数)
- `mybatis.pageHelperProperties` pagehelper分页插件的properties配置形式是key:value数组的形式,默认方言是mysql,如果需要自定义可以传入自己的配置,使用key:value的数
组的形式.
- 除此之外`mybatis`的`dao`层扫描的配置需要在项目中自行配置
- 除此之外`common`实现了主从两个数据源的配置,从数据库的配置只需将`master`替换为`slave`.主从数据源默认使用相同的`druid`监控视图.其中对于`beanbeanNames`的监控配置,`servletUrl`的配
置,`servletInitParams`的配置在`master`中进行配置,需要在使用的项目之中去除默认的数据源自动装配`@EnableAutoConfiguration(exclude = DataSourceAutoConfiguration.class)`
- 对于数据源的切换方法是使用aop的方式对`@SwitchDataSource('数据源的名字')`进行拦截动态切换数据源,主数据源的名字是`master`,从数据源的名字是`slave`.对于没有注解默认的数据源是`master`.
## 开发进度
![开发进度](all/design/images/progress.png)
``` lua
micro-fast
├── boot-starter -- 借助spring boot自建快速启动项目
| ├── boot-starter-elasticsearch -- elasticsearch快速启用
| ├── boot-starter-fastdfs-client -- fastdfs客户端
| ├── boot-starter-security -- 权限认证 
| | ├── boot-starter-security-core -- 权限认证核心项目
| | ├── boot-starter-security-browser -- 浏览器权限认证
| | ├── boot-starter-security-app -- app权限认证
| | └── boot-starter-security-demo -- 权限认证示例项目
| ├── boot-starter-ssm -- ssm公共配置
| └── boot-starter-util -- 常用工具
├── ms -- 分布式系统
| ├── config-server -- 配置管理中心
| ├── register-center1 -- 高可用注册中心
| ├── register-center2 -- 高可用注册中心
| ├── gateway -- 服务网关
| ├── upms -- 权限管理系统
| ├── ucenter -- 用户中心
| └── cms -- cms系统
```
-1
View File
@@ -1 +0,0 @@
#!/usr/bin/env bash
@@ -11,7 +11,7 @@
<parent>
<groupId>com.micro.fast</groupId>
<artifactId>micro-fast</artifactId>
<artifactId>boot-starter</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
@@ -11,7 +11,7 @@
<parent>
<groupId>com.micro.fast</groupId>
<artifactId>micro-fast</artifactId>
<artifactId>boot-starter</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
@@ -11,7 +11,7 @@
<parent>
<groupId>com.micro.fast</groupId>
<artifactId>micro-fast</artifactId>
<artifactId>boot-starter-security</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
@@ -11,7 +11,7 @@
<parent>
<groupId>com.micro.fast</groupId>
<artifactId>micro-fast</artifactId>
<artifactId>boot-starter-security</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
@@ -11,7 +11,7 @@
<parent>
<groupId>com.micro.fast</groupId>
<artifactId>micro-fast</artifactId>
<artifactId>boot-starter-security</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
@@ -11,7 +11,7 @@
<parent>
<groupId>com.micro.fast</groupId>
<artifactId>micro-fast</artifactId>
<artifactId>boot-starter-security</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
@@ -44,6 +44,7 @@
<artifactId>maven-javadoc-plugin</artifactId>
</plugin>
</plugins>
<finalName>boot-starter-security-demo</finalName>
</build>
@@ -2,11 +2,19 @@ package com.micro.fast.security.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@RestController
public class BootStarterSecurityDemoApplication {
public static void main(String[] args) {
SpringApplication.run(BootStarterSecurityDemoApplication.class, args);
}
@GetMapping("/hello")
public String hello(){
return "hello security";
}
}
@@ -6,4 +6,7 @@ spring:
username: root
password: studyj2e
driver-class-name: com.mysql.jdbc.Driver
security:
basic:
enabled: false
@@ -0,0 +1,24 @@
<?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>
<artifactId>boot-starter-security</artifactId>
<packaging>pom</packaging>
<name>boot-starter-security</name>
<description>Spring boot starter</description>
<parent>
<groupId>com.micro.fast</groupId>
<artifactId>boot-starter</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modules>
<module>boot-starter-security-core</module>
<module>boot-starter-security-app</module>
<module>boot-starter-security-browser</module>
<module>boot-starter-security-demo</module>
</modules>
</project>
+29
View File
@@ -0,0 +1,29 @@
# 欢迎查看boot-starter-ssm项目说明
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
## 项目介绍
`boot-starter-ssm`项目用于快速开启spring集成mybatis的项目,将本项目使用maven发布到本地仓库,在其他项
目中引入该依赖进行相关配置即可使用.
### boot-starter-ssm项目的参数配置
得益于springboot的自动配置以及条件化装配的机制.我们可以扩展封装自己的ssm-boot,也是就是本项目中的commom,本项目的自定义扩展配置如下:
- `jdbc.master.username` 用户名(必要参数)
- `jdbc.master.password` 密码是使用common模块中的AESUtil加密过后的(必要参数)
- `jdbc.master.url`    数据库连接的url(必要参数)
- `jdbc.master.driverClass` 数据库连接驱动类(必要参数)
- `druid.master.servletInitParams` druid数据连接池的servlet的初始化参数,默认的druid账号密码是root,studyj2e.如果需要自定义可以传入自己的配
置,使用key:value的数组的形式.
- `druid.master.servletUrl` druid数据库连接池的访问路径,默认访问路径是/druid/*
- `druid.master.beanNames` druid要监控的bean的名字,多个使用逗号分割
- `druid.master.defaultAutoCommit` 事务是否自动提交,默认为true
- `druid.master.initialSize` 连接池的初始化大小,默认是20
- `druid.master.maxActive` 连接池的最大的数量,默认是50
- `druid.master.minIdle`连接池的最小空闲数量,默认是10
- `druid.master.maxWait` 当连接池中连接已经用完了,等待建立一个新连接的最大毫秒数,默认是1000
- `druid.master.minEvictableIdleTimeMillis` 等待到达多长时间释放连接池,默认是3600000
- `mybatis.typeAliasesPackage` pojo包所在的位置(必要参数)
- `mybatis.mappers` mapper映射文件所在的路径(必要参数)
- `mybatis.pageHelperProperties` pagehelper分页插件的properties配置形式是key:value数组的形式,默认方言是mysql,如果需要自定义可以传入自己的配置,使用key:value的数
组的形式.
- 除此之外`mybatis`的`dao`层扫描的配置需要在项目中自行配置
- 除此之外`common`实现了主从两个数据源的配置,从数据库的配置只需将`master`替换为`slave`.主从数据源默认使用相同的`druid`监控视图.其中对于`beanbeanNames`的监控配置,`servletUrl`的配
置,`servletInitParams`的配置在`master`中进行配置,需要在使用的项目之中去除默认的数据源自动装配`@EnableAutoConfiguration(exclude = DataSourceAutoConfiguration.class)`
- 对于数据源的切换方法是使用aop的方式对`@SwitchDataSource('数据源的名字')`进行拦截动态切换数据源,主数据源的名字是`master`,从数据源的名字是`slave`.对于没有注解默认的数据源是`master`.
@@ -3,15 +3,15 @@
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>
<artifactId>common</artifactId>
<artifactId>boot-starter-ssm</artifactId>
<packaging>jar</packaging>
<name>common</name>
<description>common</description>
<name>boot-starter-ssm</name>
<description>boot-starter-ssm</description>
<parent>
<groupId>com.micro.fast</groupId>
<artifactId>micro-fast</artifactId>
<artifactId>boot-starter</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
@@ -5,12 +5,12 @@
<artifactId>boot-starter-util</artifactId>
<packaging>jar</packaging>
<name>util</name>
<name>boot-starter-util</name>
<description>micro-fast-util</description>
<parent>
<groupId>com.micro.fast</groupId>
<artifactId>micro-fast</artifactId>
<artifactId>boot-starter</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
+25
View File
@@ -0,0 +1,25 @@
<?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>
<artifactId>boot-starter</artifactId>
<packaging>pom</packaging>
<name>boot-starter</name>
<description>Spring boot starter</description>
<parent>
<groupId>com.micro.fast</groupId>
<artifactId>micro-fast</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modules>
<module>boot-starter-util</module>
<module>boot-starter-fastdfs-client</module>
<module>boot-starter-elasticsearch</module>
<module>boot-starter-security</module>
<module>boot-starter-ssm</module>
</modules>
</project>
+42
View File
@@ -0,0 +1,42 @@
target/
!.mvn/wrapper/maven-wrapper.jar
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
nbproject/private/
build/
nbbuild/
dist/
nbdist/
.nb-gradle/
### maven ###
target
out
.mvn
mvnw
mvnw.cmd
classes
将删除 .gitignore
将删除 README.md
将删除 package-lock.json
将删除 package.json
将删除 public/
将删除 src/
### jRebel ###
.rebel.xml.bak
rebel.xml
+31
View File
@@ -0,0 +1,31 @@
# 欢迎查看ms项目说明
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
## 项目简介
`ms`使用mybatis,spring系列框架作为基础,致力于打造一套中小企业分布式系统解决方案.借助于springCould微服务框架,对原框架进行整合扩展使用
云架构进行开发
## 模块介绍
### 配置中心 config-server
配置中心默认启动端口号9999,健康检查端口号19999.访问地址www.config.server.com
### 注册中心 eureka-server
注册中心默认启动端口号10002,健康检查端口号20002.访问地址www.eureka.server.com.为保证服务的稳定可靠,可以创建多个注册中心,实现服务注
册的备份冗余,实现高可用性
### 注册中心2 eureka-server2
注册中心2默认启动端口号10003,健康检查端口号20003.访问地址www.eureka.server2.com
### 用户权限管理中心 upms
用户权限管理中心默认启动端口号10004,健康检查端口号20004.访问地址www.upms.com
### 内容管理系统 cms
内容管理系统默认启动端口号10005,健康检查端口号20005,访问地址www.cms.com
### 用户中心 ucenter
用户中心默认启动端口号10006,健康检查端口20006,访问地址www.ucenter.com
### 服务网关 gateway
服务网关默认启动端口号10007,健康检查端口号20007,访问地址www.gateway.com
### 后台管理界面 manage-system
使用vue.js搭建后台管理界面
## 项目相关约束
### 遵循类似于springboot约定大与配置的原则.本项目开发约束如下:
参照boot-starter-ssm项目说明[boot-starter-ssm](../boot-starter/boot-starter-ssm/README.md)
#### 关于使用docker方式运行项目
可以使用传统方式运行,可以使用docker容器的方式运行.程序的启动顺序是配置中心,注册中心,其他服务。无论是使何种方式运行,保证除配置中心外,其
他所有服务都能从配置中加载到对应的配置文件,其他所有的服务都能注册到注册中心。所以运行的时候一定要将除配置中心外所有服务的注册空间的配置空间都指
定正确,本项目中本地运行时则是都指定到本机的ip地址
+2 -2
View File
@@ -11,7 +11,7 @@
<parent>
<groupId>com.micro.fast</groupId>
<artifactId>micro-fast</artifactId>
<artifactId>ms</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
@@ -19,7 +19,7 @@
<!--公共配置-->
<dependency>
<groupId>com.micro.fast</groupId>
<artifactId>common</artifactId>
<artifactId>boot-starter-ssm</artifactId>
<version>${micro.fast.version}</version>
</dependency>
<!--监控-->

Some files were not shown because too many files have changed in this diff Show More