Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml Spring:java.util.Locale类型的bean的自动连接似乎不起作用_Xml_Spring_Javabeans_Autowired - Fatal编程技术网

Xml Spring:java.util.Locale类型的bean的自动连接似乎不起作用

Xml Spring:java.util.Locale类型的bean的自动连接似乎不起作用,xml,spring,javabeans,autowired,Xml,Spring,Javabeans,Autowired,我正在为其他开发人员编写一个关于Spring(3.0.x)的非常简单的教程,遇到了一个奇怪的行为:java.util.Locale类型的bean没有自动连接到其他bean中,并且没有错误消息。但是,仍然会创建另一个bean,只是字段为null 详情如下: 配置完全基于XML Bean定义如下: <bean id="spanishLocale" class="java.util.Locale"> <constructor-arg value="es"/>

我正在为其他开发人员编写一个关于Spring(3.0.x)的非常简单的教程,遇到了一个奇怪的行为:java.util.Locale类型的bean没有自动连接到其他bean中,并且没有错误消息。但是,仍然会创建另一个bean,只是字段为null

详情如下:

  • 配置完全基于XML
  • Bean定义如下:

    <bean id="spanishLocale" class="java.util.Locale">
        <constructor-arg value="es"/>
        <constructor-arg value="ES"/>
    </bean>
    
    <bean id="dateTimeBeanSetter" class="com.bsl.training.theclock.SimpleDateTimeBean3" autowire="byType"/>
    
    • 如果我向SimpleDateTimeBean3类中添加一个字段,该类是我自己的类之一,并且存在这样的bean,那么一切都可以完美地工作
    • 不会打印错误,这两个bean(spanishLocale、dateTimeBeanSetter)都已创建并可从ApplicationContext访问,但对“dateTimeBeanSetter”bean调用getDateTime()会产生NPE
    有什么想法吗


    提前感谢。

    两个关键文档片段:

    参考手册第3.4.5.1节:

    不能自动关联所谓的简单属性,如原语、字符串和类(以及此类简单属性的数组)。这种限制是故意的

    从org.springframework.beans.BeanUtils#isSimpleProperty()javadoc:

    检查给定类型是否表示“简单”属性:原语、字符串或其他字符序列、数字、日期、URI、URL、区域设置、类或相应的数组。检查给定类型是否表示“简单”属性:原语、字符串或其他字符序列、数字、日期、URI、URL、区域设置、类,或相应的数组


    所以,按设计工作。

    哪些开发人员?您在哪里指定要启用自动布线?谢谢。。。虽然我不知道为什么语言环境或URL会被这样对待。对此有何想法?:)拉法尔
    import java.text.DateFormat;
    import java.util.Date;
    import java.util.Locale;
    
    
    public class SimpleDateTimeBean3 {
        private Locale locale;
    
        public SimpleDateTimeBean3() {
    
        }
    
        public void setLocale(final Locale loc) {
            locale = loc;
        }
    
        public Locale getLocale() {
            return locale;
        }
    
        public String getDateTime() {
            DateFormat df = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL, locale);
            return df.format(new Date());
        }   
    }