金牌28号技师 2021-03-09 19:07 采纳率: 33.3%
浏览 296
已采纳

spring同时使用构造器和注解注入引发的属性冲突

这是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的地址是不一样的),这是老师发的实验报告,所以需要三种方法一起用,如果有优先级,为啥属性注入没有受影响,脑壳疼。。。求大神解答一下。跪谢。

  • 写回答

2条回答 默认 最新

      报告相同问题?

      相关推荐 更多相似问题

      悬赏问题

      • ¥15 有关c++的问题,利用相关知识
      • ¥15 求香农编码和解码的matlab代码
      • ¥20 ROS中的TEB局部规划问题
      • ¥20 关于#matlab#的问题:要求测出上面图片中所有同心圆的半径
      • ¥20 epanet软件运行问题
      • ¥15 Python 文件读取
      • ¥60 dpabi进行Alff计算时脑池有干扰信号
      • ¥15 利用kmeans或kshape聚类分析对归一化的无量纲时间-降雨序列进行聚类
      • ¥15 protel99.SE提示一下弹窗
      • ¥15 银河麒麟v10 执行.run失败如何解决