一、代码如下:
javaBean类:
@ConfigurationProperties(prefix = "person") //使之与配置文件中person为前缀的进行关联绑定
@Configuration //声明为配置类 这个不是配置类,不能加这个注解 否则没办法发送json数据到浏览器
@Component //加入到容器中
@ToString //重写toString方法
@Data //自动进行设置set和get方法
public class Person {
private String userName;
private Boolean boss;
private Date birth;
private Integer age;
private Pet pet;
private String[] interests;
private List<String> animal;
private Map<String, Object> score;
private Set<Double> salarys;
private Map<String, List<Pet>> allPets;
}
yml配置:
person:
userName: zhangsan
boss: true
birth: 2001/8/30
age: 23
pet:
pName: Coco
pAge: 1
interests:
- 篮球
- 足球
- 羽毛球
animal: [小猫,小黑狗,大黄狗]
score:
- football: 20
- basktball: 30
- pingpong: 50
salarys: [19.9,20.0,25.5]
allPets:
sick: [{pName: 阿猫,pAge: 2},{pName: 阿狗,pAge: 3}]
health:
- {pName: 阿猪,pAge: 4}
- {pName: 阿鸡,Page: 1}
Controller:
/*@ResponseBody
@Controller*/
@RestController
public class HelloController {
@Autowired
Person person;
@RequestMapping("/person")
public Person person(){
return person;
}
}
二、出现问题:
一直无法在浏览器显示json数据,一直显示500报错
三、问题分析:
前期一度以为值序列化的问题,还特意去实现类了序列化接口Serializable,但是都无济于事。最后突然发现我在Person类上添加了@Configuration注解,给他标记为配置类了
四、解决方案:
删除Person类上多余的注解@Configuration !!!