本文主要给大家介绍一下Spring的依赖注入之构造方法注入的几种形式。
首先,建立一个Java类。
public class MyLogger
{
private String prefix;
private String message;
public MyLogger(){}
public MyLogger(String prefix, String message)
{
this.prefix = prefix;
this.message = message;
}
public String getPrefix()
{
return prefix;
}
public String getMessage()
{
return message;
}
public void setPrefix(String string)
{
prefix = string;
}
public void setMessage(String string)
{
message = string;
}
public void execute(String str)
{
System.out.println((getPrefix() + ", " + getMessage() + ", " + str).toLowerCase());
}
}
然后,在ApplicationContext.xml中设置id为myLogger的Bean。
<bean id="myLogger" class="com.example.service.MyLogger">
<constructor-arg index="0">
<value>INFO</value>
</constructor-arg>
<constructor-arg index="1">
<value>Hello World</value>
</constructor-arg>
</bean>
最后,做一个测试函数来生成注入bean。
public static void main(String args[])
{
String xml = "file:src/applicationContext.xml";
ApplicationContext ctx = new ClassPathXmlApplicationContext(xml);
MyLogger MyLogger=(MyLogger) ctx.getBean("myLogger");
System.out.println(MyLogger.getPrefix());
System.out.println(MyLogger.getMessage());
}
另外,构造注入还可以通过参数类型匹配,如下所示:
<bean id="myLogger" class="com.example.service.MyLogger">
<constructor-arg type="java.lang.String">
<value>INFO</value>
</constructor-arg>
<constructor-arg type="java.lang.String">
<value>Hello World</value>
</constructor-arg>
</bean>
除此以外,构造注入可通过参数名传值,如下所示:
<bean id="TheAction6" class="com.example.service.MyLogger">
<constructor-arg name="prefix" value="INFO">
</constructor-arg>
<constructor-arg type="message" value="Hello World">
</constructor-arg>
</bean>
构造方法注入变化多端,希望大家能够掌握!