spring boot 之 controller

第一篇文章我们介绍了springboot的入门,本章我们将介绍如何进行controller之间的redirect跳转。
第一篇文章中我让大家创建了一个简单的maven web项目,我在这里说明一下,其实spring boot是可以不用创建web项目的,普通的java project就可以。

  1. 我们引用我们之前创建的web项目,第一章中我们已经添加了spring boot的支持,这里就不在做说明了,还记得我们第一章中application.java是怎么写的吗?
@RestController
@EnableWebMvc
@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

    @RequestMapping("/")
    String home(){
        return "hello world !";
    }

上面是我们第一章的写法,因为这一章我们需要跳转到其他的controller中去,因此我们需要改一下这个application.java文件,代码如下

@Controller
@EnableWebMvc
@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

    @RequestMapping("/")
    String home(){
        return "redirect:index";
    }
}

比较上面两段代码我们不难发现,第一个用的是@RestController注解,第二个用的是@Controller
那么这两个有什么区别呢,我在这里讲一下。
@Controller我们不陌生,我这里就不多说了。
@RestController 那么这个又是何方圣神呢?打开源码我们会发现下面这段代码

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Controller
@ResponseBody
public @interface RestController {
    String value() default "";
}

不难发现@RestController 中已经包含了@Controller@ResponseBody 的注解,@ResponseBody 大家也很熟悉了,在返回json的时候都会用到的。那么现在一切都明白了,@RestController = @Controller +@ResponseBody 姑且这样理解吧。如果你在controller中直接用@RestController 的话,那么该controller中所有的方法都将返回字符串,也就是为什么第一章中为什么能在页面显示hello world !的原因了。所有大家在注解controller的时候自行选择是用@RestController 还是 @Controller

  1. 创建新的controller
@RestController
@RequestMapping("/index")
public class Application {

    @RequestMapping
    String index(){
        return "hello this is index method !";
    }

在这里我要说明下我的项目结构

+com.boot.application
    |-application.java
+com.boot.application.controller
    |-IndexController.java

我们会发现IndexController.java是在application.java的子包下面,为什么这么写呢?在application.java中有这样一个注解 @SpringBootApplication 查看源码我们会发现在@SpringBootApplication 中包含了@ComponentScan 的注解,就是我们说的自动扫描,它会扫描本包已经本包下面的子包里的文件,这样一来我们IndexController.java中的 /index 就会被扫描到,这样的一个包名结构也是spring boot官方所建议的,spring boot建议我们直接写在src下面。
此时启动spring boot 在页面输入http://localhost:8080 就可以看到 hello this is index method !了。
好了,本文将介绍到这里,如果有什么不对的地方,希望大家指出,毕竟我也是刚刚开始学习spring boot,如果有什么疑问的地方请大家提出来,看到后我会回复的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值