Programming/Spring Boot

DI (Dependency Injection) 방식

Lawmin 2019. 6. 26. 14:25

1. Field DI (Not recommended)

@Controller
public class MyController {
    @Autowired
    MyConfig myConfig;

 

2. Constructor DI (Recommended)

@Controller
public class MyController {
    final MyConfig myConfig;

    public MyController(MyConfig myConfig) {
        this.myConfig = myConfig;
    }

 

3. lombok plugin Constructor DI

@AllArgsConstructor
@Controller
public class MyController {
    final MyConfig myConfig;

 

4. Setter DI

@Controller
public class MyController {
    MyConfig myConfig;

    @Autowired
    public void setMyConfig(MyConfig myConfig) {
        this.myConfig = myConfig;
    }