记录spring boot 异常处理

TypeException: The alias ‘***‘ is already mapped to the value

这个异常通常表示在映射文件中出现了重复的别名定义

  1. 命名规范:在定义别名时,建议采用一致的命名规范。例如,使用首字母大写的驼峰命名法或者全小写的下划线命名法,这样可以避免不同开发人员或团队在命名时产生冲突。

  2. 预留前缀:可以在别名前加上特定的前缀,以示区分。例如,使用"DAO"作为DAO类的别名前缀,使用"DTO"作为DTO类的别名前缀。

  3. 维护文档:在团队内部或者团队之间共享映射文件时,及时更新并维护相关文档,明确列出已经使用的别名。这样可以避免多人重复定义别名的情况发生。

  4. 使用命名空间:如果存在多个团队共享同一个数据库的情况,可以使用不同的命名空间来隔离别名定义。这样每个团队可以在自己的命名空间内定义自己需要的别名,减少了别名冲突的可能性。

nacos报错:Nacos cluster is running with 1.X mode, can’t accept gRPC request temporarily

nacos集群启动的是2.0.3版本的,但是在服务启动去连接nacos时却抛错1.X,这是因为nacos集群中有节点挂掉了,导致服务降级
处理方案:重启nacos集群
如何避免出现nacos集群有节点挂掉导致的服务降级:关闭nacos双写
在2.0.3版本默认开启双写,关闭双写会关闭运行中服务降级的入口,所以在nacos集群运行稳定后可以了通过关闭双写的方式来避免服务降级的出现。

  1. nacos查看节点监控
curl -X GET 'nacos的ip:端口/nacos/v1/ns/upgrade/ops/metrics'

如果看到 isDoubleWriteEnabled = true,表示双写是开启的。

  1. nacos关闭双写
curl -X PUT 'nacos的ip:端口/nacos/v1/ns/operator/switches?entry=doubleWriteEnabled&value=false'
  1. 如果出现以下403抛错
"status":403,"error":"Forbidden","message":"unknown user!"

需要加上账号密码

curl -X PUT 'nacos的ip:端口/nacos/v1/ns/operator/switches?entry=doubleWriteEnabled&value=false&username=xx&password=xx'

显示ok,关闭双写成功

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
- chapter1:[基本项目构建(可作为工程脚手架),引入web模块,完成一个简单的RESTful API](http://blog.didispace.com/spring-boot-learning-1/) - [使用Intellij中的Spring Initializr来快速构建Spring Boot/Cloud工程](http://blog.didispace.com/spring-initializr-in-intellij/) ### 工程配置 - chapter2-1-1:[配置文件详解:自定义属性、随机数、多环境配置等](http://blog.didispace.com/springbootproperties/) ### Web开发 - chapter3-1-1:[构建一个较为复杂的RESTful API以及单元测试](http://blog.didispace.com/springbootrestfulapi/) - chapter3-1-2:[使用Thymeleaf模板引擎渲染web视图](http://blog.didispace.com/springbootweb/) - chapter3-1-3:[使用Freemarker模板引擎渲染web视图](http://blog.didispace.com/springbootweb/) - chapter3-1-4:[使用Velocity模板引擎渲染web视图](http://blog.didispace.com/springbootweb/) - chapter3-1-5:[使用Swagger2构建RESTful API](http://blog.didispace.com/springbootswagger2/) - chapter3-1-6:[统一异常处理](http://blog.didispace.com/springbootexception/) ### 数据访问 - chapter3-2-1:[使用JdbcTemplate](http://blog.didispace.com/springbootdata1/) - chapter3-2-2:[使用Spring-data-jpa简化数据访问层(推荐)](http://blog.didispace.com/springbootdata2/) - chapter3-2-3:[多数据源配置(一):JdbcTemplate](http://blog.didispace.com/springbootmultidatasource/) - chapter3-2-4:[多数据源配置(二):Spring-data-jpa](http://blog.didispace.com/springbootmultidatasource/) - chapter3-2-5:[使用NoSQL数据库(一):Redis](http://blog.didispace.com/springbootredis/) - chapter3-2-6:[使用NoSQL数据库(二):MongoDB](http://blog.didispace.com/springbootmongodb/) - chapter3-2-7:[整合MyBatis](http://blog.didispace.com/springbootmybatis/) - chapter3-2-8:[MyBatis注解配置详解](http://blog.didispace.com/mybatisinfo/) ### 事务管理 - chapter3-3-1:[使用事务管理](http://blog.didispace.com/springboottransactional/) - chapter3-3-2:[分布式事务(未完成)] ### 其他内容 - chapter4-1-1:[使用@Scheduled创建定时任务](http://blog.didispace.com/springbootscheduled/) - chapter4-1-2:[使用@Async实现异步调用](http://blog.didispace.com/springbootasync/) #### 日志管理 - chapter4-2-1:[默认日志的配置](http://blog.didispace.com/springbootlog/) - chapter4-2-2:[使用log4j记录日志](http://blog.didispace.com/springbootlog4j/) - chapter4-2-3:[对log4j进行多环境不同日志级别的控制](http://blog
Spring Boot中,可以使用AOP(面向切面编程)来实现前置处理和后置处理。前置处理是在方法执行之前执行的通知,而后置处理是在方法执行之后执行的通知。 在给定的代码示例中,我们可以看到使用了Spring Boot的AOP功能。在AspectController类中,使用了@TestAnnotation注解来标记testAspect方法。这个注解是一个自定义的注解,它被用作切面的标识。 在AOP中,可以使用不同的通知类型来实现前置处理和后置处理。常见的通知类型包括@Before和@After。@Before通知在方法执行之前执行,而@After通知在方法执行之后执行。 在这个例子中,我们可以看到在testAspect方法上使用了@GetMapping注解,这表示这个方法是一个处理GET请求的方法。同时,它也被@TestAnnotation注解标记,表示这个方法需要进行AOP处理。 通过使用AOP,我们可以在方法执行之前执行一些额外的逻辑,比如参数校验、日志记录等。而在方法执行之后,我们可以进行一些后续处理,比如返回结果的处理、异常处理等。 总结起来,Spring Boot中的前置处理和后置处理可以通过AOP来实现。通过在方法上使用相应的注解,我们可以在方法执行之前和之后执行一些额外的逻辑。这样可以提高程序的可维护性和可重用性,同时提高开发效率。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *2* *3* [Spring Boot AOP面向切面编程使用(定义切入点、前置通知、后置通知、返回通知、异常通知、环绕通知)](https://blog.csdn.net/qq_38974638/article/details/118240454)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值