java - 如何在通过注解 Autowiring 的Spring bean中传递类构造函数参数

标签 java spring

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

new User("Names", 22);

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

TextField userNames = new TextField();

names = userNames.getText()

其他参数相同。

哪里:

@Component
public class User {
    public User(String names, int age) {
        .
        .
        .
    }
}

如何初始化 User,同时传递构造函数的参数,其中 User 是 Autowired 到另一个类:

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

最佳答案

我怀疑这是您真正想要做的。我的猜测是 User 是某种模型对象,不应由 Spring 的依赖注入(inject)处理。

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

如果这是使用 Spring MVC 的请求的一部分,@ModelAttribute 以及 @RequestParam@PathVariable 可能是您的 friend .有关这方面的一些重要文档,请查看 Spring docs

关于java - 如何在通过注解 Autowiring 的Spring bean中传递类构造函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27593560/

相关文章:

java - 寻找开发互斥锁的解决方案

java - MVC - 我如何理解它? ( java )

java - 如何沙盒 clojure.string/blank?在 Clojure 中使用 Clojail?

java - Spring WebFlux - 处理 404 的单一方法?

java - 如何阻塞和解除阻塞 servlet 线程?

java - 尝试使用 spring 和 hibernate 用户 oracle db 时出错

Java 并发 : How can I tell which Future belongs to which Callable during processing?

java - 有没有一种有效的方法来检查字符串是否代表日期?

java - 阔叶 : No bean named 'blMainEntityActionsExtensionManager' is defined

spring - 在 Tomcat 上运行 Spring Boot 应用程序时无法实例化工厂类 : org. springframework.boot.autoconfigure.AutoConfigurationImportFilter"