(window.webpackJsonp=window.webpackJsonp||[]).push([[23],{307:function(t,a,s){"use strict";s.r(a);var e=s(10),n=Object(e.a)({},(function(){var t=this,a=t._self._c;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"本地开发"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#本地开发"}},[t._v("#")]),t._v(" 本地开发")]),t._v(" "),a("h2",{attrs:{id:"一、-环境准备"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#一、-环境准备"}},[t._v("#")]),t._v(" 一、 环境准备")]),t._v(" "),a("ul",[a("li",[t._v("先在任意机器部署一套完成的环境(包含：MySQL、Redis、Nacos、应用等所有中间件和应用)，保证开发人员和该环境在同一局域网内")])]),t._v(" "),a("h3",{attrs:{id:"_1-登录nacos管理后台"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#_1-登录nacos管理后台"}},[t._v("#")]),t._v(" 1. 登录Nacos管理后台")]),t._v(" "),a("p",[t._v("默认地址："),a("a",{attrs:{href:"http://localhost:8848/nacos",target:"_blank",rel:"noopener noreferrer"}},[t._v("http://localhost:8848/nacos"),a("OutboundLink")],1),t._v(" 默认账号密码：nacos/nacos")]),t._v(" "),a("h3",{attrs:{id:"_2-创建应用命名空间"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#_2-创建应用命名空间"}},[t._v("#")]),t._v(" 2. 创建应用命名空间")]),t._v(" "),a("img",{attrs:{src:t.$withBase("/images/develop/nacos.jpg"),alt:"nacos命名空间"}}),t._v(" "),a("blockquote",[a("p",[t._v("特别提醒：命名空间的ID应该设置与名称一致，方便记忆和使用，应用关联的是命名空间ID，不是名称，不是名称，不是名称。")])]),t._v(" "),a("h3",{attrs:{id:"_3-导入配置"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#_3-导入配置"}},[t._v("#")]),t._v(" 3. 导入配置")]),t._v(" "),a("img",{attrs:{src:t.$withBase("/images/develop/nacos-config.jpg"),alt:"nacos配置"}}),t._v(" "),a("blockquote",[a("p",[t._v("导入之后需要修改对应的配置，例如数据库账号密码")])]),t._v(" "),a("h2",{attrs:{id:"二、-应用运行"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#二、-应用运行"}},[t._v("#")]),t._v(" 二、 应用运行")]),t._v(" "),a("h3",{attrs:{id:"_1-导入后端项目"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#_1-导入后端项目"}},[t._v("#")]),t._v(" 1.导入后端项目")]),t._v(" "),a("p",[t._v("自行操作即可")]),t._v(" "),a("h3",{attrs:{id:"_2-修改配置"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#_2-修改配置"}},[t._v("#")]),t._v(" 2. 修改配置")]),t._v(" "),a("img",{attrs:{src:t.$withBase("/images/develop/roncoo-education.jpg"),alt:"项目配置"}}),t._v(" "),a("blockquote",[a("p",[t._v("以roncoo-education-app-gateway为例，其他项目同理")])]),t._v(" "),a("h3",{attrs:{id:"_3-启动项目"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#_3-启动项目"}},[t._v("#")]),t._v(" 3. 启动项目")]),t._v(" "),a("img",{attrs:{src:t.$withBase("/images/develop/roncoo-education-gateway.jpg"),alt:"项目运行"}}),t._v(" "),a("blockquote",[a("p",[t._v("全部启动完成，可以访问：http://localhost:5840")])]),t._v(" "),a("h3",{attrs:{id:"_4-导入前端项目"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#_4-导入前端项目"}},[t._v("#")]),t._v(" 4. 导入前端项目")]),t._v(" "),a("blockquote",[a("p",[t._v("这里有2个前端项目，分别为：roncoo-education-admin 和 roncoo-education-web")])]),t._v(" "),a("h3",{attrs:{id:"_5-admin项目说明"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#_5-admin项目说明"}},[t._v("#")]),t._v(" 5. admin项目说明")]),t._v(" "),a("img",{attrs:{src:t.$withBase("/images/develop/roncoo-education-admin.jpg"),alt:"项目运行"}}),t._v(" "),a("blockquote",[a("p",[t._v("修改网关地址，直接启动即可：npm run dev (先要安装依赖：npm install)"),a("br"),t._v("\n若要部署到服务器，先要打包：npm run build")])]),t._v(" "),a("h3",{attrs:{id:"_6-web项目说明"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#_6-web项目说明"}},[t._v("#")]),t._v(" 6. web项目说明")]),t._v(" "),a("img",{attrs:{src:t.$withBase("/images/develop/roncoo-education-web.jpg"),alt:"项目运行"}}),t._v(" "),a("blockquote",[a("p",[t._v("修改网关地址，直接启动即可：npm run dev (先要安装依赖：npm install)"),a("br"),t._v("\n若要部署到服务器，需要使用pm2来运行")])]),t._v(" "),a("h2",{attrs:{id:"三、-开发注意"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#三、-开发注意"}},[t._v("#")]),t._v(" 三、 开发注意")]),t._v(" "),a("h3",{attrs:{id:"日志级别"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#日志级别"}},[t._v("#")]),t._v(" 日志级别")]),t._v(" "),a("blockquote",[a("p",[t._v("日志配置文件：roncoo-education-common\\roncoo-education-common-log\\src\\main\\resources\\logback-spring.xml")])]),t._v(" "),a("div",{staticClass:"language-xml extra-class"},[a("pre",{pre:!0,attrs:{class:"language-xml"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("\x3c!-- 指定环境 --\x3e")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("springProfile")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("local,dev,test,et-dev"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n    "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("logger")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("com.roncoo.education"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("level")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("debug"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n    "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("logger")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("org.springframework.jdbc.core.JdbcTemplate"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("level")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("debug"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n    "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("logger")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("name")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("org.springframework.data.mongodb.core.MongoTemplate"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("level")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("debug"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n    "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("root")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("level")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("info"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n        "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("appender-ref")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("ref")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("CONSOLE"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n        "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("<")]),t._v("appender-ref")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token attr-name"}},[t._v("ref")]),a("span",{pre:!0,attrs:{class:"token attr-value"}},[a("span",{pre:!0,attrs:{class:"token punctuation attr-equals"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')]),t._v("FILE"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v('"')])]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("/>")])]),t._v("\n    "),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("root")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token tag"}},[a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("</")]),t._v("springProfile")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(">")])]),t._v("\n\n若spring.profiles.active的值不在上面，增加即可激活该配置项\n")])])]),a("h3",{attrs:{id:"调试技巧"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#调试技巧"}},[t._v("#")]),t._v(" 调试技巧")]),t._v(" "),a("ul",[a("li",[t._v("环境说明")])]),t._v(" "),a("div",{staticClass:"language- extra-class"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[t._v("1. Nacos的命名空间ID为：demo （小技巧：命名空间的ID可以设置与名称一致，方便记忆和使用）\n2. 所有应用里面的bootstrap.properties配置文件对应的：spring.profiles.active=demo\n3. 在roncoo-education/roncoo-education-common/roncoo-education-common-core/src/main/resources/目录下，\n   添加配置文件：application-demo.properties，当spring.profiles.active=demo 会激活该配置文件\n")])])]),a("ul",[a("li",[t._v("application-demo.properties")])]),t._v(" "),a("div",{staticClass:"language-properties extra-class"},[a("pre",{pre:!0,attrs:{class:"language-properties"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("### 默认true, false代表不主动注册到注册中心")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token key attr-name"}},[t._v("spring.cloud.service-registry.auto-registration.enabled")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token value attr-value"}},[t._v("false")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("### spring.cloud.service-registry.auto-registration.enabled=false，应用通过下面配置获取服务地址")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token key attr-name"}},[t._v("spring.cloud.discovery.client.simple.instances.service-1[0].uri")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token value attr-value"}},[t._v("http://192.168.1.10:9810")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token key attr-name"}},[t._v("spring.cloud.discovery.client.simple.instances.service-2[0].uri")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token value attr-value"}},[t._v("http://192.168.1.10:9820")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token key attr-name"}},[t._v("spring.cloud.discovery.client.simple.instances.service-3[0].uri")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token value attr-value"}},[t._v("http://192.168.1.10:9830")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token key attr-name"}},[t._v("spring.cloud.discovery.client.simple.instances.service-4[0].uri")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token value attr-value"}},[t._v("http://192.168.1.10:9840")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token key attr-name"}},[t._v("spring.cloud.discovery.client.simple.instances.service-5[0].uri")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token value attr-value"}},[t._v("http://192.168.1.10:9850")]),t._v("\n")])])]),a("ul",[a("li",[t._v("调试场景")])]),t._v(" "),a("blockquote",[a("p",[t._v("开发人员A，只负责应用1；开发人员B，只负责应用2；开发人员A需要和开发人员B进行联调")])]),t._v(" "),a("ul",[a("li",[t._v("解决方案")])]),t._v(" "),a("blockquote",[a("p",[t._v("开发人员A只需要将application-dev.properties里面的spring.cloud.discovery.client.simple.instances.service-2[0].uri=http://192.168.1.10:9820 将该IP修改为开发人员B本地的IP即可")])]),t._v(" "),a("h3",{attrs:{id:"堆大小设置"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#堆大小设置"}},[t._v("#")]),t._v(" 堆大小设置")]),t._v(" "),a("blockquote",[a("p",[t._v("默认情况下IntelliJ IDEA共享构建过程堆的大小为700m，在编译项目经常不够用可以适当设置大些。共享构建过程堆大小是指在共享或在多个开发者或构建机器之间分发的软件项目的编译和构建过程中分配给堆的内存量。堆是在编程语言如Java、C++和其他语言中用于动态内存分配的内存区域，堆大小决定了在构建过程中能够为对象和数据结构分配的最大内存量。")])]),t._v(" "),a("img",{attrs:{src:t.$withBase("/images/develop/idea.png"),alt:"idea"}})])}),[],!1,null,null,null);a.default=n.exports}}]);