今天下午没课,然后课上补了一些之前javaweb没听懂的知识,今天学下来的感受就是有些听不懂有一点懵。
今日收获
1.重新学习了请求响应部分
请求参数
- 简单参数
- 实体参数
- 数组参数
- 日期参数
- 路径参数
- 集合参数
@RequestParam
@RequestParam
是 Spring MVC 框架中用于从 HTTP 请求中提取请求参数的注解,通常用于控制器(Controller)方法的参数上。
其中在集合参数的时候我们要注意
@DataTimeFormat
@DateTimeFormat
是 Spring 框架中用于格式化日期和时间数据的注解,主要用于将字符串类型的请求参数(如 URL 参数或表单字段)自动转换为 Java 的日期时间类型(如 Date
、LocalDate
、LocalDateTime
等),或反向转换。它解决了 HTTP 请求中日期时间字符串与 Java 对象之间的类型转换问题。
在遇到日期参数的时候我们就要用到这个注解因为,前端传过来的日期参数格式不定,所以我们要指定格式
@Requestbody
这个注解简单来说就是把HTTP请求的数据给转换成我们的Java对象,所以在Json参数的时候我们要注意加入这个注解
@PathVariable
@PathVariable
是 Spring MVC 中用于从 URL 路径模板中提取变量值的注解,常用于 RESTful API 设计中,将动态路径片段(如 /user/{id}
)绑定到控制器方法的参数上。它的核心作用是将 URL 的结构化数据映射到代码逻辑中。
所以我们遇到路径参数的时候我们注意要使用这个注解
2.分成解耦
三层架构
- Controller层:控制层,接收前端发送的请求,对请求进行处理,响应数据
- Service层:业务逻辑层,处理具体的业务逻辑。
- Dao层:数据访问层,负责数据的访问操作,之后在Mybits中就是Mapper层,来操作数据库
其实就是前端发送请求———》Controller——》Service——》Mapper然后Mapper——》Service——》Controller——》响应给前端。
IoC(控制反转)
核心概念
-
传统开发模式:对象主动创建和管理依赖(如
new Service()
),控制权在代码内部。 -
IoC 模式:将对象的创建、依赖管理和生命周期交给容器(如 Spring),控制权转移到外部容器。
作用
-
解耦:对象无需关心依赖的创建和管理,只需声明需要什么。
-
集中管理:容器统一管理对象,提高可维护性和扩展性。
DI(依赖注入)
核心概念
-
依赖注入 是 实现 IoC 的具体手段,指容器通过某种方式(构造器、Setter 等)将依赖对象传递给目标对象。
-
目标:让类只需声明依赖,无需主动查找或创建。
在这部分介绍几个注解
@Component
把当前类交给IOC容器管理,成为IOC容器的Bean。它是最基础的组件注解,其他如 @Service
、@Repository
、@Controller
等都是其派生注解。不过@Repository我们很少用,我们基本都是用
@mapper
,这几个派生注解就可以替换@component,是service层就用@Service,Controller层就用Controller等等,然后如果不属于我们的三层架构我们就可以用@component,来把这个类交给IOC容器管理
。
然后我们会使用@Autowired进行依赖注入,就不用我们去new新对象了。
@RestController
它其实是@Controller和@Requestbody的结合,使用它表示这是在Controller层并且我们响应给前端的数据会自动从java对象转换成Json格式,然后响应给前端。所以在Controller层是我们也会使用@RestController更为方便。
3.完成了微信登录的接口
服务器端:
调用微信接口服务,获取用户唯一ID:
UserService层
拦截器把没有令牌或者是解析失败的请求给拦截
最后我们还需要在配置类中注册拦截器
随笔
今天的学习中收获肯定是有的,不过在写代码的时候有些知识发现听其实可以听,不过要是真的叫我来写,我还是真的不行,还是太菜了,今天一如既往的背单词,然后补了之前没有听懂的一些知识,明天也会继续去补,太菜了!太菜了!,继续加油吧。吐槽室友的呼噜声,昨天我十二点上床睡觉,硬是到了凌晨三点好像才睡着!