Exception:No serializer found for class and no properties discovered to create BeanSerializer

在学习nacos配置信息时遇到一个错误:`No serializer found for class org.springframework.context.expression.StandardBeanExpressionResolver and no properties discovered to create BeanSerializer`。原因是Spring创建的Conf对象为代理对象,导致序列化失败。解决方案包括手动创建Conf对象并设置属性,或者将@Configuration注解改为@Component。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

项目场景

问题描述

原因分析

解决方案:

方法一:自己重新new一个Conf对象,并调用set方法

方法二:Conf上的 @Configuration注解删掉,因为它创建出来的是一个代理对象

               改用@Component注解   

 解决!


项目场景:

学习nacos配置信息的类时发生的错误。

首先写了yml

server:
  port: 8081
spring:
  application:
    name: user-service
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848 # 连接nacos注册中心
        cluster-name: BJ
        ephemeral: false # 设置为非临时实例
conf:
  name: 张三
  desc: 这是配置在application.yml

之后是Conf对象

@Data
@Configuration //这种创建出来的是代理对象
@ConfigurationProperties(prefix = "conf") //prefix 指定读取配置文件的哪部分内容
public class Conf{
    private String name;
    private String desc;
}

 controller层


@RestController
public class ConfigController2 {

    @Autowired
    private Conf conf;

    @GetMapping("/config2")
    public Conf config(){
        return conf;
    }
}

问题描述

报错信息:

com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class org.springframework.context.

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值