Spring中@Controller和@RestControlleripv4与ipv6之间的区别别

在 SegmentFault,解决技术问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
一线的工程师、著名开源项目的作者们,都在这里:
获取验证码
已有账号?
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
@Service注解和@Controller获取请求方式一样吗
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
@Service是用来标注业务层组件,而@Controller是MVC中的C,其作用类似于struts中的@Action
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:博客分类:
之前有一篇《》介绍了普通方式开发spring web mvc web service。接下来看看使用spring boot如何快速构建一个。
Spring Boot使我们更容易去创建基于Spring的独立和产品级的可以”即时运行“的应用和服务。支持约定大于配置,目的是尽可能快地构建和运行Spring应用。
之前我们创建基于Spring的项目需要考虑添加哪些Spring依赖和第三方的依赖。使用Spring Boot后,我们可以以最小化的依赖开始spring应用。大多数Spring Boot应用需要很少的配置即可运行,比如我们可以创建独立独立大Java应用,然后通过java -jar运行启动或者传统的WAR部署。其也提供了命令行工具来直接运行Spring脚本(如groovy脚本)。也就是说Spring Boot让Spring应用从配置到运行变的更加简单,但不对Spring本身提供增强(即额外的功能)。
让所有Spring开发变得更快,且让更多的人更快的进行Spring入门体验,提供“starter” POM来简化我们的Maven配置(也就是说使用Spring Boot只有配合maven/gradle等这种依赖管理工具才能发挥它的能力),不像以前,构建一个springmvc项目需要进行好多配置等
开箱即用,快速开始需求开发而不被其他方面影响(如果可能会自动配置Spring)
提供一些非功能性的常见的大型项目类特性(如内嵌服务器、安全、度量、健康检查、外部化配置),如可以直接地内嵌Tomcat/Jetty(不需要单独去部署war包)
绝无代码生成,且无需XML配置
我的构建环境
Servlet3容器
首先使用Maven创建一个普通Maven应用即可,不必是web的。
添加Spring Boot相关POM配置
在pom.xml中添加如下配置
&!-- Inherit defaults from Spring Boot --&
&groupId&org.springframework.boot&/groupId&
&artifactId&spring-boot-starter-parent&/artifactId&
&version&0.5.0.BUILD-SNAPSHOT&/version&
&!-- Add typical dependencies for a web application --&
&dependencies&
&dependency&
&groupId&org.springframework.boot&/groupId&
&artifactId&spring-boot-starter-web&/artifactId&
&/dependency&
&/dependencies&
&!-- Package as an executable JAR --&
&groupId&org.springframework.boot&/groupId&
&artifactId&spring-boot-maven-plugin&/artifactId&
&/plugins&
&!-- Allow access to Spring milestones and snapshots --&
&!-- (you don't need this if you are using anything after 0.5.0.RELEASE) --&
&repositories&
&repository&
&id&spring-snapshots&/id&
&url&http://repo.spring.io/snapshot&/url&
&snapshots&&enabled&true&/enabled&&/snapshots&
&/repository&
&repository&
&id&spring-milestones&/id&
&url&http://repo.spring.io/milestone&/url&
&snapshots&&enabled&true&/enabled&&/snapshots&
&/repository&
&/repositories&
&pluginRepositories&
&pluginRepository&
&id&spring-snapshots&/id&
&url&http://repo.spring.io/snapshot&/url&
&/pluginRepository&
&pluginRepository&
&id&spring-milestones&/id&
&url&http://repo.spring.io/milestone&/url&
&/pluginRepository&
&/pluginRepositories&
继承spring-boot-starter-parent后我们可以继承一些默认的依赖,这样就无需添加一堆相应的依赖,把依赖配置最小化;spring-boot-starter-web提供了对web的支持,spring-boot-maven-plugin提供了直接运行项目的插件,我们可以直接mvn spring-boot:run运行。
package com.sishuok.
* &p&User: Zhang Kaitao
* &p&Date: 13-12-22
* &p&Version: 1.0
public class User {
public Long getId() {
public void setId(Long id) {
public String getName() {
public void setName(String name) {
this.name =
public boolean equals(Object o) {
if (this == o)
if (o == null || getClass() != o.getClass())
User user = (User)
if (id != null ? !id.equals(user.id) : user.id != null)
public int hashCode() {
return id != null ? id.hashCode() : 0;
package com.sishuok.
import com.sishuok.entity.U
import org.springframework.boot.SpringA
import org.springframework.boot.autoconfigure.EnableAutoC
import org.springframework.web.bind.annotation.PathV
import org.springframework.web.bind.annotation.RequestM
import org.springframework.web.bind.annotation.RestC
* &p&User: Zhang Kaitao
* &p&Date: 13-12-22
* &p&Version: 1.0
//@EnableAutoConfiguration
@RestController
@RequestMapping("/user")
public class UserController {
@RequestMapping("/{id}")
public User view(@PathVariable("id") Long id) {
User user = new User();
user.setId(id);
user.setName("zhang");
//public static void main(String[] args) {
SpringApplication.run(UserController.class);
第一种方式
通过在UserController中加上@EnableAutoConfiguration开启自动配置,然后通过SpringApplication.run(UserController.class);运行这个控制器;这种方式只运行一个控制器比较方便;
第二种方式
通过@Configuration+@ComponentScan开启注解扫描并自动注册相应的注解Bean
package com.
import com.sishuok.controller.UserC
import org.springframework.boot.SpringA
import org.springframework.boot.autoconfigure.EnableAutoC
import org.springframework.ponentS
import org.springframework.context.annotation.C
* &p&User: Zhang Kaitao
* &p&Date: 13-12-22
* &p&Version: 1.0
@Configuration
@ComponentScan
@EnableAutoConfiguration
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class);
到此,一个基本的REST风格的web应用就构建完成了。
地址栏输入http://localhost:8080/user/1即可看到json结果。
如果大家查看其依赖,会发现自动添加了需要相应的依赖(不管你用/不用),但是开发一个应用确实变得非常快速,对于想学习/体验Spring的新手,快速建立项目模型等可以考虑用这种方式。当然如果不想依赖这么多的jar包,可以去掉parent,然后自己添加依赖。
欢迎加入spring群进行交流。
下载次数: 4089
浏览 358180
spring boot基础学习系列文章:广告打的蛮远的,有点烂
为什么我运行main函数,eclipse就直接要结束进程,什么错误信息都没有?先mvn install了的 我也是install成功了的,但是还是没法运行main函数
体验下零配置的感觉。看看playframework吧,让你真正体验到什么是飞一般的感觉!
这个。。。估计用起来比较纠结,还是喜欢掌握整个项目的感觉没错,我也认为这样的东西没什么用,虽然说新手用这个很容易上手,但是离开了这个什么也不懂。
& 上一页 1
jinnianshilongnian
浏览量:1736816
浏览量:2147862
浏览量:4329572
浏览量:177531
浏览量:1229767
浏览量:188270
浏览量:3699354
浏览量:450601
浏览量:475606
感谢楼主,你的文章给我很大的帮助。
Shiro异常1:java.lang.IllegalArgum ...
http://blog.csdn.net/u ...
http://blog.csdn.net/u ...
u 写道 写道Alex丿 写 ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'在 SegmentFault,解决技术问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
一线的工程师、著名开源项目的作者们,都在这里:
获取验证码
已有账号?
标签:至少1个,最多5个
本部分示例代码见下的 RespBodyController.java 和 TheRestController.java
① 使用注解@ResponseBody映射响应体
注解@ResponseBody和@RequestBody很像。这个注解可以放到一个方法中,指示返回类型应该直接被写进HTTP响应体中(而不是放到一个Model中、也不是翻译为一个视图名)。例如:
@GetMapping("/something")
@ResponseBody
public String helloWorld() { return "Hello World"; }
上面的示例会返回文本 “Hello World”,并把它写到HTTP响应流中。
就像@RequestBody,Spring 使用HttpMessageConverter把返回的对象转换到请求体中。更多关于这些转换器的消息,参见.
② 使用注解@RestController创建 REST 控制器
一个非常常见的场景是让控制器实现 REST API,因此只服务于 JSON、XML 或者自定义的 MediaType 内容。为了方便,避免在所有的@RequestMapping方法上加上@ResponseBody注解,你可以用@RestController注解你的控制器类.
是一个模板注解,它合并了@ResponseBody和@Controller。不仅如此,它还为你的控制器赋予了更多的意义,在未来的发行版本中也将包含更多语义。
就像常规的@Controllers,@RestController可以由@ControllerAdvice或者@RestControllerAdvice Bean 协助。详情见一节
0 收藏&&|&&1
你可能感兴趣的文章
1 收藏,462
分享到微博?
我要该,理由是:SpringMVC当中的Controller接口和Struts2当中的Action有什么区别? - 知乎41被浏览4189分享邀请回答51 条评论分享收藏感谢收起0添加评论分享收藏感谢收起查看更多回答springmvc 中@Controller和@RestController的区别
时间: 11:53:27
&&&& 阅读:107
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&@Controller和@RestController的区别?官方文档:@RestController is a stereotype annotation that combines @ResponseBody and @Controller.意思是:@RestController注解相当于@ResponseBody + @Controller合在一起的作用。
1)如果只是使用@RestController注解Controller,则Controller中的方法无法返回jsp页面,配置的视图解析器InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。
例如:本来应该到success.jsp页面的,则其显示success.
2)如果需要返回到指定页面,则需要用 @Controller配合视图解析器InternalResourceViewResolver才行。3)如果需要返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解。标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&原文:/zhaoyan001/p/7064085.html
教程昨日排行
&&国之画&&&& &&&&&&
&& &&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!

我要回帖

更多关于 木马与病毒之间的区别 的文章

 

随机推荐