武鸣网站建设购物网站的开发
1.@RestController
标记一个类为 REST 控制器,处理 HTTP 请求并直接返回数据(如 JSON/XML),而不是视图(如 HTML),一般是放在类的上边
@RestController
public class UserController {@GetMapping("/hello") //后续GetMapping过多可以写一个共有的路径在类的外边public String hello() {return "Hello, World!";}
}
2.@RequestMapping
用于将 HTTP 请求映射到特定的处理方法(Controller 方法),指定请求的URL路径,定义 HTTP 方法类型(GET、POST 等),路径一般和下面的方法名相同
//数组参数
@RestController
@RequestMapping("/url")
public class array {@RequestMapping("/array")public String array(String[] hobby) {System.out.println(Array.toString(hobby));return "OK";}
}
3.@RequestParam
用于绑定 HTTP 请求参数到控制器方法参数的注解,通常用于处理 URL 中的查询参数。如果方法形参和请求参数名称不匹配,可以使用该注解。
提取请求参数:从 URL 查询字符串(如 /user?id=123 )或表单数据中获取值。
参数绑定:将参数值自动转换为方法参数的类型(支持基本类型、对象、集合等)。
验证与默认值:支持参数必填性检查和默认值设置。
//集合参数
@RestController
@RequestMapping("/url")
public class array {@RequestMapping("/list")public String list(@RequestParam List<String> hobby) {System.out.println(hobby);return "OK";}
}//设置默认值
public Result page(@RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "1") Integer pageSize){...}
4.@DateTimeFormat
用于处理日期和时间类型参数绑定的注解,主要用于将字符串格式的请求参数。
指定日期格式:定义字符串与日期对象的转换规则。
支持多种类型:兼容 java.util.Date 、 java.time.* (JSR-310)等日期/时间类。
自动类型转换:Spring 在绑定请求参数时自动应用格式规则。(pattern="yyyy-MM-dd HH:mm:ss"
@RequestMapping("/dataParm")
public String dataParam(@(DataTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")LocalDataTime updataTime){System.out.println(updataTime);return "OK";}
5.@RequestBody
一般绑定到方法的参数前,用于接收客户端发送的JSON、XML 等数据动转换封装为 Java的实体对象。
数据绑定:将请求体内容(如 JSON)反序列化为 Java 对象。
支持多种格式:通过 HttpMessageConverter 处理 JSON(默认)、XML、表单等数据格式。
@RequestMapping("/jsonParam")
public String jsonParam(@RequestBody User user){System.out.println(user);return "ok";
}Public class User{private String name;private Integer age;...
}
//json格式数据:
{"name":"jack""age":"16"...
}
6. @PathVariable
用于从 URI 模板中提取变量值并绑定到方法参数的注解。
提取路径变量:从 URL 的占位符(如 /user/{id} )中获取动态值。
类型自动转换:将字符串形式的路径变量转换为方法参数类型(如 String → Long )。
@GetMapping("/user/{id}")
public User getUser(@PathVariable Long id) {// 根据 id 查询用户return userService.findById(id);
}
7.@Resource
依赖注入,给对象的属性注入数据,可以定义在字段上,也可以定义在方法上。一般用在注入dao层数据源,跟@Autowired相似,区别就是@Autowired默认是先根据类型,而@Resource默认是先根据名称
三层架构(Controller-Service-Dao)
8.@Autowired
运行时,IOC容器会提供该类型的Bean对象,并赋值给该容器
9.@Service
标记一个类作为服务层,交给IOC容器管理,成为IOC容器的bean对象(成为Spring容器管理的Bean),可以通过依赖注入(如 @Autowired
)在其他地方使用它,service运行的时候依赖Dao层,需要IOC容器提供
@RestController
Public class EmpController{@Autowired //运行时,IOC容器会提供该类型的Bean对象,并赋值给该容器(依赖注入)private EmpService empservice;...
}
10.@Component
交给IOC容器管理,成为IOC容器的bean对象,Controller运行的时候依赖Service层,需要IOC容器提供
@Component
public class EmpServiceA implements EmpService{@Autowried //运行时,IOC容器会提供该类型的Bean对象,并赋值给该容器(依赖注入)private EmpDao empdao;...
}@Component
public class EmpDaoA implements EmpDao{...}