Java 你能在Spring中直接给bean赋值吗?
我试图在Spring中用一个等价的bean定义在Java代码中重现一个赋值。不过,据我所知,Spring只允许将值分配给对象中的字段(前提是该类定义了适当的setter方法)。有没有一种方法可以简单地使用Springbeans捕获对对象的引用 下面是一个示例,说明了我希望它如何工作:Java 你能在Spring中直接给bean赋值吗?,java,spring,javabeans,Java,Spring,Javabeans,我试图在Spring中用一个等价的bean定义在Java代码中重现一个赋值。不过,据我所知,Spring只允许将值分配给对象中的字段(前提是该类定义了适当的setter方法)。有没有一种方法可以简单地使用Springbeans捕获对对象的引用 下面是一个示例,说明了我希望它如何工作: <!-- Non-working example. --> <bean id="string" class="java.lang.String"> <value>"I a
<!-- Non-working example. -->
<bean id="string" class="java.lang.String">
<value>"I am a string."</value>
</bean>
“我是一根绳子。”
我意识到在这种特殊情况下,我可以只使用
,但我正在寻找更通用的解决方案,它也适用于不提供参数化构造函数的类。字符串类是不可变的。java.lang.String类中没有可用的属性setter方法
。如果要注入属性值,可以使用以下方法:
<bean id="emp" class="com.org.emp">
<property name="name" value="Alex" />
</bean>
在上面的obj emp中,其name属性将设置为Alex。这里要使用的是
工厂方法
,可能与工厂bean
结合使用。(非静态函数必须由适当类型的bean实例化。)在我的示例问题中,我想捕获返回字符串的函数的输出。假设函数如下所示:
class StringReturner {
public String gimmeUhString(String inStr) {
return "Your string is: " + instr;
}
}
首先,我需要创建一个类型为StringReturner
的bean
<bean name="stringReturner" class="how.do.i.java.StringReturner" />
就我而言,这相当于说:
StringReturner stringReturner = new StringReturner();
String string = stringReturner.gimmeUhString("I am a string.");
String不是Bean,Bean是一个对象,他的类有一个带空参数的构造函数,属性可由getter方法访问,并可由Setters方法修改
StringReturner stringReturner = new StringReturner();
String string = stringReturner.gimmeUhString("I am a string.");