浏览代码

开发说明

zhangweixin 4 年之前
父节点
当前提交
c76e4d3858
共有 35 个文件被更改,包括 786 次插入14 次删除
  1. 71 0
      docs/.vuepress/components/GitCode.vue
  2. 13 1
      docs/.vuepress/config.js
  3. 2 1
      docs/.vuepress/enhanceApp.js
  4. 二进制
      docs/.vuepress/public/assets/img/logo.png
  5. 二进制
      docs/.vuepress/public/assets/img/logos.png
  6. 299 0
      docs/.vuepress/public/plugin/prism.css
  7. 34 0
      docs/.vuepress/public/plugin/prism.js
  8. 3 3
      docs/README.md
  9. 2 0
      docs/dev/data-center/code/README.md
  10. 169 8
      docs/setup/dev/idea.md
  11. 二进制
      docs/setup/dev/img/idea-module_001.jpg
  12. 二进制
      docs/setup/dev/img/idea-module_002.jpg
  13. 二进制
      docs/setup/dev/img/idea-module_003.jpg
  14. 二进制
      docs/setup/dev/img/idea-module_004.jpg
  15. 二进制
      docs/setup/dev/img/idea-module_005.jpg
  16. 二进制
      docs/setup/dev/img/idea-module_006.jpg
  17. 二进制
      docs/setup/dev/img/idea-module_007.jpg
  18. 二进制
      docs/setup/dev/img/idea-module_008.jpg
  19. 二进制
      docs/setup/dev/img/idea-package_001.jpg
  20. 二进制
      docs/setup/dev/img/idea-package_002.jpg
  21. 二进制
      docs/setup/dev/img/idea-package_003.jpg
  22. 二进制
      docs/setup/dev/img/idea-package_004.jpg
  23. 二进制
      docs/setup/dev/img/idea-package_005.jpg
  24. 二进制
      docs/setup/dev/img/idea-project_001.jpg
  25. 二进制
      docs/setup/dev/img/idea-project_002.jpg
  26. 二进制
      docs/setup/dev/img/idea-project_003.jpg
  27. 二进制
      docs/setup/dev/img/idea-project_004.jpg
  28. 二进制
      docs/setup/dev/img/idea-project_005.jpg
  29. 49 0
      docs/setup/dev/src/project/DataCenterApp.kts
  30. 22 0
      docs/setup/dev/src/project/WebMvcConfg.kt
  31. 19 0
      docs/setup/dev/src/project/application-dev.yml
  32. 24 0
      docs/setup/dev/src/project/application.yml
  33. 76 0
      docs/setup/dev/src/project/build1.gradle
  34. 1 1
      docs/setup/dev/src/project/settings.gradle
  35. 2 0
      docs/setup/server/centos/server/postgresql.md

+ 71 - 0
docs/.vuepress/components/GitCode.vue

@@ -0,0 +1,71 @@
+<template>
+    <details class="custom-block details custom-code">
+        <summary>查看代码:{{ fileUrl }}</summary>
+        <pre class="line-numbers">
+    <code class="language-typescript" v-html="code"></code>
+        </pre>
+    </details>
+</template>
+
+<script>
+    import axios from "axios"
+    export default {
+        name: "GitCode",
+        props:{
+            project: {
+                type: String,
+                default: '/web/persagy-web'
+            },
+            raw: {
+                type: String,
+                default: '/raw/master'
+            },
+            fileUrl: {
+                type: String,
+                default: '/persagy-web-big/src/items/SIconTextItem.ts'
+            },
+            type: {
+                type: String,
+                default: 'typescript'
+            }
+        },
+        data(){
+            return{
+                baseUrl: '/git',
+                username: 'lbsl',
+                password: '20200829',
+                code:''
+            }
+        },
+        created() {
+            this.init()
+        },
+        computed:{
+          requestUrl(){
+              return this.baseUrl + this.project + this.raw + this.fileUrl;
+          }
+        },
+        methods: {
+            init(){
+                axios({
+                    method: "get",
+                    url: this.requestUrl,
+                    headers: {
+                        'Authorization': "Basic " + btoa(this.username + ":" + this.password)
+                    }
+                }).then(res => {
+                    this.code = res.data;
+                    this.$nextTick(()=>{
+                        document.querySelectorAll("pre code").forEach(block => {
+                            Prism.highlightElement(block)
+                        });
+                    });
+                })
+            }
+        }
+    }
+</script>
+
+<style scoped>
+
+</style>

+ 13 - 1
docs/.vuepress/config.js

@@ -36,7 +36,7 @@ module.exports = {
         lineNumbers: true
     },
     themeConfig: {
-        logo: "/assets/img/logos.png",
+        logo: "/assets/img/logo.png",
         nav: [
             {text: "首页", link: "/"},
             {
@@ -142,5 +142,17 @@ module.exports = {
             "/dev/data-center-scheme/" : dataCenterScheme,
             "/dev/lib/" : libContent,
         }
+    },
+    devServer :{
+        proxy: {
+            '/git': {
+                target: 'http://39.106.8.246:3003',
+                changeOrigin: true,
+                secure: false,
+                pathRewrite: {
+                    '^/git': '',
+                },
+            }
+        }
     }
 };

+ 2 - 1
docs/.vuepress/enhanceApp.js

@@ -4,5 +4,6 @@
 import Vue from 'vue'
 import Element from 'element-ui'
 import 'element-ui/lib/theme-chalk/index.css'
-
+import './public/plugin/prism.css'
+import './public/plugin/prism'
 Vue.use(Element);

二进制
docs/.vuepress/public/assets/img/logo.png


二进制
docs/.vuepress/public/assets/img/logos.png


+ 299 - 0
docs/.vuepress/public/plugin/prism.css

@@ -0,0 +1,299 @@
+/* PrismJS 1.21.0
+https://prismjs.com/download.html#themes=prism-okaidia&languages=markup+clike+bash+bison+c+csharp+cpp+cmake+git+groovy+ini+java+json+json5+kotlin+nginx+plsql+powershell+python+regex+scala+shell-session+sql+vim+xml-doc+yaml&plugins=line-highlight+line-numbers+show-language+highlight-keywords+toolbar */
+/**
+ * okaidia theme for JavaScript, CSS and HTML
+ * Loosely based on Monokai textmate theme by http://www.monokai.nl/
+ * @author ocodia
+ */
+
+code[class*="language-"],
+pre[class*="language-"] {
+	color: #f8f8f2;
+	background: none;
+	text-shadow: 0 1px rgba(0, 0, 0, 0.3);
+	font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
+	font-size: 1em;
+	text-align: left;
+	white-space: pre;
+	word-spacing: normal;
+	word-break: normal;
+	word-wrap: normal;
+	line-height: 1.5;
+
+	-moz-tab-size: 4;
+	-o-tab-size: 4;
+	tab-size: 4;
+
+	-webkit-hyphens: none;
+	-moz-hyphens: none;
+	-ms-hyphens: none;
+	hyphens: none;
+}
+
+/* Code blocks */
+pre[class*="language-"] {
+	padding: 1em;
+	margin: .5em 0;
+	overflow: auto;
+	border-radius: 0.3em;
+}
+
+:not(pre) > code[class*="language-"],
+pre[class*="language-"] {
+	background: #272822;
+}
+
+/* Inline code */
+:not(pre) > code[class*="language-"] {
+	padding: .1em;
+	border-radius: .3em;
+	white-space: normal;
+}
+
+.token.comment,
+.token.prolog,
+.token.doctype,
+.token.cdata {
+	color: #8292a2;
+}
+
+.token.punctuation {
+	color: #f8f8f2;
+}
+
+.token.namespace {
+	opacity: .7;
+}
+
+.token.property,
+.token.tag,
+.token.constant,
+.token.symbol,
+.token.deleted {
+	color: #f92672;
+}
+
+.token.boolean,
+.token.number {
+	color: #ae81ff;
+}
+
+.token.selector,
+.token.attr-name,
+.token.string,
+.token.char,
+.token.builtin,
+.token.inserted {
+	color: #a6e22e;
+}
+
+.token.operator,
+.token.entity,
+.token.url,
+.language-css .token.string,
+.style .token.string,
+.token.variable {
+	color: #f8f8f2;
+}
+
+.token.atrule,
+.token.attr-value,
+.token.function,
+.token.class-name {
+	color: #e6db74;
+}
+
+.token.keyword {
+	color: #66d9ef;
+}
+
+.token.regex,
+.token.important {
+	color: #fd971f;
+}
+
+.token.important,
+.token.bold {
+	font-weight: bold;
+}
+.token.italic {
+	font-style: italic;
+}
+
+.token.entity {
+	cursor: help;
+}
+
+pre[data-line] {
+	position: relative;
+	padding: 1em 0 1em 3em;
+}
+
+.line-highlight {
+	position: absolute;
+	left: 0;
+	right: 0;
+	padding: inherit 0;
+	margin-top: 1em; /* Same as .prism’s padding-top */
+
+	background: hsla(24, 20%, 50%,.08);
+	background: linear-gradient(to right, hsla(24, 20%, 50%,.1) 70%, hsla(24, 20%, 50%,0));
+
+	pointer-events: none;
+
+	line-height: inherit;
+	white-space: pre;
+}
+
+	.line-highlight:before,
+	.line-highlight[data-end]:after {
+		content: attr(data-start);
+		position: absolute;
+		top: .4em;
+		left: .6em;
+		min-width: 1em;
+		padding: 0 .5em;
+		background-color: hsla(24, 20%, 50%,.4);
+		color: hsl(24, 20%, 95%);
+		font: bold 65%/1.5 sans-serif;
+		text-align: center;
+		vertical-align: .3em;
+		border-radius: 999px;
+		text-shadow: none;
+		box-shadow: 0 1px white;
+	}
+
+	.line-highlight[data-end]:after {
+		content: attr(data-end);
+		top: auto;
+		bottom: .4em;
+	}
+
+.line-numbers .line-highlight:before,
+.line-numbers .line-highlight:after {
+	content: none;
+}
+
+pre[id].linkable-line-numbers span.line-numbers-rows {
+	pointer-events: all;
+}
+pre[id].linkable-line-numbers span.line-numbers-rows > span:before {
+	cursor: pointer;
+}
+pre[id].linkable-line-numbers span.line-numbers-rows > span:hover:before {
+	background-color: rgba(128, 128, 128, .2);
+}
+
+pre[class*="language-"].line-numbers {
+	position: relative;
+	padding-left: 3.8em !important;
+	counter-reset: linenumber;
+}
+
+pre[class*="language-"].line-numbers > code {
+	position: relative;
+	white-space: inherit;
+}
+
+.line-numbers .line-numbers-rows {
+	position: absolute;
+	pointer-events: none;
+	top: 0;
+	font-size: 100%;
+	left: -3.8em;
+	width: 3em; /* works for line-numbers below 1000 lines */
+	letter-spacing: -1px;
+	border-right: 1px solid #999;
+
+	-webkit-user-select: none;
+	-moz-user-select: none;
+	-ms-user-select: none;
+	user-select: none;
+
+}
+
+	.line-numbers-rows > span {
+		display: block;
+		counter-increment: linenumber;
+	}
+
+		.line-numbers-rows > span:before {
+			content: counter(linenumber);
+			color: #999;
+			display: block;
+			padding-right: 0.8em;
+			text-align: right;
+		}
+
+div.code-toolbar {
+	position: relative;
+}
+
+div.code-toolbar > .toolbar {
+	position: absolute;
+	top: .3em;
+	right: .2em;
+	transition: opacity 0.3s ease-in-out;
+	opacity: 0;
+}
+
+div.code-toolbar:hover > .toolbar {
+	opacity: 1;
+}
+
+/* Separate line b/c rules are thrown out if selector is invalid.
+   IE11 and old Edge versions don't support :focus-within. */
+div.code-toolbar:focus-within > .toolbar {
+	opacity: 1;
+}
+
+div.code-toolbar > .toolbar .toolbar-item {
+	display: inline-block;
+}
+
+div.code-toolbar > .toolbar a {
+	cursor: pointer;
+}
+
+div.code-toolbar > .toolbar button {
+	background: none;
+	border: 0;
+	color: inherit;
+	font: inherit;
+	line-height: normal;
+	overflow: visible;
+	padding: 0;
+	-webkit-user-select: none; /* for button */
+	-moz-user-select: none;
+	-ms-user-select: none;
+}
+
+div.code-toolbar > .toolbar a,
+div.code-toolbar > .toolbar button,
+div.code-toolbar > .toolbar span {
+	color: #bbb;
+	font-size: .8em;
+	padding: 0 .5em;
+	background: #f5f2f0;
+	background: rgba(224, 224, 224, 0.2);
+	box-shadow: 0 2px 0 0 rgba(0,0,0,0.2);
+	border-radius: .5em;
+}
+
+div.code-toolbar > .toolbar a:hover,
+div.code-toolbar > .toolbar a:focus,
+div.code-toolbar > .toolbar button:hover,
+div.code-toolbar > .toolbar button:focus,
+div.code-toolbar > .toolbar span:hover,
+div.code-toolbar > .toolbar span:focus {
+	color: inherit;
+	text-decoration: none;
+}
+
+/**
+*  覆盖
+*/
+
+.custom-code pre, .custom-code pre[class*="language-"] {
+	line-height: 1 !important;
+}

文件差异内容过多而无法显示
+ 34 - 0
docs/.vuepress/public/plugin/prism.js


+ 3 - 3
docs/README.md

@@ -1,12 +1,12 @@
 ---
 home: true
 heroImage: /assets/img/logo.png
-heroText: 上格云
-tagline: 上格云数字化交付开发文档
+heroText: 博锐尚格
+tagline: 博锐尚格数字化交付开发文档
 actionText: 快速上手 →
 actionLink: /zh/guide/
 
-footer: MIT Licensed | Copyright © 2016-present 北京上格云技术有限公司
+footer: MIT Licensed | Copyright © 2009-present 北京博锐尚格科技有限公司
 ---
 
 # 参考文档

+ 2 - 0
docs/dev/data-center/code/README.md

@@ -1 +1,3 @@
 # 代码说明
+
+<GitCode />

+ 169 - 8
docs/setup/dev/idea.md

@@ -87,7 +87,7 @@ UTF-8 解决中文乱码,面向国际化 , 防止字符集不一样导致出
          i888888N'      I888Y          ]88;/EX*IFKFK88X  K8R  .l8W  88Y  ~88}'88E&%8W.X8N``]88!.$8K  .:W8I
        .i888888N;        I8Y          .&8$  .X88!  i881.:%888>I88  ;88]  +88+.';;;;:.Y88X  18N.,88l  .+88/
      .:R888888I
-     .&888888I                                          Copyright (c) 2016-$today.year.  博锐尚格科技股份有限公司
+     .&888888I                                          Copyright (c) 2009-$today.year.  博锐尚格科技股份有限公司
        ~8888'
        .!88~                                                                     All rights reserved.
 
@@ -126,11 +126,172 @@ UTF-8 解决中文乱码,面向国际化 , 防止字符集不一样导致出
 
 点击右侧 Gradle 在浮动窗口中点击刷新图标进行项目构建。
 
-## 项目创建过程
+## 项目创建
+当一个新项目刚开始立项时或想要写一个测试 demo 时,我们需要建立一个新项目,那么问题来了,我们要使用哪种编译器,当然这里介绍的是 idea ,既然使用 idea 要选择哪种构建工具那,maven 或 Gradle
+可能需要看个人习惯,或者团队开发规范,或者公司制定的开发规范手册,由于我们团队使用的 Gradle 所以使用 Gradle 来完成项目的构建,至于 maven 和 Gradle 对比就不在陈述了。idea 创建项目需要填写
+域名,对开发而言就是我们经常说的包名,这个也要看团队或者公司的规范,一般都是用公司的域名来做包名,如果你是随便做一个测试 demo 可以随意,或你的公司团队没有要求那就看个人了。例如我们公司的域名
+com.persagy.server 因为我要创建的是后端项目所以域名后面使用的是 server, 还有开发语言的选择,这个不是必须的,可以建好项目后再决定你的开发语言,在这里我们以 kotlin 为例,因为我们团队是使用 kotlin 开发的,
+至于 kotlin 优缺点,这里就不做陈述了,准备工作做好了,我们开始创建项目之旅吧。
+
+* 打开 idea 创建项目有两个路径可以打开建立项目页面, 1.已经打开别的项目了 2.没有打开过任何项目,或  点击 Close Project 关闭了项目,重新打卡 idea
+
+    * 从以打开的项目处创建新项目
+    
+    ![创建项目 idea](./img/idea-project_001.jpg)
+
+    在以打开的项目上方菜单点击 File ,然后鼠标移到弹出的菜单第一项 new 的位置会弹出下一级菜单,第一项 Project 就是创建项目,点击 Project 会弹出创建项目页面
+    
+    * 没有打开任何项目的记录或上一次点击了 Close Project 关了项目 重新打开 idea,页面如下
+    
+    ![创建项目 idea](./img/idea-project_002.jpg)
+    
+    在上面的窗口中点击 Create New Project 就会弹出创建项目页面
+
+* 创建页中选择构建工具,开发使用的语言基础配置
+
+    ![创建项目 idea](./img/idea-project_003.jpg)
+    
+    在创建页面选择 Gradle 构建工具,右侧上方,选择需要使用的 SDK,这里使用的是 Java 1.8 ,看自己的需求选择使用的 SDK,Frameworks 层选择 kotlin 这里没有什么争议的看自己使用的语言,使用Java 可以勾选 Java 或者勾选多个都是可以的,然后点击 next 下一步,进行下一页面操作
+    
+* 项目信息页,填写项目名称,域名也就是包名
+
+    ![创建项目 idea](./img/idea-project_004.jpg)
+    
+    * Name 填写项目名称,格局项目的职责命名,这个没有要求,随意即可。
+    * Location 新建的项目存放地址,根据自己的项目存放磁盘选择自己的项目路径。
+    * GroupId 组id,也就是上面我们提到的域名或包名,例子中填写的 com.persagy.server。
+
+ 上面的三条是新建项目必须确认的,其他的不用考虑,点击 Finish 完成项目创建,如下图:
+ 
+ ![创建项目 idea](./img/idea-project_005.jpg)
+ 
+### 添加 Module 模块
+上面我们完成了新项目的创建,但只是创建了一个基础的项目的壳在 IDEA 中项目可以集中管理,创建一个项目主项目,把其他的项目创建为主项目的 Module 模块,虽然添加多少个模块没有限制,还是要让我们视觉能过得去,添加多少看自己
+我们会把业务相关的模块统一放在一个项目中管理,如果你的项目不多,也不用例会业务是否相关只是为了方便,可能有人问我每个项目都单独管理不行吗?,可以的看个人习惯,也看公司或团队开发规范,视情况而定,可能项目多了会比较麻烦,查看多个项目需要打开多个 idea ,下面我们开始添加 Module 模块之旅吧。
+
+![创建项目 idea](./img/idea-module_001.jpg)
+
+在右侧选择项目文件夹,然后点击右键弹出菜单,鼠标移动至 new 的位置会弹出下一级菜单,第一项 Module... 点击它就开始了我们添加 Module 模块之旅了
+
+![创建项目 idea](./img/idea-module_003.jpg)
+
+这里和创建项目的时候是一样的,选择构建工具,右侧上方选择 SDK ,这里我选择的是 java 1.8,然后选择 Kotlin/Jvm 因为我们团队使用的kotlin,这里根据自己的需求来选择,然后点击 next 进行下一步,会切换到下一级页面
+
+![创建项目 idea](./img/idea-module_004.jpg)
+
+图中的需要根据具体的要求填写一些相关信息,和创建项目时候也是类似的
+
+        * Parent 这里指向的是父级别的项目, 选择了我们创建的 datacenter,根据自己创建的项目来选择,如果你创建的项目名和我的是不一样的,这里有非要和我选择一样的,你是找不到的,注意哦。
+        * Name Module 模块的名字,这个没有什么争议,根据自己的需求来定义,我填写的是 data-center。
+        * Location 和创建项目是一样的显示的是 Module 模块的位置信息,可以自己的路径来选择。
+        * GroupId 组id,同创建项目一样,域名或包名,例子中填写的 com.persagy.server。
+        
+上面的几个条件我们确认完就可以点击Finish 完成 Module 模块的创建,这里只是创建完了 Module 设置参考”关键文件说明“的 settings.gradle 创建完的项目结构如下 。
+
+![创建项目 idea](./img/idea-module_005.jpg)
+
+#### 添加 Module 模块的项目结构
+
+上面我们只是完成了 Module 模块的创建,从结构中可以看出还缺少相应的代码包路径,基本的配置,这里以 Spring boot 项目为例,因为我们使用的 Spring boot,所以... 跟着我的脚步一起来吧。
+添加代码包路径,也是创建项目或 Module 都有提到了域名,示例中使用的包名为 com.persagy.server,鼠标左键选择 kotlin ,因为我们使用的是 kotlin 开发。    
+
+![创建项目 idea](./img/idea-package_001.jpg)
+
+接着上面,点击鼠标右键,在弹出的菜单中把鼠标移到第一项 new 的位置或弹出下一级菜单,然后点击 PackAge 会弹出一个输入框,在里面输入包名 com.persagy.server ,别光顾着看我的,输入你自己的包域名,回车包域名设置完成。
+  
+![创建项目 idea](./img/idea-package_003.jpg)
+  
+![创建项目 idea](./img/idea-package_002.jpg)
+
+在包路径下先建立几个包,例如:实例类包(entities)、控制类包(controllers)、服务类包(services)
+
+![创建项目 idea](./img/idea-package_004.jpg)
+
+右键直接点击 com.persagy.server,弹出菜单把鼠标移动到第一项 new 后会弹出下一级菜单,点击 PackAge 建立下面的包,注意,如果下面还少吗都没有建,最好建一个空的文件再继续创建包,要不包名会链接重叠
+
+![创建项目 idea](./img/idea-package_005.jpg)
+
+现在可以创建实体类了,controllers 和 services 还不能操作,因为我们还没有集成 spring boot,集成部分查看下面的“添加支持库模块”。
+
+#### 添加程序入口
+一个程序的运行,一定会有一个程序的入口来启动程序,然后执行后续的动作,spring boot 项目一定有一个 main 函数入口,自定义一个类 DataCenterApp 继承自 SpringBootServletInitializer,原因是我们使用的是外部 tomcat 来运行程序,重新 configure() 函数,类的外部要把 main 函数入口添加添加上
+
+![创建项目 idea](./img/idea-module_006.jpg)
+
+::: details 查看代码
+<<< @/docs/setup/dev/src/project/DataCenterApp.kts
+:::
+代码中已经很详细了,对 spring boot 不是很了解的童鞋可以找相关的文章脑补一下,这里不做详细的介绍了,只是简单的集成运行起来一个项目。
+
+#### WebMvcConfigurerAdapter 
+![创建项目 idea](./img/idea-module_007.jpg)
+
+* WebMvcConfigurerAdapter是什么
+  Spring内部的一种配置方式
+  采用JavaBean的形式来代替传统的xml配置文件形式进行针对框架个性化定制
+
+* WebMvcConfigurerAdapter常用的方法
+```metadata json
+
+/** 解决跨域问题 **/
+public void addCorsMappings(CorsRegistry registry) ;
+
+/** 添加拦截器 **/
+void addInterceptors(InterceptorRegistry registry);
+
+/** 这里配置视图解析器 **/
+void configureViewResolvers(ViewResolverRegistry registry);
+
+/** 配置内容裁决的一些选项 **/
+void configureContentNegotiation(ContentNegotiationConfigurer configurer);
+
+/** 视图跳转控制器 **/
+void addViewControllers(ViewControllerRegistry registry);
+
+/** 静态资源处理 **/
+void addResourceHandlers(ResourceHandlerRegistry registry);
+
+/** 默认静态资源处理器 **/
+void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer);
+```
+
+具体的怎么使用,不做过多的说明了,参考相关文档。这里只是简单写了,里面的拦截器,让我们的代码运行即可。
+
+::: details 查看代码
+<<< @/docs/setup/dev/src/project/WebMvcConfg.kt
+:::
+
+#### yml 文件配置
+完成上面的操作还不能正常项目或 module 模块,需要配置 yml 数据库驱动,以及其他的配置,看需求你的项目需要配置什么,yml 里面使用的三方依赖都是在“添加支持库模块” 中添加的操作 yml 一定要确定相关的依赖已经添加,没有添加的可以查看下面的“添加支持库模块”。
+
+![创建项目 idea](./img/idea-module_008.jpg)
+
+在 resources 文件夹下创建 yml 文件,从上图中会发现我创建了两个, 一个 application.yml 一个 application-dev.yml,创建多个的的目的是要把共有的属性配置放在 application.yml 文件中,个别的配置放在了 application-dev.yml
+来个栗子吧,我们有开发环境就会用生产环境,我们不能保证开发环境和生产环境使用的而一定是一套服务器环境,如果你的环境没有区分可以不用考虑,因为在我的需求中还需要针对不同的客户单独部署,客户方的私有环境,所以我一定要区分开配置
+,生产环境 application-prod.yml,如果需要部署某个集团或公司的私有环境把 prod 修改为他们的标识或名称就可以了。
+
+* application.yml 公共属性
+::: details 查看代码
+<<< @/docs/setup/dev/src/project/application.yml
+:::
+
+* application-dev.yml 开发环境属性
+::: details 查看代码
+<<< @/docs/setup/dev/src/project/application-dev.yml
+:::
+
+
+
+#### 添加支持库模块
+首相我们来分析一下为什么要添加支持库,目前 data-center 模块中 只有基本的 java JDK 的支持,我们想要使用 spring boot 框架,数据库管理框架,都需要通过构建工具把他们添加到 data-denter 模块中,以及一些辅助的依赖包,由于我们使用的是  gradle ,需要把相关的引用添加到 data-denter 下的 build.gradle  文件中
+::: details 查看代码
+<<< @/docs/setup/dev/src/project/build1.gradle
+:::
+
+::: warning 注意 
+每个依赖都有版本号,对应的版本号在 gradle.properties 属性配置文件中,请参考 gradle.properties,添加类对应的包引用,有可能下载不下来,毕竟是有限制的,参考 build.gradle 整体项目的构建文件添加了阿里的镜像已经公司内部的数据库底层框架地址。
+:::
 
-### 创建项目
-### 添加 APP 模块
-### 添加支持库模块
 
 ## 关键文件说明
 ### git 忽略文件
@@ -138,15 +299,15 @@ UTF-8 解决中文乱码,面向国际化 , 防止字符集不一样导致出
 <<< @/docs/setup/dev/src/project/gitignore
 :::
 
-### build.gradle 
-build.gradle 是项目的构建文件
+### build.gradle 整体项目的构建文件
+build.gradle 是项目的构建文件,里面有阿里的镜像地址,kotlin 构建地址,内部框架支持库地址设置,请点击查看代码
 
 ::: details 查看代码
 <<< @/docs/setup/dev/src/project/build.gradle
 :::
 
 ### settings.gradle 项目设置文件
-settings.gradle 是多项目配置文件
+在添加 Module 模块中有提到配置 settings.gradle ,因为创建完的 Module 项目并没有识别到需要在下面的文件中添加 Module 配置,有多少个 Module 就应该写多少条配置,这样 Module 才能被项目识别到,正常的加载运行
 
 ::: details 查看代码
 <<< @/docs/setup/dev/src/project/settings.gradle

二进制
docs/setup/dev/img/idea-module_001.jpg


二进制
docs/setup/dev/img/idea-module_002.jpg


二进制
docs/setup/dev/img/idea-module_003.jpg


二进制
docs/setup/dev/img/idea-module_004.jpg


二进制
docs/setup/dev/img/idea-module_005.jpg


二进制
docs/setup/dev/img/idea-module_006.jpg


二进制
docs/setup/dev/img/idea-module_007.jpg


二进制
docs/setup/dev/img/idea-module_008.jpg


二进制
docs/setup/dev/img/idea-package_001.jpg


二进制
docs/setup/dev/img/idea-package_002.jpg


二进制
docs/setup/dev/img/idea-package_003.jpg


二进制
docs/setup/dev/img/idea-package_004.jpg


二进制
docs/setup/dev/img/idea-package_005.jpg


二进制
docs/setup/dev/img/idea-project_001.jpg


二进制
docs/setup/dev/img/idea-project_002.jpg


二进制
docs/setup/dev/img/idea-project_003.jpg


二进制
docs/setup/dev/img/idea-project_004.jpg


二进制
docs/setup/dev/img/idea-project_005.jpg


+ 49 - 0
docs/setup/dev/src/project/DataCenterApp.kts

@@ -0,0 +1,49 @@
+
+package com.persagy.server
+
+import com.sybotan.service.json.SJsonHttpMessageConverter
+import org.mybatis.spring.annotation.MapperScan
+import org.slf4j.LoggerFactory
+import org.springframework.boot.SpringApplication
+import org.springframework.boot.autoconfigure.SpringBootApplication
+import org.springframework.boot.builder.SpringApplicationBuilder
+import org.springframework.boot.web.servlet.support.SpringBootServletInitializer
+import org.springframework.context.annotation.Bean
+import org.springframework.context.annotation.ComponentScan
+import org.springframework.scheduling.annotation.EnableScheduling
+
+/**
+ * 应用配置
+ *
+ * @author  Andy
+ */
+@ComponentScan(basePackages = ["com.persagy.server", "com.persagy"])    // 配置组件扫描路径 需要扫描的路径列表
+@MapperScan("com.persagy", "com.persagy.server")                       // Mapper组件扫描路径 需要扫描的路径列表
+@SpringBootApplication // 生命启动类
+@EnableScheduling      // 项目中可以使用定时任务
+open class DataCenterApp : SpringBootServletInitializer() {
+    companion object {
+        // 日志
+        private val logger = LoggerFactory.getLogger(DataCenterApp::class.java)
+    } // Companion object
+
+    /**
+     * 配置应用
+     *
+     * @param   application     应用构建对象
+     */
+    override fun configure(application: SpringApplicationBuilder): SpringApplicationBuilder {
+        return application.sources(DataCenterApp::class.java)
+    } // Function configure
+
+} // Class Application
+
+/**
+ * Web应用入口
+ *
+ * @param   args        命令行参数
+ */
+fun main(args: Array<String>) {
+    SpringApplication.run(DataCenterApp::class.java, *args)
+    return
+} // Function main()

+ 22 - 0
docs/setup/dev/src/project/WebMvcConfg.kt

@@ -0,0 +1,22 @@
+
+package com.persagy.server
+
+import com.sybotan.service.interceptors.SPageInterceptor
+import org.springframework.context.annotation.Configuration
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter
+
+@Suppress("DEPRECATION")
+@Configuration
+open class WebMvcConfg: WebMvcConfigurerAdapter() {
+
+    /**
+     * 配置拦截器
+     *
+     * @param   registry        拦截器注册器
+     */
+    override fun addInterceptors(registry : InterceptorRegistry) {
+        registry.addInterceptor(SPageInterceptor()).addPathPatterns("/**")
+        super.addInterceptors(registry)
+    } // Function addInterceptors()
+} // Class WebMvcConf()

+ 19 - 0
docs/setup/dev/src/project/application-dev.yml

@@ -0,0 +1,19 @@
+
+server:
+  port: 8080
+
+spring:
+  datasource:
+    name:                               revit-algorithm
+    type:                               com.alibaba.druid.pool.DruidDataSource
+    driver-class-name:                  org.postgresql.Driver
+    url:                                jdbc:postgresql://192.168.0.190:5432/datacenter
+    username:                           postgres
+    password:                           123qwe!@#
+
+  servlet:
+    multipart:
+      max-request-size:                500MB        # 限制上传的多个文件的总大小
+      max-file-size:                   500MB        # 限制单个文件的最大值
+
+

+ 24 - 0
docs/setup/dev/src/project/application.yml

@@ -0,0 +1,24 @@
+
+server:
+#  本地运行端口号
+  port: 8080
+
+spring:
+  application:
+    name:                               datacenter
+
+  mvc:
+    favicon:
+      enabled:                          true
+
+  jmx:
+    default-domain:                     datacenter
+
+  datasource:
+    name:                               datacenter
+    type:                               com.alibaba.druid.pool.DruidDataSource
+    driver-class-name:                  org.postgresql.Driver
+
+# mybatis 读取实体类的路径
+mybatis:
+  typeAliasesPackage:                   cn.sagacloud.server.datacenter.entities

+ 76 - 0
docs/setup/dev/src/project/build1.gradle

@@ -0,0 +1,76 @@
+
+group rootProject.group
+version rootProject.version
+
+apply plugin: "kotlin"
+apply plugin: "org.jetbrains.dokka"
+apply plugin: "war"
+apply plugin: 'org.springframework.boot'
+apply plugin: 'io.spring.dependency-management'
+
+sourceCompatibility = JVM_TARGET
+
+compileKotlin {
+    kotlinOptions.jvmTarget = JVM_TARGET
+}
+compileTestKotlin {
+    kotlinOptions.jvmTarget = JVM_TARGET
+}
+
+dependencies {
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+    // kotlin 依赖
+    compile group: "org.jetbrains.kotlin", name: "kotlin-stdlib-jdk8", version: KOTLIN_VERSION
+    compile group: "org.jetbrains.kotlin", name: "kotlin-reflect", version: KOTLIN_VERSION
+
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+    // 页面
+    compile group: "org.springframework.boot", name: "spring-boot-starter-freemarker", version: SPRING_BOOT_VERSION
+    // spring boot 依赖
+    compile group: "org.springframework.boot", name: "spring-boot-starter-web", version: SPRING_BOOT_VERSION
+    compile group: "org.springframework.boot", name: "spring-boot-configuration-processor", version: SPRING_BOOT_VERSION
+    compile group: "org.springframework.boot", name: "spring-boot-starter-actuator", version: SPRING_BOOT_VERSION
+    compile group: "org.springframework.boot", name: "spring-boot-starter-logging", version: SPRING_BOOT_VERSION
+    //消息
+    compile group: "org.springframework.boot", name: "spring-boot-starter-activemq", version: SPRING_BOOT_VERSION
+    providedCompile group: "org.springframework.boot", name:"spring-boot-starter-tomcat", version: SPRING_BOOT_VERSION
+    // spring boot 缓存
+    compile group:"org.springframework.boot", name:"spring-boot-starter-cache", version: SPRING_BOOT_VERSION
+
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+    // spring cloud 依赖
+    compile group: 'org.springframework.cloud', name: 'spring-cloud-starter-eureka', version: SPRING_CLOUD_VERSION
+
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+    // RESTful API 文档生成工具
+    // https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui
+    compile group: "io.springfox", name: "springfox-swagger-ui", version: SWAGGER_VERSION
+    compile group: "io.springfox", name: "springfox-swagger2", version: SWAGGER_VERSION
+
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+    compile group: "cn.sagacloud", name: "saga-kotlin-base", version: SAGA_KOTLIN_VERSION
+    compile group: "cn.sagacloud", name: "saga-kotlin-database", version: SAGA_KOTLIN_VERSION
+    compile group: "cn.sagacloud", name: "saga-kotlin-mybatis", version: SAGA_KOTLIN_VERSION
+    compile group: "cn.sagacloud", name: "saga-kotlin-postgresql", version: SAGA_KOTLIN_VERSION
+    compile group: "cn.sagacloud", name: "saga-service-base", version: SAGA_SERVICE_VERSION
+    compile group: "cn.sagacloud", name: "saga-service-mybatis", version: SAGA_SERVICE_VERSION
+
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+    // Excel操作
+    // https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml
+    compile group: 'org.apache.poi', name: 'poi-ooxml', version: POI_VERSION
+    // kafka
+//    compile group: 'com.sybotan',   name: 'sybotan-service-kafka',       version: SYBOTAN_SERVICE_VERSION
+    //文档
+    compile group: 'cn.sagacloud',   name: 'saga-service-postgresql', version: SAGA_SERVICE_VERSION
+
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+}
+
+dependencyManagement {
+    imports {
+        mavenBom "org.springframework.cloud:spring-cloud-dependencies:${SPRING_CLOUD_DEPENDENCIES}"
+    }
+}
+

+ 1 - 1
docs/setup/dev/src/project/settings.gradle

@@ -1,6 +1,6 @@
 
 rootProject.name = 'datacenter'
 
-include 'data-core'             // 数据中心- 数据定义
+include 'data-center'             // 数据中心
 
  

+ 2 - 0
docs/setup/server/centos/server/postgresql.md

@@ -51,6 +51,7 @@ postgres-# \q
 ![PostgreSQL远程连接配置](./img/postgresql_001.png)
 
 打开并编辑文件“/var/lib/pgsql/12/data/pg_hba.conf”。在文件的末尾添加“host  all  all  0.0.0.0/0  md5”。
+
 ![PostgreSQL远程连接配置](./img/postgresql_002.png)
 
 ### 安装Python3支持包
@@ -101,6 +102,7 @@ tar -xzvf pg12_rpm_packs.tar.gz
  rpm -ivh postgresql12-contrib-12.3-1PGDG.rhel7.x86_64.rpm
 ```
 安装成功事例图 安装顺序错乱会看到提示需要先安装哪个依赖
+
 ![requirements.txt](./img/pg_0002.png)
 
 ###初始化数据库 配置请参考在线安装,操作是一样的