我有一个 MainClass,它有 2 个变量。我想将这两个值传递给 springframework bean 类“Test”。我如何在 applicationContext.xml 中定义它,以及如何将这两个变量值传递给 bean“Test”。
例如:
class MainClass {
public int var1;
public int var2;
public Test test;
public void setVar1(int var11) {
var1 = var11;
}
public void setVar2(int var22) {
var2 = var22;
}
public static void main(String args[]) {
ApplicationContext context =
new FileSystemXmlApplicationContext("applicationContext.xml");
Test = context.getBean("test");
}
}
------------ 测试类------------
public class Test {
public Test (int var1, int var2) {}
}
------------ applicationContext.xml ------------
<bean id="test" class="com.path.test">
<constructor-arg index="0" type="int" value="????"/>
<constructor-arg index="1" type="int" value="????"/>
</bean>
最佳答案
你可以像这样传递值:
<bean id="test" class="com.path.test.Test">
<constructor-arg index="0" type="int" value="123"/>
<constructor-arg index="1" type="int" value="456"/>
</bean>
您应该记住将您的完全限定类名作为 class
属性的值。
就是说,您的 Test
类没有保持其状态。如果您想获取您在 applicationContext.xml
中指定的值,您应该创建一些 Test
成员:
public class Test {
private int v1;
private int v2;
public Test (int var1, int var2) {v1 = var1; v2 = var2;}
public int getVOne() {
return v1;
}
public int getVTwo() {
return v2;
}
}
然后您应该能够像这样在您的 main
方法中访问它们:
public static void main(String args[]) {
ApplicationContext context =
new FileSystemXmlApplicationContext("applicationContext.xml");
Test test = context.getBean("test");
int v1 = test.getVOne();
int v2 = test.getVTwo();
System.out.println("V1: " + v1 + " V2: " + v2); //output: V1: 123 V2: 456
}
关于java - Springframework 构造函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7602205/