如何通过注解在Spring bean Autowired中传递类构造函数参数

Pro*_*Rev 5 java spring

没有 IOC 容器的正常方法是:

new User("Names", 22);
Run Code Online (Sandbox Code Playgroud)

这里的参数值是动态的,例如,它们是通过用户提交表单获取的,因此不能存储在文件中。

TextField userNames = new TextField();

names = userNames.getText()
Run Code Online (Sandbox Code Playgroud)

其他参数相同。

在哪里:

@Component
public class User {
    public User(String names, int age) {
        .
        .
        .
    }
}
Run Code Online (Sandbox Code Playgroud)

我如何初始化User,同时传递构造函数的参数,其中 UserAutowired进入另一个类:

@Component
public class AnotherClass {
    @Autowired
    User user(....)????? // How do I do it here
    .
    .
    .
}
Run Code Online (Sandbox Code Playgroud)

was*_*ren 5

我怀疑这就是你真正想做的事。我的猜测是,这User是某种模型对象,不应该由 Spring 的依赖注入来处理。

依赖注入(这里有详细解释)通常在容器启动时或对于 Spring MVC 执行请求时创建 bean 并将其连接在一起。User因此,必须在创建 的实例之前创建该对象AnotherClass

如果这是使用 Spring MVC 的请求的一部分,@ModelAttribute那么@RequestParam@PathVariable很可能是您的朋友。有关这方面的一些精彩文档,请查看Spring 文档