总述
Lombok在spring中的特殊注解@RequiredArgsConstructor,用在类上面,可以方便的注入对象,而不必每个DI都要@Autowired
spring的常用注入方式
1.注解注入,也是最常用的
Controller
public class FooController {
@Autowired
//@Inject
private FooService fooService;
//简单的使用例子,下同
public List<Foo> listFoo() {
return fooService.list();
}
}
2.构造器注入
Controller
public class FooController {
private final FooService fooService;
@Autowired
public FooController(FooService fooService) {
this.fooService = fooService;
}
//使用方式上同,略
}
3.setter注入
@Controller
public class FooController {
private FooService fooService;
//使用方式上同,略
@Autowired
public void setFooService(FooService fooService) {
this.fooService = fooService;
}
}
今天的主角@RequiredArgsConstructor
- 以来的对象声明,都要是final的
- 通过此注解以构造器的方式嵌入
- 这样就不必每个对象上面都加入@Autowired
@RequiredArgsConstructor
public class VerifyController {
private final VerifyService verifyService;
private final InvitationService invitationService;
private final VerificationCodeService verificationCodeService;