这是applicationcontext.xml构造器的bean
通过list注入到注解的list中去
<util:list id="list">
<value>网络工程</value>
<value>计算机网络</value>
<value>Android</value>
<value>ASP.NET</value>
</util:list>
构造器的bean
<bean id="stu2" class="com.cyh.Student" >
<constructor-arg index="0" value="105"/>
<constructor-arg index="1" value="陈玉航"/>
<constructor-arg index="2" value="计算机科学与技术"/>
<constructor-arg index="3" >
<list>
<value>"Android课程"</value>
<value>"ASP.NET课程"</value>
<value>"SSM课程"</value>
<value>"网络工程"</value>
</list>
</constructor-arg>
</bean>
这是student.java文件
@Component("stu3")
public class Student {
@Value("105")
private int sno;
@Value("陈玉航")
private String sname;
@Value("计算机科学与技术")
private String major;
@Value("#{list}")
private List<String> required;
Main测试方法
public static void main(String[] args) {
ApplicationContext applicationContext=new ClassPathXmlApplicationContext("ApplicationContext.xml");
//属性注入
System.out.println( applicationContext.getBean("stu1"));
// 构造注入
System.out.println(applicationContext.getBean("stu2"));
//注解
System.out.println(applicationContext.getBean("stu3"));
}
得到的结果是stu2的和stu3的数据一样
Student{sno=105, sname='陈玉航', major='计算机科学与技术', required=["SSM课程", "网络工程", "Android课程", "ASP.NET课程"]}
Student{sno=105, sname='陈玉航', major='计算机科学与技术', required=[网络工程, 计算机网络, Android, ASP.NET]}
Student{sno=105, sname='陈玉航', major='计算机科学与技术', required=[网络工程, 计算机网络, Android, ASP.NET]}
(去掉tostring方法后发现stu2和stu3的地址是不一样的),这是老师发的实验报告,所以需要三种方法一起用,如果有优先级,为啥属性注入没有受影响,脑壳疼。。。求大神解答一下。跪谢。