2016-11-01 5 views
0

Ich bin im Moment diese tutorial über Spring MVC und REST-Service. Es ist ein einfaches Hallo-Welt-Projekt.Jackson FasterXML: Wie weiß Spring, wie man json object?

Da ist etwas, das ich nicht verstehe. In der pom.xml haben wir die jackson-Abhängigkeit festgelegt, aber sie ist nie konfiguriert. Wie weiß Spring, wie man ein Objekt jon?

Hier Proben von Code:

Pom XML (Abhängigkeiten):

<dependencies> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-core</artifactId> 
     <version>${springframework.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-web</artifactId> 
     <version>${springframework.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-webmvc</artifactId> 
     <version>${springframework.version}</version> 
    </dependency> 

    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>javax.servlet-api</artifactId> 
     <version>3.1.0</version> 
    </dependency> 
    <dependency> 
     <groupId>com.fasterxml.jackson.core</groupId> 
     <artifactId>jackson-databind</artifactId> 
     <version>${jackson.library}</version> 
    </dependency> 
    <dependency> 
     <groupId>com.fasterxml.jackson.dataformat</groupId> 
     <artifactId>jackson-dataformat-xml</artifactId> 
     <version>${jackson.library}</version> 
    </dependency> 
</dependencies> 

AppConfiguration:

@Configuration 
@EnableWebMvc 
@ComponentScan(basePackages = "package.to.scan") 
public class AppConfiguration { 
} 

AppInitializer:

public class AppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer { 

    @Override 
    protected Class<?>[] getRootConfigClasses() { 
     return new Class[] { AppConfiguration.class }; 
    } 

    @Override 
    protected Class<?>[] getServletConfigClasses() { 
     return null; 
    } 

    @Override 
    protected String[] getServletMappings() { 
     return new String[] { "/" }; 
    } 
} 

AppController:

@RestController 
public class AppController { 

    @RequestMapping("/") 
    public String welcome() { 
     return "Welcome to RestTemplate Example."; 
    } 

    @RequestMapping("/hello/{player}") 
    public Message message(@PathVariable String player) { 

     Message msg = new Message(player, "Hello " + player); 
     return msg; 
    } 
} 

Modell:

public class Message { 

    String name; 
    String text; 

    public Message(){ 

    } 

    public Message(String name, String text) { 
     this.name = name; 
     this.text = text; 
    } 

    public String getName() { 
     return name; 
    } 

    public String getText() { 
     return text; 
    } 

} 

Antwort

1

Feder einen Standardsatz von HttpMessageConverter s, wobei einer von ihnen MappingJackson2HttpMessageConverter, die, wenn der Inhaltstyp verwendet wird, Ist Json und wenn Jackson im Klassenpfad verfügbar ist.

+0

Danke für Ihre Antwort. Es versüßt mir meinen Tag. –

Verwandte Themen