1、Idea里新建项目
2、创建HelloController
3、运行
4、开发环境热部署
pom.xml
查看目前已有的依赖
配置properties
设置
ctrl+shift+alt+/
新版本的compiler.automake.allow.when.app.running已经不在registry里面了,在settings里面的Advanced settings里面Allow auto-make to start even if developed application is currently running 就可以了。记得确认!!!
5、控制器
package com.example.helloworld.controller;import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;/*** @Author Fxdll* @Date 2024/4/22 22:24* @PackageName:com.example.helloworld.controller* @ClassName: HelloController* @Description: TODO* @Version 1.0*/
@RestController
public class HelloController {//www.example.com/hello//https://localhost:8080/hello// @RequestMapping(value = "/hello",method = RequestMethod.GET)// @GetMapping("/hello")//https://localhost:8080/hello?nickname=zhangsan@RequestMapping( "/hello")//@ResponseBodypublic String hello(){return "你好世界";}
}
6、参数传递
整体代码
package com.example.helloworld.controller;import com.example.helloworld.demos.web.User;
import org.springframework.web.bind.annotation.*;/*** @Author Fxdll* @Date 2024/4/28 23:20* @PackageName:com.example.helloworld.controller* @ClassName: ParamsController* @Description: TODO* @Version 1.0*/@RestController
public class ParamsController {//http://localhost:8080/getTest1//路由getTest1 方法名:getTest1
// @GetMapping("/getTest1/{id}")
// public String getTest1(@PathVariable("id") int id) {
// return "GET请求";
// }//http://localhost:8080/getTest1@RequestMapping(value = "/getTest1", method = RequestMethod.GET)public String getTest1() {return "GET请求";}@RequestMapping(value = "/getTest2", method = RequestMethod.GET)//http://localhost:8080/getTest2?nickname=fxdll&phone=123456public String getTest2(String nickname,String phone) {System.out.println("nickname:"+nickname);System.out.println("phone:"+phone);return "GET请求";}
//加上RequestParam 可以把nickname和name绑定在一起,加上requestparam则表示必须要传递nickname参数,否则会报错,加上required=false则表示nickname参数可以不传递@RequestMapping(value = "/getTest3", method = RequestMethod.GET)public String getTest3(@RequestParam(value = "nickname",required=false ) String name) {System.out.println("nickname:"+name);return "GET请求: ";}@RequestMapping(value = "/getTest4", method = RequestMethod.GET)public String getTest4( String name) {System.out.println("nickname :"+name);return "GET请求: ";}//http://localhost:8080/postTest1//路由postTest1 方法名:postTest1@RequestMapping(value = "/postTest1", method = RequestMethod.POST)public String postTest1() {return "POST请求: ";}//http://localhost:8080/postTest2?username=fxdll&password=123456//路由postTest2 方法名:postTest2@RequestMapping(value = "/postTest2", method = RequestMethod.POST)public String postTest2(String username, String password) {System.out.println("username:"+username);System.out.println("password:"+password);return "post请求 ";}@RequestMapping(value = "/postTest3", method = RequestMethod.POST)public String postTest3(User user) {System.out.println(user);return "POST请求 ";}@RequestMapping(value = "/postTest4", method = RequestMethod.POST)public String post4(@RequestBody User user) {System.out.println(user);return "post请求 ";}@GetMapping("/test/**")public String get() {return "通配符参数: ";}
}
package com.example.helloworld.controller;import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;/*** @Author Fxdll* @Date 2024/4/22 22:24* @PackageName:com.example.helloworld.controller* @ClassName: HelloController* @Description: TODO* @Version 1.0*/
@RestController
public class HelloController {@RequestMapping(value = "/hello",method = RequestMethod.GET)//https://localhost:8080/hello?nickname=zhangsan
// @RequestMapping( "/hello")public String hello(String nickname){return "你好" + nickname;}
}
请求
POST2
多个参数时
package com.example.helloworld.controller;import com.example.helloworld.entity.User;
import org.springframework.web.bind.annotation.*;/*** @Author Fxdll* @Date 2024/4/28 23:20* @PackageName:com.example.helloworld.controller* @ClassName: ParamsController* @Description: TODO* @Version 1.0*/@RestController
public class ParamsController {//http://localhost:8080/getTest1//路由getTest1 方法名:getTest1
// @GetMapping("/getTest1/{id}")
// public String getTest1(@PathVariable("id") int id) {
// return "GET请求";
// }//http://localhost:8080/getTest1@RequestMapping(value = "/getTest1", method = RequestMethod.GET)public String getTest1() {return "GET请求";}@RequestMapping(value = "/getTest2", method = RequestMethod.GET)//http://localhost:8080/getTest2?nickname=fxdll&phone=123456public String getTest2(String nickname,String phone) {System.out.println("nickname:"+nickname);System.out.println("phone:"+phone);return "GET请求";}
//加上RequestParam 可以把nickname和name绑定在一起,加上requestparam则表示必须要传递nickname参数,否则会报错,加上required=false则表示nickname参数可以不传递@RequestMapping(value = "/getTest3", method = RequestMethod.GET)public String getTest3(@RequestParam(value = "nickname",required=false ) String name) {System.out.println("nickname:"+name);return "GET请求: ";}@RequestMapping(value = "/getTest4", method = RequestMethod.GET)public String getTest4( String name) {System.out.println("nickname :"+name);return "GET请求: ";}//http://localhost:8080/postTest1//路由postTest1 方法名:postTest1@RequestMapping(value = "/postTest1", method = RequestMethod.POST)public String postTest1() {return "POST请求: ";}//http://localhost:8080/postTest2?username=fxdll&password=123456//路由postTest2 方法名:postTest2@RequestMapping(value = "/postTest2", method = RequestMethod.POST)public String postTest2(String username, String password) {System.out.println("username:"+username);System.out.println("password:"+password);return "post请求 ";}@RequestMapping(value = "/postTest3", method = RequestMethod.POST)public String postTest3(User user) {System.out.println(user);return "POST请求 ";}//当需要接受json格式数据时,需要加上@RequestBody注解@RequestMapping(value = "/postTest4", method = RequestMethod.POST)public String post4(@RequestBody User user) {System.out.println(user);return "post请求 ";}@GetMapping("/test/**")public String get() {return "通配符参数: ";}
}
user实体类
get set方法
package com.example.helloworld.entity;/*** @Author Fxdll* @Date 2024/4/29 23:33* @PackageName:com.example.helloworld.entity* @ClassName: User* @Description: TODO* @Version 1.0*/
public class User {private String username;private String password;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}@Overridepublic String toString() {return "User{" +"username='" + username + '\'' +", passwordl='" + password + '\'' +'}'; // 省略其他属性}
}