Monthly Archives: February 2021

  • Nacos 1.4.1 启动报错[db-load-error]load jdbc.properties error 以及 db.num is null,Unable to start embedded Tomcat

    原因: nacos1.4.1启动用的是集群模式,集群模式需要有数据库支持,这个时候我们就不能用默认单机形式去启动了 我们在startup.cmd文件中第26行可以看到 启动文件第26行 debug过程: 1.在数据库里面创建nacos数据库,执行conf文件夹下的nacos-mysql.sql写入数据 2.修改配置文件application.properties添加数据库链接信息 application.properties里面修改 3.然后复制一份cluster.conf.example改名为cluster.conf,内容为集群的服务器ip 还有其他方法,把之前的mode改为standalone即可 其他地方不用动

    February 6, 2021 0 0
  • vue前端框架基础总结(一):初始化项目

    目录 1 初始化项目 1 初始化项目 a npm init -y b npm install vue

    February 4, 2021 0 0
  • SpringCloud Alibaba微服务商城项目(十):SpringCloud Alibaba Nacos配置中心

    目录 简单的例子告诉我们如何使用 1.1 导入配置pom依赖到common项目 1.2 以coupon项目为例子加入配置中心bootstrap.properties配置文件 1.3 用nacos配置中心进行配置设置 nacos配置中心的命名空间概念与配置分组 2.1 命名空间 2.2 配置集 2.3 配置集ID 2.4 配置分组 2.5 我们自己项目的配置划分 nacos加载多配置集合 3.1 application.yml拆分 3.2 配置文件集成 3.3 注释掉项目内的application.yml文件然后重启测试 1. 简单的例子告诉我们如何使用 这个例子我们以coupon为例子进行配置测试,因为之前nacos服务软件已经安装完整,我们的nacos服务发现以及nacos配置中心都是基于这个nacos中心进行的,所以我们只需要对项目进行简单的配置即可进行此实例,官方文档地址 https://github.com/alibaba/spring-cloud-alibaba/blob/master/README-zh.md nacos的官方文档 https://nacos.io/zh-cn/docs/quick-start.html 1.1 导入配置pom依赖到common项目 因为每个微服务模块都需要用到配置中心所以我们把配置中心的pom依赖加入到common项目中去 1.2 以coupon项目为例子加入配置中心bootstrap.properties配置文件 **这个配置文件会优先于application.yml执行, **在application.yml里面写入我们自己的配置 **然后我们在couponController里面写测试方法和属性 // 这个注解是直接引用我们配置文件里面的配置项 @Value("${user.title}") private String title; @Value("${user.age}") private Integer age; @RequestMapping("/test") public R test(){ return R.ok().put("title",title).put("age",this.age); } 然后我们访问接口地址成功返回如下结果 1.3 用nacos配置中心进行配置设置 我们之前用的是本身的配置文件进行参数配置但是如果这样的话,若是出现要修改的情况,就需要重新修改然后编译打包,十分不方便所以我们用nacos配置中心进行动态配置 **以下是我们的配置项 **注意我们修改了配置的属性名称(不能直接用user.name) **如果想动态刷新还需要一个注解 结果如下所示 总结如下 a.引入nacos依赖 b.创建一个bootstrap.properties并且配置 c.需要给配置中心默认添加一个 当前应用名字.properties 这样格式的data-id d.然后给这个配置项添加任何配置 e.应用程序加入注解@RefreshScope 并且用@Value("${配置项名字}") 本地和配置中心优先用的是配置中心 2. nacos配置中心的命名空间概念与配置分组 2.1 命名空间 命名空间是用于配置隔离用的,默认的是public这个空间,新增的配置默认都在这个public空间下面 命名空间是用于配置隔离用的,默认的是public这个空间,新增的配置默认都在这个public空间下面 我们实际开发场景有开发环境配置,测试环境配置,和生产环境配置,所以这个需要明确 **我们尝试创建开发环境测试环境和生产环境的命名空间,如下所示 **我们在prod命名空间下面分别创建我们上面用的配置项,但是配置项的值对比public命名空间的配置项的值我们需要区分对待 prod命名空间的配置* public命名空间的配置* 当然我们项目中用的是默认的public命名空间的配置项,如果我们想用prod命名空间的配置项,该怎么办? 不用担心,只需要在bootstrap.properties进行一个简单的修改即可:不用担心,只需要在bootstrap.properties进行一个简单的修改即可: spring.cloud.nacos.config.namespace这个配置就可以定义我们的命名空间,value是我们nacos配置中心命名空间的id值 然后重启项目看一下修改后的效果:…

    February 4, 2021 0 0
  • SpringCloud Alibaba微服务商城项目(九):SpringCloud Alibaba Nacos服务注册中心和Openfeign远程调用测试

    目录 SpringCloud Alibaba Nacos服务注册中心 1.1 项目引入依赖 1.2 安装nacos server并且启动 1.3 在项目中配置nacos端口以及启动类 1.4 查看我们启动的服务是否注册成功 Openfeign远程调用测试例子 2.1 feign调用的模块配置 2.2 被调用的coupon模块,测试方法书写 2.3 调用方的接口方法书写 2.4 测试远程调用 1. SpringCloud Alibaba Nacos服务注册中心 nacos的使用过程中需要我们安装nacos注册中心的软件,然后我们的项目模块需要配置nacos的依赖,同时项目独立的yml需要配置我们nacos软件注册中心对外开放的接口 官方文档地址 https://github.com/alibaba/spring-cloud-alibaba/blob/master/spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/readme-zh.md 1.1 项目引入依赖 我们在common模块里面引入依赖 <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> 1.2 安装nacos server并且启动 下载地址 https://github.com/alibaba/nacos/releases 我们下载1.4.1稳定版本 启动nacos 启动中的问题解析: Nacos 1.4.1 启动报错[db-load-error]load jdbc.properties error 以及 db.num is null,Unable to start embedded Tomcat 1.3 在项目中配置nacos端口以及启动类 **nacos注册中心的端口号是8848,我们的配置如下 **配置启动类 只需要下面标红的注解即可 **然后启动我们的wkkmall-coupon项目 1.4 查看我们启动的服务是否注册成功 我们访问127.0.0.1:8848/nacos,登录用户名密码是nacos nacos 可以看到我们的wkkmall-coupon注册成功了 然后我们吧member模块也注册上去: 2. Openfeign远程调用测试例子 openfeign远程调用的例子我们用member模块与coupon模块做一次模拟,member模块远程调用coupon模块的方法 想要远程调用别的服务要满足下面几个点 a.pom里面要引入openfeign b.编写一个接口然后告诉SpringCloud这个接口需要调用远程服务 2.1 feign调用的模块配置 首先我们明确,想要调用别的模块的模块必须在pom里面引入下面的依赖配置 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> 2.2 被调用的coupon模块,测试方法书写 代码如下所示: @RequestMapping("/memeber/couponlist") public R memberCoupons(){ CouponEntity…

    February 3, 2021 0 0
  • SpringCloud Alibaba微服务商城项目(八):springcloud alibaba和相关组件介绍以及pom依赖引入

    目录 1 介绍一下SpringCloud Alibaba 2 我们使用的SpringCloud Alibaba相关组件 3 common模块配置统一的spring cloud alibaba依赖 1 介绍一下SpringCloud Alibaba 作为阿里的一站式解决方案,SpringCloud Alibaba包含下面的组件解决方案 SpringCloud Alibaba包含下面的组件 Nacos:一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 Sentinel:把流量作为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。 RocketMQ:开源的分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠的消息发布与订阅服务。 Dubbo:这个就不用多说了,在国内应用非常广泛的一款高性能 Java RPC 框架。 Seata:阿里巴巴开源产品,一个易于使用的高性能微服务分布式事务解决方案。 Arthas:开源的Java动态追踪工具,基于字节码增强技术,功能非常强大。 2 我们使用的SpringCloud Alibaba相关组件 结合SpringCloud Alibaba我们项目的最终方案如下 SpringCloud Alibaba Nacos:注册中心和配置中心 SpringCloud Ribbon:负载均衡 SpringCloud Feign:生命是HTTP客户端调用远程服务用 SpringCloud Alibaba Sentinel:服务容错 限流熔断降级 SpringCloud GateWay:API网关 SpringCloud Sleuth:链路追踪 SpringCloud Alibaba Seata:分布式事务 github地址: https://github.com/alibaba/spring-cloud-alibaba/blob/master/README-zh.md springcloud官方文档 https://spring.io/projects/spring-cloud-alibaba 还有一点要注意我们的spring cloud版本是2.1 greenwhich版本 3 common模块配置统一的spring cloud alibaba依赖 <dependencyManagement> <dependencies> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>2.1.0.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> 以上就是我们在common里面的依赖 我们为什么用dependencyManagement? 用这个以后我们在上面的dependencies里面写入 spring boot alibaba的依赖的时候就不需要写版本号了

    February 3, 2021 0 0
  • SpringCloud Alibaba微服务商城项目(七):代码生成器逆向生成所有微服务CURD代码

    目录 coupon模块代码生成 1.1 修改代码生成器配置 1.2 修改generator.properties 1.3 开启生成器然后生成代码 1.4 引入wkkmall-common模块到我们的coupon项目 1.5 配置数据库连接信息然后测试coupon模块 member,order,ware模块代码生成 模块端口规范 1. coupon模块代码生成 1.1 修改代码生成器application.yml数据库名称 这里我们要修改的是数据库名称为wkkmall_sms 如下图所示: 1.2 修改generator.properties 这里主要是修改moduleName 和 table_prefix 1.3 开启生成器然后生成代码 拷贝main代码文件夹到我们的项目目录 1.4 引入wkkmall-common模块到我们的coupon项目 1.5 配置数据库连接信息然后测试coupon模块 配置信息如下 # 应用名称 spring: datasource: username: root password: root url: jdbc:mysql://192.168.21.201:3307/wkkmall_sms driver-class-name: com.mysql.jdbc.Driver application: name: wkkmall-coupon mybatis-plus: # 扫描mapper包 mapper-locations: classpath:/mapper/**/*.xml global-config: db-config: # 设置主键自增 id-type: auto 然后,打开启动类测试一个 /coupon/coupon/list的请求 请求成功 2. member,order,ware模块代码生成 过程与上面一致 3. 模块端口规范 各个模块端口规定如下 coupon:7000 member:8000 order:9000 product:11000 ware:12000

    February 3, 2021 0 0
  • SpringCloud Alibaba微服务商城项目(六):产品product模块测试基本的增删改查功能

    目录 产品启动类整合mybatis-plus 配置数据源,配置mybatis-plus2. 配置数据源,配置mybatis-plus 2.1 common模块配置数据源 2.2 配置数据库与mybatis-plus 2.3 MapperScan扫描dao包 进行单元测试 3.1 插入数据 3.2 更新数据 3.3 查询集合数据 1. 产品启动类整合mybatis-plus 需要在启动类里面进行mybatis-plus的整合,我们需要引入mybatis-plus-starter之前在common模块已经引入了这个 2. 配置数据源,配置mybatis-plus 我们进入https://mvnrepository.com/artifact/mysql/mysql-connector-java 2.1 common模块配置数据源 上面的mysql版本connector引入到我们的common模块 2.2 配置数据库与mybatis-plus 我们设置了数据库的基本配置和mybatis的mapper扫描以及数据库的主键自增,如果后面需要分库分表我们会有其他对应的配置 # 应用名称 spring: datasource: username: root password: root url: jdbc:mysql://192.168.21.201:3307/wkkmall_pms driver-class-name: com.mysql.jdbc.Driver mybatis-plus: # 扫描mapper包 mapper-locations: classpath*:/mapper/**/*.xml global-config: db-config: # 设置主键自增 id-type: auto 2.3 MapperScan扫描dao包 dao包需要自动扫描 3. 进行单元测试 我们先用brand品牌做为例子去进行测试 3.1 插入数据 查看一下数据库:(数据存储成功) 3.2 更新数据 3.3 查询集合数据 本片文章介绍了如何对入口类进行配置,从而成功启动我们的增删改查功能,单元测试里面介绍了基本的增删改查功能

    February 1, 2021 0 0

Contact Us

在线咨询:点击这里给我发消息

邮件:814489173@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code