首先根据4要素来确定需要创建哪些类:

1建造的产品 2产品抽象建造方法 3具体建造者 4指挥建造者

1首先定义一个具体的产品

@Data
@Component
public class MobilePhone {

    private String color;
    private String Brand;
}

2定义一个产品抽象建造方法

public abstract class Builder {
    protected abstract void buildColor();

    protected abstract void buildBrand();

    protected abstract MobilePhone createPhone();
}

3具体的建造者,继承产品建造抽象类

@Component
public class PhoneBuilder extends Builder {
    @Autowired
    MobilePhone mobilePhone;

    @Override
    public void buildColor() {
    mobilePhone.setColor("石墨色");
    }

    @Override
    public void buildBrand() {
    mobilePhone.setBrand("苹果");
    }

    @Override
    protected MobilePhone createPhone() {
        return mobilePhone;
    }
}

4指挥建造的“人”

@Component
public class Director {

    @Autowired
    PhoneBuilder phoneBuilder;
    public MobilePhone build(){
        phoneBuilder.buildColor();
        phoneBuilder.buildBrand();
        return phoneBuilder.createPhone();
    }
}

5调用

@RequestMapping("/builder")
@RestController
@Slf4j
public class BuilderController {

    @Autowired
    Director director;

    @GetMapping("/test")
    public void test() {
      MobilePhone mobilePhone =  director.build();
      log.info(mobilePhone.toString());
    }
}