网站首页 > 精选文章 / 正文
springboot的注解很丰富,但是也有很多坑,一不小心就导致项目启动不了,还半天找不到问题!
比如 @AllArgsConstructor这个注解,实现了所有构造的参数,都某些情况会导致项目启动不了。比如下面的代码:
@Slf4j
@RestController
@Api(tags="商品信息接口")
@RequestMapping("goods")
@Validated
@AllArgsConstructor
public class GoodsControl extends Basecontroller{
private final GoodsService goodsService;
private static String host="127.0.0.1";
@PostMapping("insert")
@ApiOperation("新增商品信息")
public ApiResponse<Goods> insertGoods(@Valid @RequestBody GoodsDTO goodsDTO) {
return goodsService.insertGoods(goodsDTO);
}
}
上面的代码是一个很简单的control类,但是启动springboot项目会报错,找了半天不知道哪里的问题?
后来发现使用是这一行导致的:private static Stirng host="127.0.0.1";
我左思右想,这一行代码很简单,没有任何问题呀!
最终我发现是由于@AllArgsConstructor 注解引起的,她会把普通变量当成bean进行注入,
而String等基本类型是不能注入bean的,这就导致这个出错了!
如何解决呢?只要把@AllArgsConstructor去掉,同时使用@Autowired注解就可以了,正确代码如下:
@Slf4j
@RestController
@Api(tags="商品信息接口")
@RequestMapping("goods")
@Validated
//@AllArgsConstructor 不使用这个注解,其实它没什么了不起的
public class GoodsControl extends Basecontroller{
@Autowired
private GoodsService goodsService; //改成@Autowired ,不是有final注入
private static Stirng host="127.0.0.1"; //注释 @AllArgsConstructor之后,host就不会当成bean注入了
@PostMapping("insert")
@ApiOperation("新增商品信息")
public ApiResponse<Goods> insertGoods(@Valid @RequestBody GoodsDTO goodsDTO) {
return goodsService.insertGoods(goodsDTO);
}
}
Tags:@apioperation
猜你喜欢
- 2025-01-13 关于微服务的RPC远程调用,你还有不理解的地方吗?
- 2025-01-13 验证码模式登录方案设计
- 2025-01-13 这么优秀的开源脚手架项目,我不允许还有人不知道
- 2025-01-13 苍穹外卖-01项目概述、环境搭建
- 2025-01-13 线上调试BUG,就用阿里的这款诊断神器
- 2025-01-13 Swagger(丝袜哥) 快速入门
- 2025-01-13 我带的实习生竟然把图片直接存到了服务器上!崩溃了
- 2025-01-13 百度天工物联网平台实践
- 2025-01-13 我的精准测试实战笔记,从这两个项目需求开始!
- 2025-01-13 什么是Swagger(Api接口管理)?如何运用(代码实现)