SpringBoot笔记
类的封装
类的封装
//使用注解自动生成Setter、Getter、toString、无参构造函数、全参构造函数 @Data @NoArgsConstructor @AllArgsConstructor public class Emp { private Integer id; //ID private String username; //用户名 private String password; //密码 private String name; //姓名 private Short gender; //性别 , 1 男, 2 女 private String image; //图像url private Short job; //职位 , 1 班主任 , 2 讲师 , 3 学工主管 , 4 教研主管 , 5 咨询师 private LocalDate entrydate; //入职日期 private Integer deptId; //部门ID private LocalDateTime createTime; //创建时间 private LocalDateTime updateTime; //修改时间 }
返回结果的封装
@Data @NoArgsConstructor @AllArgsConstructor public class Result { private Integer code;//响应码,1 代表成功; 0 代表失败 private String msg; //响应信息 描述字符串 private Object data; //返回的数据 //成功响应 public static Result success() { return new Result(1, "success", null); } public static Result success(Object data) { return new Result(1, "success", data); } //失败响应 public static Result error(String msg) { return new Result(0, msg, null); } }
Controller
请求参数相关
// controller/HelloController.java // 注意函数和类的注解 @RestController public class HelloController { @RequestMapping("/hello") public String hello() { System.out.println("Hello World~"); return "Hello World~"; } }
简单请求参数
@RequestMapping("/simpleParam") public String simpleParam(@RequestParam(name = "name", required = false) String username, Integer age) { System.out.println(username + ": " + age); return "OK"; }
实体请求参数
需要先定义一个类,类中的属性名与请求参数中的键名相同,类需要生成getter, setter方法和toString()方法(用于输出调试)
@RequestMapping("/simplePojo") public String simplePojo(User user) { System.out.println(user); return "OK"; }
请求URL地址:http://localhost:8080/simplePojo?name=Tom&age=22
复杂实体请求参数
@RequestMapping("/complexPojo") public String complexPojo(User user) { System.out.println(user); return "OK"; }
请求URL地址:http://localhost:8080/complexPojo?name=Tom&age=22&address.province=Shanghai&address.city=Shanghai
数组请求参数
传递数组参数时就是把同一个键传入多次值
@RequestMapping("/arrayParam") public String arrayParam(String[] hobby) { System.out.println(Arrays.toString(hobby)); return "OK"; }
请求URL地址:http://localhost:8080/arrayParam?hobby=Reading&hobby=Sports
日期时间类型
传递日期时间参数时需要设置时间的格式,添加
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@RequestMapping("/dateParam") public String dateParam(@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")LocalDateTime updateTime) { //注意:需要在变量前添加@RequestParam System.out.println(updateTime); return "OK"; }
请求URL地址:http://localhost:8080/dateParam?updateTime=2024-08-20 19:56:00
业务逻辑相关
- controller(接收请求,响应数据)
- service(业务逻辑处理)
- dao(数据访问操作)
分层解耦
IOC(控制反转)和DI(依赖注入)
声明bean的注解有:
IOC容器
通过给类添加注解来将类的实例对象转入IOC容器,然后在调用处进行注入
@Component
(子类,用于工具类), @Controller
(用在Controller上), @Service
(用在Service上), @Repository
(用在Dao上)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人