Lombok 妙用之@RequiredArgsConstructo注解

@RequiredArgsConstructo注解

  • 一、@Autowired
  • 二、@Resource
  • 三、Lombok提供的@RequiredArgsConstructor注解

丢掉 @Autowired,@Resource 让代码更简洁!

一、@Autowired

Spring提供的注解,默认的注入方式为 byType ,也就是根据类型匹配,当有多个实现时,则通过 byName 注入,也可以通过配合@Qualifier注解来显式指定name值,指明要使用哪个具体的实现类。

@RestController
public class O2oOrderController implements IO2oOrderController {
    @Autowired
    O2oOrderService o2oOrderService;
    @Autowired
    O2oPayService o2oPayService;
    @Autowired
    O2oSellService o2oSellService;
    /**
     * 创建O2O订单
     *
     * @param o2oOrderReq
     */
    @Override
    public Response<O2oOrderResp> createOrder(O2oOrderReq o2oOrderReq) {
        return ResponseUtils.success(o2oOrderService.createOrder(o2oOrderReq));
    }

二、@Resource

Java JSR-250中提供的注解,默认通过 byName 注入,如果没有匹配则通过 byType 注入。

@RestController
public class O2oOrderController implements IO2oOrderController {
    @Resource
    O2oOrderService o2oOrderService;
    @Resource
    O2oPayService o2oPayService;
    @Resource
    O2oSellService o2oSellService;
    /**
     * 创建O2O订单
     *
     * @param o2oOrderReq
     */
    @Override
    public Response<O2oOrderResp> createOrder(O2oOrderReq o2oOrderReq) {
        return ResponseUtils.success(o2oOrderService.createOrder(o2oOrderReq));
    }

三、Lombok提供的@RequiredArgsConstructor注解

1:导入Lombok包

<dependency>
    <groupId>org.projectlombokgroupId>
    <artifactId>lombokartifactId>
    <version>1.18.12version>
dependency>

2、在注入时需要用final定义。
举例如下

@RequiredArgsConstructor
@RestController
public class O2oOrderController implements IO2oOrderController {

    final O2oOrderService o2oOrderService;
    final O2oPayService o2oPayService;
    final O2oSellService o2oSellService;
    /**
     * 创建O2O订单
     *
     * @param o2oOrderReq
     */
    @Override
    public Response<O2oOrderResp> createOrder(O2oOrderReq o2oOrderReq) {
        return ResponseUtils.success(o2oOrderService.createOrder(o2oOrderReq));
    }

参考文章
@RequiredArgsConstructor用法
@RequiredArgsConstructor 注解
@RequiredArgsConstructor注解浅谈
@RequiredArgsConstructor注解

你可能感兴趣的:(Spring,java,开发语言)