I was new to Springboot application using the @Autowired to perform the dependency injection. We can use @Autowired directly by initiate that class object for class that has none or default parameterless constructor. But what if a class has some parameter in its constructor, and I would like to initiate it during runtime conditionally and automatically, is it possible to do that?
For example
@Component
public class SomeContext {
    private String name;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}
@Component
public class SomeBuilder {
    private final SomeContext ctx;
    @Autowired
    public SomeBuilder(SomeContext ctx) {
        this.ctx = ctx;
    }
    public void test() {
        System.out.println("ctx name: " + ctx.getName());
    }
}
@Service
public class SomeService {
    @Autowired
    SomeBuilder someBuilder;
    public void run(SomeContext ctx) {
        if (ctx != null) {
            // I want someBuilder  to be initiated here in someway with my input ctx 
            // but NOT doing through new with constructor like below
            // someBuilder = new SomeBuilder(ctx);
            someBuilder.test();   // ctx name: null, I would expect to see "ctx name: someUser", while ctx was injected into someBuilder in any possible way
        }
    }
}
@RestController
public class HelloWorldController 
{
    @Autowired
    SomeService someService;
    @RequestMapping("/")
    public String hello() {
        SomeContext someContext = new SomeContext();
        someContext.setName("someUser");
        someService.run(someContext);
        return "Hello springboot";
    }
}
 
    