spring
文章平均质量分 81
可爱的鸡仔
河南师范大学在校学生
展开
-
Spring知识总结
在 XML Mapper 文件中,可以使用标签来定义自定义的结果映射。通过标签,可以指定查询结果中的列和对象属性之间的映射关系,并定义如何处理结果。在以上示例中,定义了一个名为 "userResultMap" 的结果映射,指定了User类型的结果。通过标签可以指定列和对象属性之间的映射关系,通过标签可以描述对象之间的关联关系。然后,在相应的 SQL 查询语句中,可以使用在以上示例中,标签的resultMap。原创 2023-10-22 23:50:04 · 403 阅读 · 0 评论 -
模仿spring实现简易组件扫描,依赖注入
***//***//*** 组件扫描注解*/我们在学习时,要善于反思,并能举一反三,善于模仿。对于其他注解作者以后有时间会逐步实现,我们下期再见!原创 2023-10-07 19:47:51 · 107 阅读 · 0 评论 -
Spring底层分析--10.统一转换环绕通知,适配器模式和调用链
*** 自定义通知1*/@Override/*** 自定义通知2*/@Override3.创建调用链/*** 自定义调用链*///四个属性//目标类需要增强的方法//目标对象//增强方法所需要的参数数组//通知集合//用一个计数器来判断递归结束//返回需要增强的方法对象@Override//返回方法参数@Override/*** 主要的方法是这个:* 它通过递归调用实现通知的方法* @return*/原创 2023-09-21 18:07:54 · 76 阅读 · 0 评论 -
Spring底层分析--9.切点匹配和切面实现
我们只有找到切点了,才能去添加增强逻辑,那么我们如何找到切点呢?原创 2023-09-21 11:29:01 · 206 阅读 · 0 评论 -
Spring底层分析--8.aop的底层实现代理模式
cglib生成的代理对象是目标对象的子类,相当于重写了父类的方法,依次来实现代理,他和jdk代理不同的是,jdk是代理对象和目标对象都实现了公共接口,jdk代理对象和目标对象是兄弟关系,cglib的目标对象和代理对象是父子关系。可以看到是CGLB的代理,但是其实这是不对的,我们还需要指定这个目标对象实现的接口是那些?我们可以来验证一下,我们给这个熟悉设置为true,而且我们的目标类实现了接口。jdk本身自带了代理实现,但是jdk自带的代理只能实现接口的代理。, 不管目标类是否实现接口,都用cglib代理。原创 2023-09-20 17:00:43 · 61 阅读 · 0 评论 -
Spring底层分析--2.BeanFactory的实现
那么C和D都实现了Com接口,我们知道Spring是单例模式的,现在有两个一样类型的bean,最终会注入哪个bean呢?发现并没有创建这个A的对象,这是因为beanFactory没有实现对@Autowried的实现,我们需要添加bean的后处理器。可以看到刚开始只是声明了bean的定义,并没有创建bean对象,调用getBean()时才创建了bean对象。我们可以看到在B类中通过@AutoWired自动注入了A,那么我们来尝试获取这个A对象,看是否可以获取到它。可以看到注入了C类型的bean!原创 2023-09-17 23:28:27 · 89 阅读 · 1 评论 -
Spring底层分析--7.Scope
其中前两个我们已经很熟悉了,singleton就是单例模式,每次从容器中获取的bean都是同一个,prepertype是每次获取bean都是新创建的一个bean,原创 2023-09-19 18:15:37 · 170 阅读 · 0 评论 -
Spring底层分析--6.Aware接口和Bean初始化,销毁三种方法
Aware接口是Spring内置的可以和@Autowired和@PostCustrut等效的形式,很多spirng内部类都使用Aware接口。原创 2023-09-19 16:33:32 · 208 阅读 · 1 评论 -
Spring底层分析--5.BeanFactory后处理器
同理,查找看哪个类上有@Configuration注解,然后获取这个类中带@Bean注解的方法,通过工厂方法,生产bean,然后把bean定义注册到beanFactory中即可。我们想要获取@ComponetScan(basePackages="")中的包名下的文件,然后判断是否被加上了@Componet注解,以此来创建bean对象。我们看到Bean2没有注解,然后Bean4注解的是@Controller,这个我们都知道,它的效果和@Component是一样的。原创 2023-09-19 11:04:29 · 82 阅读 · 1 评论 -
Spring底层分析--4.Bean的生命周期,后处理器,模板方法
这两个接口都实现了BeanPostProcessor接口@Component@Overridelog.info("在销毁前处理,如@PreDestory");@Overridelog.info("实例化之前执行,这里的bean会替换初始的bean");@Overridelog.info("在实例化之后处理,如果返回false,则跳过依赖注入阶段");@Overridelog.info("实例化之后处理,这里的bean会替换初始的bean");@Override。原创 2023-09-18 16:35:34 · 86 阅读 · 0 评论 -
Spring底层分析--3.ApplicationContext的实现
可以看到tomcat启动了,现在我们访问localhost:8080/hello。该实现类是获取类路径下的spring.xml配置文件来创建context容器。该实现类是通过@Configure注解的配置类来实现的。可以看到成功返回hello,证明web容器创建成功!该实现类是从磁盘目录下找spring.xml配置文件。此外,可以添加自定义的控制器Controller。该实现类是在web环境下的容器。该实现类会加入bean后处理器。实现该容器必须需要三个bean。原创 2023-09-18 09:19:45 · 68 阅读 · 0 评论 -
Spring底层分析-1.ApplicationContext
实现了BeanFactory的一些方法,例如getBean()BeanFactory的功能很少,他的一个主要实现类DefaultListenableBeanFactory实现了大量方法可以看到这里有很多实现类和接口,他们实现了大量的Spring容器中的方法我们主要看一下DefaultSingletonBeanRegistry。原创 2023-09-17 20:36:47 · 75 阅读 · 1 评论 -
Spring AOP面向切面
1.PointCut 切入点,表示在哪个位置切入 2.Advice 通知,表示在这个位置要执行的方法 3.Joinpoint 连接点,表示该方法4 .Aspect 切面,(PointCut + Advice) 这俩构成切面原创 2023-02-27 22:10:13 · 177 阅读 · 0 评论 -
Spring GOF代理模式
1.静态代理2.动态代理三个角色:目标对象,代理对象,公共接口。目标对象和代理对象都要实现公共接口主要是通过jdk的内置代理对象实现Proxy1.俩关键:InvocationHandler接口和 Proxy类原创 2023-02-26 20:20:24 · 133 阅读 · 1 评论