1.xml配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!--配置创建类对象:默认无参构造器-->
<!--id:唯一标识符 class:类全路径(包内路径)-->
<bean id="beanParameterConstructorTest" class="test10month.test1011.BeanParameterConstructorTest">
<!--标签名称:构造函数arg描述:Bean定义可以指定零个或多个构造函数参数。-->
<!--<小于less than >大于greater than 后面的不用使用转义字符-->
<constructor-arg name="nameString" value="<<波多野结衣>>"/>
<constructor-arg name="ageAnInt" value="18"/>
<constructor-arg name="nameTestString">
<!--设置为null,注意类型,int这些是不能为null的-->
<null/>
</constructor-arg>
</bean>
</beans>
2.有参构造器类的定义
package test10month.test1011;
/**
* 功能描述:有参构造器spring配置对象
* @version 1.0
* @className ${NAME}
* @author: 罗德
* @create: ${YEAR}-${MONTH}-${DAY} ${HOUR}:${MINUTE}
*/
public class BeanParameterConstructorTest {
private final String nameString;
private final int ageAnInt;
private final String nameTestString;
@Override
public String toString() {
return "BeanParameterConstructorTest{" + "nameString='" + nameString + '\'' + ", ageAnInt=" + ageAnInt + ", nameTestString='" + nameTestString + '\'' + '}';
}
public BeanParameterConstructorTest(String nameString, int ageAnInt, String nameTestString) {
this.nameString = nameString;
this.ageAnInt = ageAnInt;
this.nameTestString = nameTestString;
}
}
3.测试类-测试的类只能有一个构造器且是无参的(默认),否则会包错
所有我重新创建了一个测试类
package test;
import org.junit.jupiter.api.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import test10month.test1011.BeanParameterConstructorTest;
/**
* 功能描述:测试类
* @version 1.0
* @className Test
* @author: 罗德
* @create: 2020-10-11 15:11
*/
public class ClassTest {
@Test
public void test() {
var context = new ClassPathXmlApplicationContext("forTheFirstTime.xml");
var contextBean = context.getBean("beanParameterConstructorTest", BeanParameterConstructorTest.class);
System.out.println(contextBean);
/**
* BeanParameterConstructorTest{nameString='<<波多野结衣>>', ageAnInt=18, nameTestString='null'}
*/
}
}