Spring通过有参构造函数的方式可以实现属性注入
1.需要进行属性注入的类
package com.maty.property; /** * @author maty e-mail:[email protected] * @version 创建时间:2018年5月16日 下午12:14:50 * 类说明 该类用来练习如何使用有参数的构造函数进行参数注入 */ public class PropertyConstructor { private String name; public PropertyConstructor(String name) { this.name = name; } public void show() //用来展示属性注入是否成功 { System.out.println("PropertyConstructor.name = "+ name); } }
2.配置applicationContext.xml文件
<!-- 通过有参构造来进行属性注入 --> <bean id="propertyConstructor" class="com.maty.property.PropertyConstructor"> <constructor-arg name="name" value="maty"></constructor-arg> //这里的name对应需要被注入的参数名称,也就是构造函数的参数名称,value为需要被注入的值 </bean>3.编写测试类查看注入是否成功
import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.maty.property.PropertyConstructor; /** * @author maty e-mail:[email protected] * @version 创建时间:2018年5月16日 下午12:23:01 * 类说明 */ public class MyTest { public static void main(String[] args) { //第一步:加载xml文件 ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); PropertyConstructor bean = (PropertyConstructor) context.getBean("propertyConstructor"); bean.show(); } }
结果:
log4j:WARN No appenders could be found for logger (org.springframework.core.env.StandardEnvironment). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. PropertyConstructor.name = maty