2015-07-13 54 views
2

我正在構建一個帶有Spring Boot後端的單頁Web應用程序,並且希望共享前端使用的JSON文件作爲各種路由枚舉以及後端末端,以支持某些航線的映射回/index.html將JSON文件注入到地圖中

這裏的JSON文件:

{ 
    "Login": "/login", 
    "ForgotPassword": "/forgot-password", 
    "ResetPassword": "/reset-password", 
    "Profile": "/profile", 
    "Configuration": "/configuration", 
    "Administration": "/admin" 
} 

到目前爲止,我一直在做的Node.js這樣如下:

for (var pathname in Path) { 
    if (Path.hasOwnProperty(pathname)) { 
     app.get(Path[pathname], sendIndex); 
    } 
} 

目前我有這樣的:

@Configuration 
public class SpringConfigurations extends WebMvcConfigurerAdapter { 
    @Override 
    public void addResourceHandlers(ResourceHandlerRegistry registry) { 
     registry.addResourceHandler("/**") 
       .addResourceLocations("classpath:/static/"); 
    } 
} 

會不會有注射JSON文件導入的方式,比方說,一個java.util.Map<String,String>然後執行以下操作:

@Configuration 
public class SpringConfigurations extends WebMvcConfigurerAdapter { 
    @Override 
    public void addResourceHandlers(ResourceHandlerRegistry registry) { 
     pathsMap.values().forEach(path -> { 
      registry.addResourceHandler(path) 
        .addResourceLocations("classpath:/static/index.html"); 
     }); 
     registry.addResourceHandler("/**") 
       .addResourceLocations("classpath:/static/"); 
    } 
} 

回答

0

Json Jackson library(具體而言,其bind module)能夠加載和分析JSON文件轉換成地圖:

ObjectMapper mapper = new ObjectMapper(); 
Map<String, Object> pathsMap = (Map<String, Object>)mapper.readValue(jsonSource, Map.class); 

,如果你事先知道所有的值都是字符串,可以定義地圖爲<String, String>

readValue()已經超負荷接受讀者,流,預loadeded String等

+0

感謝變種,但我已經知道如何做手工。我真正想要的是一些直接從文件注入JSON配置的Spring魔術(類似於可以從屬性文件自動注入屬性的方式)。 –