有参构造函数
接口类:
public interface UserDao {
public void save();
}
实现类:
public class UserDaoImpl implements UserDao {
private String name;
private int age;
private List<String> dream;
private Map<String, Integer> score;
public UserDaoImpl(String name, int age, List<String> dream, Map<String, Integer> score) {
this.name = name;
this.age = age;
this.dream = dream;
this.score = score;
}
@Override
public void save() {
System.out.println(name+"今年"+age+"岁了"+" "+"梦想:"+dream+"成绩:"+score);
}
}
测试类:
public class myTest {
public static void main(String[] args) {
ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");
UserDao userDao = (UserDao) app.getBean("userDao");
userDao.save();
}
}
xml内容
applicationContext.xml
<bean id="userDao" class="com.iflytek.dao.impl.UserDaoImpl">
<constructor-arg name="name" value="小明"></constructor-arg>
<constructor-arg name="age" value="10"></constructor-arg>
<constructor-arg name="dream">
<list>
<value>"发明家"</value>
<value>"飞行员"</value>
<value>"医生"</value>
</list>
</constructor-arg>
<constructor-arg>
<map>
<entry key="英语" value="85"/>
<entry key="数学" value="93"/>
</map>
</constructor-arg>
</bean>
</beans>
<constructor-arg></constructor-arg>标签 里面的name,对应的是这个
public UserDaoImpl(String name, int age, List<String> dream, Map<String, Integer> score) 里面的参数,进而把<value>值复制给全局变量。
运行结果: