【发布时间】:2015-07-02 08:59:50
【问题描述】:
假设我有这门课
public Student{
private String name;
private Address address;
public Student(String fName, Address address){
name = fname;
this.address = address;
}
我在 Spring 配置中将这个类定义为
<bean name="studentInstance" class="StackOverFlow.Student"/>
现在我想使用带有参数的 getBean,我将传递给构造函数。
等于Student s = new Student(name,address)
我知道 Spring 提供了一个方法 getBean(class_name,parms....)
但是我不知道应该如何配置 Spring.xml 配置文件。
我想避免使用 Setter 和 getter 来填充新 bean。
我找到了很多关于如何在 xml 中定义 </constructor-arg> 的示例,但每次都是使用默认值。在这里,我让用户为每个对象输入不同的值。
我想用
ApplicationContext context = new ClassPathXmlApplicationContext(Spring.xml file path);
Student s= (Student)context.getBean("studentInstance",name,address);
我只需要有关配置文件的帮助
提前致谢!
我已经检查了这些链接: Link1Link2Link3Link4
~~~~~编辑~~~~~~~
解决了!这里不需要构造函数注入 我刚刚将原型作用域添加到我的 bean 中,如下所示。
<bean name="carInstance" class="MainApp.bl.GasStation.Car" scope="prototype"/>
【问题讨论】:
-
旁注,Spring 默认创建一个 bean 的 Singleton。如果您需要更多实例,首先您必须将您的 bean 声明为原型。
-
哇!!我刚刚将 scope="prototype" 添加到我的 bean 中,一切都像魔术一样工作!!!为什么在任何地方都没有提到或显示它! tnx 兄弟!
-
如果这对您有帮助,您可以点击灰色复选标记接受答案:)
标签: java spring constructor-injection