REST服務使用@RestController實例,輸出xml/json


REST服務使用@RestController實例,輸出xml/json

需要用到的服務注解

org.springframework.web.bind.annotation.RestController

  

用到的包:java和json互轉

jackson-mapper-asl #//java對象和json相互轉化
jackson-databind    #spring4.1+以上都必須包含(java對象和json相互轉化)

  

訪問地址:

http://localhost:8080/gugua9/hello/aaa.xml

http://localhost:8080/gugua9/hello/aaa.json

 

 

pom.xml

 <!-- 版本號 -->
  <properties>
  	<springVersion>4.3.5.RELEASE</springVersion>  
  </properties>
  
  <dependencies>
  
  
  
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    
    
     <!-- spring-test支持 -->
    <dependency>
    	<groupId>org.springframework</groupId>
    	<artifactId>spring-test</artifactId>
    	<version>${springVersion}</version>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
    
      <!-- spring模塊庫 -->
    <dependency>
    	<groupId>org.springframework</groupId>
    	<artifactId>spring-beans</artifactId>
    	<version>${springVersion}</version>
    </dependency> 
    <dependency>
    	<groupId>org.springframework</groupId>
    	<artifactId>spring-web</artifactId>
    	<version>${springVersion}</version>
    </dependency>
    <dependency>
    	<groupId>org.springframework</groupId>
    	<artifactId>spring-webmvc</artifactId>
    	<version>${springVersion}</version>
    </dependency> 
    
    
    <!-- Servlet dependencies -->
    <!-- servlet(HttpServletRequest,HttpServletResponse) -->	
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<version>3.1.0</version>
		</dependency>
		 <!-- servlet(HttpServletRequest,HttpServletResponse) -->	   
		<dependency>
		    <groupId>javax.servlet</groupId>
		    <artifactId>jstl</artifactId>
		    <version>1.2</version>
		</dependency>
		<dependency>
			<groupId>javax.servlet.jsp</groupId>
			<artifactId>javax.servlet.jsp-api</artifactId>
			<version>2.3.1</version>
		</dependency>
		
		<!-- https://mvnrepository.com/artifact/org.codehaus.jackson/jackson-mapper-asl -->
		<!-- java對象和json相互轉化 -->
	<dependency>
	    <groupId>org.codehaus.jackson</groupId>
	    <artifactId>jackson-mapper-asl</artifactId>
	    <version>1.9.13</version>
	</dependency>
	<dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.7.4</version>
    </dependency>
		
		
		
  </dependencies>
  
  
  
  <build>
  	<pluginManagement>
  		<plugins>
  			<plugin>
  				<!-- 需要聲明maven-plugin版本,用來管理包,否則會報錯 -->
  				<groupId>org.apache.maven.plugins</groupId>
  				<artifactId>maven-war-plugin</artifactId>
  				<version>2.6</version>
  				<configuration>
  					<warSourceDirectory>src/main/webapp</warSourceDirectory>
  					<warName>gugua9</warName>
  					<!-- 屏蔽web.xml  -->
  					<failOnMissingWebXml>false</failOnMissingWebXml>
  				</configuration>
  			</plugin>
  			<!-- define the project compile level -->  
  			<plugin>
  				<groupId>org.apache.maven.plugins</groupId>
  				<artifactId>maven-compiler-plugin</artifactId>
  				<configuration>
  					<source>1.8</source>
  					<target>1.8</target>
  				</configuration>
  			</plugin>
  		</plugins>
  	</pluginManagement>
    <finalName>gugua9</finalName>
  </build>

  

 

message.java

加入xml注解就支持xml,不加入只支持json

package springmvc.domain;

import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

//適應XML輸出
@XmlRootElement(name="message")
public class Message {

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

	@XmlElement
	public String getName() {
		return name;
	}
		
	@XmlElement
	public String getText() {
		return text;
	}
	
	
}

  

mvc/config 配置開啟

package springmvc.configuration;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;

//開啟mvc,配置類
@Configuration
@EnableWebMvc
@ComponentScan(basePackages="springmvc")
public class HelloWorldConfiguration {

	
}

  

初始化

package springmvc.configuration;

import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

//初始化
public class HelloWorldInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {

	@Override
	protected Class<?>[] getRootConfigClasses() {
		// TODO Auto-generated method stub
		return new Class[] { HelloWorldConfiguration.class };
	}

	@Override
	protected Class<?>[] getServletConfigClasses() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	protected String[] getServletMappings() {
		// TODO Auto-generated method stub
		return new String[]{"/"};
	}

}

  

 

控制器:

package springmvc.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;

import springmvc.domain.Message;

@RestController
public class HelloWorldRestController {

	
	@RequestMapping(value="/hello/{player}")
	public Message message(@PathVariable String player  )
	{
		Message msg = new Message(player, "hello," + player);
		
		return msg;
		
	}
	
}

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM