Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.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/13.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
Java Spring在多个位置访问外部属性文件_Java_Spring_Properties_Resources - Fatal编程技术网

Java Spring在多个位置访问外部属性文件

Java Spring在多个位置访问外部属性文件,java,spring,properties,resources,Java,Spring,Properties,Resources,第一个问题,让我们试试这个 我在Eclipse中的JBoss7.1.1上使用Spring3.1.1。我也使用石英1.8.6 有一段时间我遇到了一个问题,在我的应用程序的所有类中都找不到我的外部属性文件。我可以在控制器类中找到它并使用文件中的键,临时解决方法是将configurationfile作为函数参数发送到其他类中访问它 我无法访问属性文件的类实际上是为Quartz scheduler和某些模型类创建的线程。我想除了在我的控制器中,我在任何地方都无法访问它,但我还没有尝试过。我的项目包括几个

第一个问题,让我们试试这个

我在Eclipse中的JBoss7.1.1上使用Spring3.1.1。我也使用石英1.8.6

有一段时间我遇到了一个问题,在我的应用程序的所有类中都找不到我的外部属性文件。我可以在控制器类中找到它并使用文件中的键,临时解决方法是将configurationfile作为函数参数发送到其他类中访问它

我无法访问属性文件的类实际上是为Quartz scheduler和某些模型类创建的线程。我想除了在我的控制器中,我在任何地方都无法访问它,但我还没有尝试过。我的项目包括几个子包se.xxx.xxx.xxx.status.*其中*是服务、控制器、模型、调度程序、dao等

属性文件在applicationContext中定义为bean,如下所示:

<bean id="statusConfigProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
        <property name="locations">
            <list>
                <value>classpath:resources/status-application-config.properties</value>
            </list>
        </property>
    </bean>
我的想法是,这可能与某些上下文文件中的导入有关,但我已经查找了几个小时,没有找到任何内容。搜索并没有为我的具体问题提供任何答案,大多数问题只是让bean工作,而我的问题是在控制器中

当我试图在其他子包中的其他类中访问它时,会得到nullpointerexceptoins。虽然只有当我尝试访问属性getPropertyString时


有人对此有任何意见吗

依赖注入只能在spring管理的bean中工作。quartz创建的对象不受sprnig管理,因此会被注入,因此您的属性保持为空。谢谢,但这不仅仅是quartz的问题,除了*.controller包之外,我不能在我的pother子包中使用属性文件。例如,我无法访问*.service包中文件中的属性,这是必需的。现在我改为使用functoid参数发送引用,但它很难看,并且不会在任何地方都工作。只要它是一个spring管理的bean,它就可以访问,如果它不是spring管理的,它就无法访问。确保您的服务是spring管理的,并且您自己不创建实例。如果您有@Resource或@Autowired,并且无法注入依赖项,则ApplicationContext的构造将失败。我猜你不是在使用spring管理的实例,而是在自己构建它们。我认为它们是Såspring管理的,因为我没有实例化它们。请看我最初的问题,我在哪里使用资源。它在我的控制器中工作没有问题,但当涉及到其他包中的类时,我肯定遗漏了一些东西。如果你认为它们是spring管理的,那么你就不确定了。。。我的猜测仍然是,它们不是,因为如果在这些类中有@Resource用于属性,那么上下文的启动将失败。至少您的问题中的信息太少,无法给出答案,请发布其他类和配置。
@Resource(name = "statusConfigProperties")
private Properties statusConfigProperties;