Java:Spring:如何动态地将参数传递给构造函数?

标签 java spring

假装我有课:

public class Person {

 private final String first;
 private final String last;
 private final Address address;

 public Person(String first, String last, Address address){
  this.first = first;
  this.last = last;
  this.address = address;
 }

 public String getFirst() {
  return first;
 }

 public String getLast() {
  return last;
 }

 public Address getAddress() {
  return address;
 }
}

我有一个上述代理类:

public class PersonProxy
{
    private Person person;

    // --Other properties---

    public PersonProxy( Person person)
    {
        this.person = person;
    }
}

我们曾经这样创建 PersonProxy 的实例:

PersonProxy proxy = new PersonProxy(new Person("Betty", "Kale" , "some address"));

但是我们最近正在转向 Spring,并且希望在上下文文件中将这 2 个类声明为 beans,但希望在创建代理对象时在 Person 类的构造函数中动态传递这些参数。 如何在上下文文件中为这两个类声明这种 bean,以及如何使用这些 bean 来创建 PersonProxy 类的实例来替换:

PersonProxy proxy = new PersonProxy(new Person("Betty", "Kale" , "some address"));

提前致谢。

最佳答案

实现此目的的一种方法是使用 FactoryBean,例如创建一个PersonProxyFactoryBean。请参阅this blog post有关 FactoryBeans 的更多详细信息。

关于Java:Spring:如何动态地将参数传递给构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42445338/

相关文章:

java - java中Hashmap的空值

java - 使用 Java 对字符串进行 90% 的子串化而不破坏 HTML

java - jsr286 portlet 中的异常处理

java - 适用于多种用户类型的 Spring Security 和 Hibernate

java - FindBy 在 JPA 中使用外键

java - 使用 hibernate 以编程方式验证架构

java - Maven Tomcat 插件更改端口

java - 如何从超过 100 000 个点创建多边形?

java - Spring (Boot) 忽略了我的 log4j.properties 文件

java - 在同一个 glassfish 实例中保持多个 session