首先我们还是跟之前一样,创建一个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
相关推荐
4. **消息支持**:Spring 3.x增加了对JMS(Java Message Service)的支持,便于实现异步处理和消息传递。 5. **AOP增强**:新增了更多的通知类型,如around advice,以及更灵活的切点表达式,使得AOP的使用更加便捷...
9. **RESTful支持**:Spring3.x强化了对RESTful风格的Web服务的支持,通过`@RestController`注解和`@RequestMapping`的HTTP方法参数,可以轻松创建RESTful API。 10. **Spring Security**:Spring3.x还提供了Spring...
随着Web服务的兴起,Spring3.X新增了对RESTful服务的支持。Spring提供了Spring MVC作为构建Web应用的框架,支持RESTful架构风格,通过注解来简化请求映射、处理、参数绑定等。 6.事务管理: Spring框架提供了声明式...
在4.x版本中,Spring MVC支持了更多的视图技术,如Thymeleaf、FreeMarker等,增强了对RESTful API的支持,提升了Web应用的性能和灵活性。 此外,Spring AOP(面向切面编程)是另一个关键特性,允许开发者定义横切...
在Spring 3.2.x中,有对RESTful服务支持的增强,以及更好的异常处理和视图解析能力。 5. **数据访问/集成** Spring提供了对各种数据库的抽象,包括JDBC、ORM(Object-Relational Mapping)框架如Hibernate和...
5. **注解驱动开发**:Spring 3.x开始大力推广注解,如@Service、@Controller、@Repository和@Autowired等,简化了XML配置,提高了开发效率。 6. **MVC框架**:Spring MVC是Spring提供的Web应用开发模块,提供了...
《Spring4.x++企业应用开发实战》这本书是针对Spring框架的深入学习与实践指南,尤其关注Spring 4.x版本的应用。Spring作为Java企业级开发的重要框架,提供了丰富的功能,包括依赖注入、AOP(面向切面编程)、数据...
4. **@PathVariable注解**:在处理RESTful风格的URL时,@PathVariable可以从URL路径变量中获取值。例如,`@PathVariable("id") Long id`可以从URL路径如`/users/{id}`中提取"id"。 5. **HandlerAdapter和...
3. **Spring MVC**:Spring MVC是Spring框架的Web层组件,用于构建RESTful Web服务。源码中会有Controller、Service、DAO层的实现,以及视图解析和模型数据绑定的过程。 4. **数据访问集成**:Spring提供了与多种...
4. **RESTful Web Services**:通过Spring MVC的扩展,Spring 3.x更便于创建符合REST原则的Web服务。 5. **Message Driven POJOs (MDPs)**:对JMS的支持得到增强,允许开发者使用普通的Java对象作为消息驱动的bean,...
在本项目中,我们将探讨如何使用Spring Boot框架创建一个简单的RESTful Web Service。Spring Boot以其简洁的配置和快速开发能力,已经成为Java开发人员构建微服务的首选工具。RESTful Web Service是一种基于HTTP协议...
在Spring 4.x中,依赖注入主要通过XML配置文件、注解或Java配置类来实现。XML配置文件是最传统的做法,通过`<bean>`标签定义和配置对象。注解方式则更简洁,例如`@Component`、`@Service`、`@Repository`和`@...
在本文中,我们将深入探讨如何使用SpringBoot框架与Jersey库整合来实现RESTful Web服务,并同时集成Spring MVC。这将使我们能够构建一个高效、灵活的后端系统,为客户端提供API接口。 首先,SpringBoot是Spring框架...
Spring的`DefaultWsdl11Definition`类可以用来自动生成WSDL(Web Service Definition Language)文件,定义服务的接口。对于RESTful服务,Spring MVC提供了`@RestController`注解,使得创建REST服务变得简单。 至于...
Spring3.x MVC是Java开发中广泛使用的一个框架,它提供了模型-视图-控制器(MVC)架构,用于构建高效、可维护的Web应用程序。在本教程中,我们将深入探讨Spring3.x MVC的关键特性,通用配置,以及在企业级项目中的...
Spring 4.x大力推广了注解,比如@Service、@Repository、@Controller和@Autowired等,使得代码更加简洁,减少了XML配置文件的使用。 5. **SpEL(Spring Expression Language)** SpEL是Spring的表达式语言,用于...
总的来说,"RESTful Web Service Demo"项目是一个实践性的教程,它向我们展示了如何使用Java和Spring Boot来创建一个支持CRUD操作的RESTful服务,这在现代Web开发中是非常常见的需求。通过学习和实践这个示例,...
3. **RESTful支持**:加强了对RESTful Web服务的支持,增加了@PathVariable、@MatrixVariable等注解。 4. **SpEL(Spring Expression Language)**:一种强大的表达式语言,用于在运行时查询和操作对象图。 5. **...
Spring 3.x还引入了强大的消息支持,包括JMS(Java Message Service)和AMQP(Advanced Message Queuing Protocol)抽象,这使得异步通信和解耦成为可能,提高了系统的可扩展性。 在源码中,读者可能会找到关于以上...