2

我正在使用 Spring MVC 开发此应用程序。我应该从外部 .properties 文件中读取。

mvc-调度程序-servlet.xml

 <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
            <property name="locations">
            <list>
                <value>classpath:Host.properties</value>
                <value>file:///usr/pic1/JSONEditor/Host.properties</value>
            </list>
            </property>
            <property name="ignoreUnresolvablePlaceholders" value="true"/>
            <property name="ignoreResourceNotFound" value="true"/>
        </bean>

<bean id="dataSource" class="com.example.editor.Configuration">
           <property name="hostURL" value="${url}" />
       </bean>

配置.java

package com.example.editor;

import org.springframework.beans.factory.annotation.Value;

public class Configuration {

    @Value("$(url)")
    private String hostURL;

    public String getHostURL(){
        System.out.println("URL:"+this.hostURL);
        return this.hostURL;
    }

    public void setHostURL(String url){
        this.hostURL = url;
        System.out.println("URL:"+this.hostURL);
    }

}

EditorController.java

package com.example.editor.controller;

import java.io.IOException;

import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import com.example.editor.Configuration;



    @Controller
    @RequestMapping("/")
    public class EditorController {

        private static final String start = "Editor";

        @RequestMapping(value = "/", method = RequestMethod.GET)
        public String start(ModelMap model) throws IOException{

        Configuration confg = new Configuration();
        model.addAttribute("URL", confg.getHostURL());

            return start;
        }

    }

当我启动应用程序时,它能够读取文件并获取 url,但是一旦我在浏览器中打开它,hostURL=null。

有人可以指出错误是什么吗?

4

1 回答 1

0
package com.example.editor;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;


@Service
public class Configuration {

    @Value("$(url)")
    private String hostURL;

    public String getHostURL(){
        System.out.println("URL:"+this.hostURL);
        return this.hostURL;
    }

EditorController.java

package com.example.editor.controller;

import java.io.IOException;

import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import com.example.editor.Configuration;


  @Autowired
  Configuration confg;

    @Controller
    @RequestMapping("/")
    public class EditorController {

        private static final String start = "Editor";

        @RequestMapping(value = "/", method = RequestMethod.GET)
        public String start(ModelMap model) throws IOException{

        model.addAttribute("URL", confg.getHostURL());

            return start;
        }

    }
    public void setHostURL(String url){
        this.hostURL = url;
        System.out.println("URL:"+this.hostURL);
    }

}

对于配置类,使其成为服务类。在 Controller 中,您需要自动装配服务类对象。在这里,您使用新运算符创建了实例,这对您不起作用。

于 2015-12-14T12:51:17.870 回答