<venus>第一章 dubbo整合nacos搭建项目基本结构

路漫漫其修远兮,吾将上下而求索

这个商城项目正式开始了,我把这个项目叫启明星(venus),本周开始我每周都会集成一个小功能到项目中,日常会用到的spring-cloud和spring-boot的各类组件,还有一个商城项目应该有的各类接口,包括移动端甚至小程序,相关的方法还有这些年积攒的经验我都会记下来,感兴趣的朋友可以关注后续内容哦。

本节所有代码可以在gitlab上获取,地址:

https://gitlab.com/Flnn/venus.git


一、使用的主要框架以及版本

1. spring-cloud-alibaba 2.2.3.RELEASE

2. spring-cloud Hoxton.SR8

3. dubbo 2.7.8

4. spring-boot 2.2.10.RELEASE

二、注册中心

nacos作为注册中心,我这里就简单使用单节点模式启动了,下载好以后解压,进入bin目录,执行制定的启动命令即可。

nacos官网链接:nacos

下载链接:nacos下载

操作系统不同执行的命令也不一样,windows是:

startup.cmd -m standalone

linux和Mac是:

sh startup.sh -m standalone

非生产环境nacos启动单机模式也就可以了,但是生产上千万不要这样,出于健壮性考虑,生产环境需要配置集群模式。

三、目录结构划分


1、后端的java项目可以简单的分为两类,一类是服务提供者项目,例如venus-product,venus-user,venus-order; 一类是服务消费者项目,例如venus-webapp;dubbo的服务提供者,可以理解为一个个的service项目,而消费者,则是一个个的web-api项目。这样相当于controller和service拆分,两个都可以独立扩展。

2、对于服务提供者,一个项目又包含了5个子项目,每一个项目的含义如下:


这应该是很细的拆分了,消费者或者其他service需要引用本项目的资源的时候,只需要将model和service接口层加入依赖即可。

几个要点

1、spring-boot的项目为什么没有继承spring-boot-parent??

其实继承spring-boot-parent并不是必选的,换一种方式可以达到一样的目的,本项目通过idea建立的时候,因为要规划三个层级的结构,所以只能使用maven最简单的骨架来创建项目,想要让项目达到一样的效果,可以在父项目pom文件中加入以下内容:    

<dependencyManagement>

<dependencies>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-dependencies</artifactId>

<version>${spring.boot.version}</version>

<type>pom</type>

<scope>import</scope>

</dependency>

</dependencies>

</dependencyManagement>

2、配置profiles

profiles在maven项目的pom文件中定义,然后在application.properties配置的时候使用pom.xml中定义的变量,然后在idea中就可以勾选某个profiles激活。如下图:左边定义profile,右边勾选。


3、日志logback

    spring-boot项目中默认的是logback,本身性能足够优秀,我也就直接使用它了,定义logback的配置文件logback-spring.xml。而我因为可能在windows和Mac上编码,两边日记存储目录不一样,我就使用profile专门做了一个mac的(其实启动的时候加上一个jvm参数制定一下日志文件路径也可以,但是我最不喜欢启动时加jvm参数,所以...)。

    日志配置没什么花头,网上可参考的也很多,具体配置就不赘述了,不过这里面倒是有一个地方值得细讲一下,那就是彩虹日志。不知道大家有没有注意过,如果你没有指定日志配置文件,你的spring-boot项目启动时打印在控制台的日志格式非常好看,还带了不同颜色来区分内容。像下面这样:


这种日志格式看着也舒服啊。怎么实现的呢?

首先在application.properties中加入一行配置:

spring.output.ansi.enabled=always

然后在日志配置文件logback-spring.xml中定义格式,spring-boot内置的输出格式可以直接引入进来。

注意控制太输出格式是${CONSOLE_LOG_PATTERN} ,而输出到文件中的格式是${FILE_LOG_PATTERN},我之前因为文件输出格式也配置了console_log_pattern结果发现文件打开里面会有很多乱码存在,因为这个问题排查了半天。


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,265评论 6 490
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,078评论 2 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,852评论 0 347
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,408评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,445评论 5 384
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,772评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,921评论 3 406
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,688评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,130评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,467评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,617评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,276评论 4 329
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,882评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,740评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,967评论 1 265
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,315评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,486评论 2 348