学习过程中看到很多朋友为了省事,把Application的启动类作为Controller,在实际的项目过程中严重反对这样的行为(bad smell);
创建controllers的package,并创建类InterfaceDemoController
@RestController
public class InterfaceDemoController {
}
创建方法,期望结果是,在浏览器中输入localhost:8080/getString
可以得到一个字符串this is a string
@RequestMapping("/getString")
public String getResultAsString() {
return "this is a string";
}
执行结果:
主要annotation解释:
@RestController:用来标识一个类是Controller类型的,会通过Spring进行实例化,并可以接受到http请求;
@RequestMapping:标识方法或类作为一个http接口时的调用路径,如上面例子中如果没有在类中指明上下文,则getString标识接口地址为:ip:port/getString
注意:经过测试,"/getString"和"getString"的效果一致
在实际的业务实现中往往没有返回一个字符串那么简单,当然字符串也可以是个Json,只不过还要自己来转换一次,接下来实现一个直接返回自定义的对象;
定义一个java bean
public class User {
public final String username;
public final String password;
public User(String username, String password) {
this.username = username;
this.password = password;
}
}
定义rest接口
@RequestMapping("getUser")
public User getUser() {
return new User("username", "password");
}
浏览器中输入localhost:8080/getUser,查看结果: