假设我有那个班级
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提供了一个methond 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);
我只需要配置文件的帮助
提前致谢!!
我已检查过这些链接: Link1 Link2 Link3 Link4
~~~~~编辑~~~~~~~
解决!这里不需要构造函数注入 我刚刚将原型范围添加到我的bean中,如下所示。
<bean name="carInstance" class="MainApp.bl.GasStation.Car" scope="prototype"/>
答案 0 :(得分:0)
首先,这种bean显然必须被声明为原型。
Prototype将单个bean定义范围限定为具有任意数量的对象实例。如果scope设置为prototype,则每次对该特定bean发出请求时,Spring IoC容器都会创建该对象的新bean实例 &LT;
function random(){
$number = rand(50,100);
echo "<h1> Your Score: {$number}/100 </h1>";
if($number>70){
echo "<h2>Your Grade is D</h2>";
}else if($number=(range(70, 80))){
echo "<h2>Your Grade is C</h2>";
}else if($number=(range(80, 90))){
echo "<h2>Your Grade is B</h2>";
}else if($number==80){
echo "<h2>Your Grade is B</h2>";
}else if($number=(range(90, 100))){
echo "<h2>Your Grade is A</h2>";
}
}
$score = random();
echo $score;
返回指定bean的实例,该实例可以是共享的或独立的。 允许指定显式构造函数参数/工厂方法参数,覆盖bean定义中指定的默认参数(如果有)。
有关配置,请参阅以下问题:
Spring <constructor-arg> element must specify a ref or value
注意,您必须将基元包装到其Wrapper对象中,以避免在创建对象时具有预定义的值。