2017-10-30 2 views
0

Ich versuche, eine einfache Datei config.properties zu lesen, aber ich habe immer null als Wert.Zugriff auf Eigenschaften mit Annotation Ansatz im Frühjahr mvc 4

Ich habe config.properties Datei unter dem Stamm (auf der gleichen Ebene mit pom.xml) Ich habe nur eine Zeile in config.properties.

KEY=baran 

und ich habe eine AppConfig Klasse wie unten

package tr.com.simroll.ada.rvm.web.config; 

import org.springframework.beans.factory.annotation.Value; 
import org.springframework.context.annotation.Configuration; 
import org.springframework.context.annotation.PropertySource; 


@Configuration 
@PropertySource("classpath:config.properties") 
public class AppConfig { 

    @Value("${KEY}") 
    private String test; 

    public String getTest() { 
     return test; 
    } 

    public void setTest(String test) { 
     this.test = test; 
    } 
} 

ich den Zugriff von meinem Controller versuche wie diese

@Controller 
@CrossOrigin(origins = "*") 
public class MovieCategoryController { 

    @RequestMapping(value = "/api/movieCategory/list", method = RequestMethod.GET) 
    @ResponseBody 
    public String listMovieCategories(ModelMap model, HttpServletResponse res, HttpServletRequest req) { 


     AppConfig config = new AppConfig(); 
     System.out.println(config.getTest()); 

     return "test"; 
    } 
+0

ein neues AppConfig Instanziierungsanwendung wie Sie 'tun AppConfig Config = new AppConfig();' bedeutet, es ist nicht eine Frühlingsmangelbohne. –

+0

kann dies helfen https://Stackoverflow.com/a/9260652/2664200 – SpringLearner

+0

Die Beispiele, die ich im Netz gesehen habe, zeigt nicht, wie man es benutzt. Könntest du mir zeigen, wie ich darauf zugreifen kann? @AlanHay – rematnarab

Antwort

0

Hier ist das Problem ist, dass Sie eine neue Instanz erstellen von AppConfig im Controller, stattdessen sollten Sie injizieren AppConfig, die von Spring erstellt wird.

Versuchen Sie fügen Sie den folgenden Code zu Ihrem Controller

@Autowired 
AppConfig appConfig; 

So wird es ..

@Controller 
@CrossOrigin(origins = "*") 
public class MovieCategoryController { 

@Autowired 
AppConfig appConfig; 

    @RequestMapping(value = "/api/movieCategory/list", method = RequestMethod.GET) 
    @ResponseBody 
    public String listMovieCategories(ModelMap model, HttpServletResponse res, HttpServletRequest req) { 

     System.out.println(appConfig.getTest()); 

     return "test"; 
    } 
Verwandte Themen