`
m635674608
  • 浏览: 5043462 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Spring 4.x实现Restful web service

 
阅读更多

   首先我们还是跟之前一样,创建一个maven项目,不过因为Spring Restful web service是基于Spring 4.x版本的,所以我在这里就直接将Spring升级到了4.0.8,下面我贴出我的pom文件主要的依赖:

 

<properties>
        <spring.version>4.0.8.RELEASE</spring.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.7.2</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
            <version>1.8.4</version>
        </dependency>
        <!-- web项目编译时需要,部署到tomcat中就不需要了 -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.2</version>
            <scope>provided</scope>
        </dependency>
        <!-- web项目编译时需要,部署到tomcat中就不需要了 -->
 
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.3.4</version>
        </dependency>
        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-mapper-asl</artifactId>
            <version>1.8.5</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.4.3</version>
        </dependency>
 
    </dependencies>
    <repositories>
        <repository>
            <id>spring-releases</id>
            <url>https://repo.spring.io/libs-release</url>
        </repository>
    </repositories>

 

 

    这里有spring,springMVC,jackson及编译时需要的servlet-api及jsp-api依赖,就没有其他多余的依赖了。因为spring是原生支持Jackson,所以我这里并没有选择使用我常用的fastjson,或者gson。当然,如果你们在自己的项目中使用的是fastjson,或gson的话,也没有关系,替换使用的话也还是很方便与简单的,这里不做详细介绍。

    添加依赖后,就是配置web文件了。创建一个Restful web service与普通的springMVC项目没有什么区别,所以web配置也跟大家创建普通springMVC项目一样,简单的只需要配置一下servlet与servlet-mapping就可以了。然后就是指定springMVC配置文件,并添加到init-param或context-param中就可以了。

    

 

<context:component-scan base-package="com.yyd.spring.aop.rest.controller" />
     
    <bean    class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>
    <bean    class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
        <property name="messageConverters">
            <list>
                <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" />
            </list>
        </property>
    </bean>

   

@RestController
 
public class GreetingController {
 
    private static final String template="Hello,%s";
 
    private final AtomicLong counter = new AtomicLong();
 
    @RequestMapping("/greeting")
 
    public Greeting greeting(@RequestParam(value="name",defaultValue="World") String name){
 
        return new Greeting(counter.getAndIncrement(),String.format(template, name));
 
    }
 
}

    这里我们看到控制器上的注解由我们经常使用的@Controller变成了@RestController。@RestControllr是spring 4.x中的新注解,@RestController,表明该类的每个方法返回对象而不是视图。它实际就是@Controller和@ResponseBody混合使用的简写方法。@ResponseBody的作用是将返回的对象放入响应消息体中("其实大家都懂的,啰嗦了一句。")。

        然后大家就可以启动tomcat或jetty服务器,在浏览器中输入:

 http://localhost:8080/greeting

 

     然后就可以看到浏览器返回的结果了,

{"id":1,"content":"Hello, World!"}

 

    至此,一个简单的基于Spring 4.x的Restful web service框架就已经完成,谢谢大家,希望对大家有所帮助。

 

 

   http://my.oschina.net/yuyidi/blog/352909

分享到:
评论

相关推荐

    Spring 3.x企业应用开发实战.rar

    4. **消息支持**:Spring 3.x增加了对JMS(Java Message Service)的支持,便于实现异步处理和消息传递。 5. **AOP增强**:新增了更多的通知类型,如around advice,以及更灵活的切点表达式,使得AOP的使用更加便捷...

    Spring3.x企业应用开发实战书中源码

    9. **RESTful支持**:Spring3.x强化了对RESTful风格的Web服务的支持,通过`@RestController`注解和`@RequestMapping`的HTTP方法参数,可以轻松创建RESTful API。 10. **Spring Security**:Spring3.x还提供了Spring...

    Spring3.X编程技术与应用

    随着Web服务的兴起,Spring3.X新增了对RESTful服务的支持。Spring提供了Spring MVC作为构建Web应用的框架,支持RESTful架构风格,通过注解来简化请求映射、处理、参数绑定等。 6.事务管理: Spring框架提供了声明式...

    精通Spring+4.x++企业应用开发实战包含源码

    在4.x版本中,Spring MVC支持了更多的视图技术,如Thymeleaf、FreeMarker等,增强了对RESTful API的支持,提升了Web应用的性能和灵活性。 此外,Spring AOP(面向切面编程)是另一个关键特性,允许开发者定义横切...

    spring3.2.x源码 for Eclipse

    在Spring 3.2.x中,有对RESTful服务支持的增强,以及更好的异常处理和视图解析能力。 5. **数据访问/集成** Spring提供了对各种数据库的抽象,包括JDBC、ORM(Object-Relational Mapping)框架如Hibernate和...

    Spring 3.x企业应用开发实战.pdf

    5. **注解驱动开发**:Spring 3.x开始大力推广注解,如@Service、@Controller、@Repository和@Autowired等,简化了XML配置,提高了开发效率。 6. **MVC框架**:Spring MVC是Spring提供的Web应用开发模块,提供了...

    Spring4.x++企业应用开发实战

    《Spring4.x++企业应用开发实战》这本书是针对Spring框架的深入学习与实践指南,尤其关注Spring 4.x版本的应用。Spring作为Java企业级开发的重要框架,提供了丰富的功能,包括依赖注入、AOP(面向切面编程)、数据...

    org.springframework.web.servlet-3.1.0.RELEASE.jar.zip

    4. **@PathVariable注解**:在处理RESTful风格的URL时,@PathVariable可以从URL路径变量中获取值。例如,`@PathVariable("id") Long id`可以从URL路径如`/users/{id}`中提取"id"。 5. **HandlerAdapter和...

    Spring3.x企业开发实战 陈雄华 源码

    3. **Spring MVC**:Spring MVC是Spring框架的Web层组件,用于构建RESTful Web服务。源码中会有Controller、Service、DAO层的实现,以及视图解析和模型数据绑定的过程。 4. **数据访问集成**:Spring提供了与多种...

    spring 3.x source code

    4. **RESTful Web Services**:通过Spring MVC的扩展,Spring 3.x更便于创建符合REST原则的Web服务。 5. **Message Driven POJOs (MDPs)**:对JMS的支持得到增强,允许开发者使用普通的Java对象作为消息驱动的bean,...

    2_构建一个简单的spring-boot的RESTful Web Service项目.zip

    在本项目中,我们将探讨如何使用Spring Boot框架创建一个简单的RESTful Web Service。Spring Boot以其简洁的配置和快速开发能力,已经成为Java开发人员构建微服务的首选工具。RESTful Web Service是一种基于HTTP协议...

    spring4.x基本jar包

    在Spring 4.x中,依赖注入主要通过XML配置文件、注解或Java配置类来实现。XML配置文件是最传统的做法,通过`&lt;bean&gt;`标签定义和配置对象。注解方式则更简洁,例如`@Component`、`@Service`、`@Repository`和`@...

    使用SpringBoot整合jersey 实现Restful web service.同时整合springmvc。

    在本文中,我们将深入探讨如何使用SpringBoot框架与Jersey库整合来实现RESTful Web服务,并同时集成Spring MVC。这将使我们能够构建一个高效、灵活的后端系统,为客户端提供API接口。 首先,SpringBoot是Spring框架...

    spring3.x附录A B.pdf

    Spring的`DefaultWsdl11Definition`类可以用来自动生成WSDL(Web Service Definition Language)文件,定义服务的接口。对于RESTful服务,Spring MVC提供了`@RestController`注解,使得创建REST服务变得简单。 至于...

    Spring3.x MVC 例子

    Spring3.x MVC是Java开发中广泛使用的一个框架,它提供了模型-视图-控制器(MVC)架构,用于构建高效、可维护的Web应用程序。在本教程中,我们将深入探讨Spring3.x MVC的关键特性,通用配置,以及在企业级项目中的...

    Spring+4.x.zip

    Spring 4.x大力推广了注解,比如@Service、@Repository、@Controller和@Autowired等,使得代码更加简洁,减少了XML配置文件的使用。 5. **SpEL(Spring Expression Language)** SpEL是Spring的表达式语言,用于...

    RESTful Web Service Demo

    总的来说,"RESTful Web Service Demo"项目是一个实践性的教程,它向我们展示了如何使用Java和Spring Boot来创建一个支持CRUD操作的RESTful服务,这在现代Web开发中是非常常见的需求。通过学习和实践这个示例,...

    spring中文API 3.x 2.x版本

    3. **RESTful支持**:加强了对RESTful Web服务的支持,增加了@PathVariable、@MatrixVariable等注解。 4. **SpEL(Spring Expression Language)**:一种强大的表达式语言,用于在运行时查询和操作对象图。 5. **...

    Spring+3.x企业应用开发实战光盘源码

    Spring 3.x还引入了强大的消息支持,包括JMS(Java Message Service)和AMQP(Advanced Message Queuing Protocol)抽象,这使得异步通信和解耦成为可能,提高了系统的可扩展性。 在源码中,读者可能会找到关于以上...

Global site tag (gtag.js) - Google Analytics