- 博客(14)
- 收藏
- 关注
原创 Spring核心原理:MVC处理过程
这样就可以根据请求快速定位到Controller,因为最终处理请求的是Controller中的方法,Map中只保留了URL和Controller的对应关系,所以要根据请求的URL进一步确认Controller中的方法。确定处理请求的方法后,接下来的任务就是参数绑定,把请求中的参数绑定到方法的形式参数上,这是整个请求处理过程中最复杂的一步。determinUrlsForHander(String beanName)方法就是获取controller中所有的URL,不同子类有不同的实现,这是典型的模板模式。
2023-03-20 22:12:19
497
原创 Spring核心原理:依赖注入
上面的源码发现Spring是如何对引用类型,内部类及集合类型的属性进行解析的,解析完成后就可以进行依赖注入了,依赖注入过程就是将Bean对象设置到他所以来的Bean对象属性上,真正的依赖注入是通过bw.setPropertyValues()方法实现的,该方法也使用了委派模式,在BeanWrapper接口中至少定义了方法声明,依赖注入部分有BeanWrapperImpl完成。而是直接从容器获取。IOC容器会自动使用反射查找属性的类型和名称,基于属性类型或者名称自动匹配容器中的bean,从而完成依赖注入。
2023-03-13 21:03:53
498
原创 Spring核心原理:基于注解的IOC初始化
基于注解(annotation)方式的配置目前来说XML配置的方式相对成熟,便于统一管理。随着SpringBoot的兴起,基于注解开发可以大大简化XML配置,提高开发速度,虽然会造成后期维护的成本增加。但是我想没有人会很愿意的编写大量的XML文件。类注解:@Component,@Repository,@Controller,@Service类内部注解:@Autowiring,@Value,@Resource分析源码。
2023-03-11 18:56:53
341
原创 SQL进阶之路06:关联子查询
但上面写的存在一个问题就当年份一旦出现空挡期那么就会造成数据错误!可以尝试使用比year小但是在小的当中最大值来进行处理。首先可以尝试获取到与上一年销售额一致的是数据!得到答案后进行一个处理后就可以拿到我们需要的结果!如何比较输出与上一年相比是增加或者减少的数据?例题:假设一张表记录了每年的销售额。输出想要的结果可以使用CASE来进行。
2022-09-24 21:00:28
1310
原创 SQL的进阶之路05:外连接
如果不使用聚合,那么返回结果的行数会是表 Courses 的行数,所以 这里以参加培训课程的员工为单位进行聚合。但是, 其实在 SELECT 子句里,聚合函数的执行结果也是标量值,因此可以 像常量和普通列一样使用。C1~C3:每个表都是一个课程的集合,然后分别用外连接操作,通过学生来进行关联课程的3个集合。-分析思路:侧栏我们可以使用主表来生成,其他显示成绩的可以使用外连接和CASE表达式, 可以理解通过主表生成4个C0~C3四个子集来完成此次操作。C0:包含了所有的学生,起到一个学生主表作用,
2022-09-21 21:29:47
1572
原创 Stream常用的API
package com.maxinyang.stream;import com.maxinyang.excel.User;import jdk.management.resource.internal.inst.SocketOutputStreamRMHooks;import java.util.ArrayList;import java.util.Arrays;import java.util.List;import java.util.stream.Collectors;/** .
2022-03-13 14:04:21
455
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人