Spring源码学习总结
背包客521
一个java菜鸟的征程......
展开
-
单个PROPAGATION_REQUIRED执行流程图
1.执行流程图2.获取status的状态图原创 2020-08-31 22:45:48 · 215 阅读 · 0 评论 -
第一个PROPAGATION_REQUIRED,第二个是PROPAGATION_REQUIRES_NEW执行过程
1.demo代码 @Test public void test_required_requires_new() { AccountService accService = ctx.getBean("accountServiceImpl", AccountService.class); transactionTemplate.execute(status -> { accService.addDate("郭林", 123); transactionTemplate.s原创 2020-08-31 01:12:14 · 697 阅读 · 0 评论 -
第一个PROPAGATION_REQUIRED,第二个是PROPAGATION_NOT_SUPPORTED执行过程
1.demo代码 @Test public void test_required_supports() { AccountService accService = ctx.getBean("accountServiceImpl", AccountService.class); transactionTemplate.execute(status -> { accService.addDate("郭林", 123); transactionTemplate.setPr原创 2020-08-31 00:55:37 · 1840 阅读 · 0 评论 -
两个PROPAGATION_REQUIRED事务执行过程
1.demo代码 @Test public void test_required_required_error() { AccountService accService = ctx.getBean("accountServiceImpl", AccountService.class); transactionTemplate.execute(status -> { accService.addDate("郭林", 123); try { transactio原创 2020-08-31 00:08:40 · 313 阅读 · 0 评论 -
Spring事务基础接口
spring事务三大接口:1.TransactionStatusspring对事务封装的接口public interface TransactionStatus extends SavepointManager, Flushable { boolean isNewTransaction(); boolean hasSavepoint(); void setRollbackOnly(); boolean isRollbackOnly(); @Override原创 2020-08-29 22:53:50 · 483 阅读 · 0 评论 -
JdkDynamicAopProxy代理类invoke方法
1.invoke @Override @Nullable public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { Object oldProxy = null; boolean setProxyContext = false; TargetSource targetSource = this.advised.targetSource; Object target = n原创 2020-08-29 16:41:31 · 387 阅读 · 0 评论 -
浅析spring创建代理类
1.demo代码示例public class AopTest { @Test public void test_aop_config(){ AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AopConfig.class); final TestService service = (TestService)ac.getBean("testServiceImpl"); serv原创 2020-08-29 14:17:53 · 238 阅读 · 0 评论 -
CglibAop代理的小demo
demo代码1.核心测试类public class AopTest { @Test public void test_demo(){ ProxyFactory proxyFactory = new ProxyFactory(); // 一个Advisor代表的是一个已经跟指定切点绑定了的通知 // 在这个例子中意味着环绕通知不会作用到toString方法上 Advisor advisor = new DefaultPointcutAdvisor(new DmzPointc原创 2020-08-29 09:38:43 · 217 阅读 · 0 评论 -
springmvc的启动流程
1.内置web容器,Spring mvc启动流程2.一次Spring MVC请求的流程原创 2020-08-13 08:48:08 · 177 阅读 · 0 评论 -
spring5.1源码编译
1.安装环境配套Gradle 5.6.2+java version "1.8.0_181"+IDEA 2019.2.3+spring framework5.1.x2.从github上下载压缩包,解压到本地3.然后导入到IDEA中,进行编译4.如果环境没有问题应该可以编译通过5.然后跑一下spring-core单元测试下载cglib的jar包...原创 2019-10-29 08:58:50 · 409 阅读 · 1 评论 -
spring的BeanDefinition学习总结
1.BeanDefinition类结构图及属性图如下 1.1 类关系图 ...原创 2019-10-28 09:29:22 · 268 阅读 · 0 评论 -
模拟JDK动态代理
package dumu.test.proxy.demo;import javax.tools.JavaCompiler;import javax.tools.StandardJavaFileManager;import javax.tools.ToolProvider;import java.io.File;import java.io.FileWriter;import jav...原创 2019-10-28 09:15:25 · 98 阅读 · 0 评论 -
2.菜鸟总结spring源码——获取Document
1.上一篇文档大概回顾了Resource resource = new ClassPathResource("beanFactoryTest.xml")的加载机制; 本次回顾从BeanFactory factory = new XmlBeanFactory(resource);这句话开始; public XmlBeanFactory(Resource resource, BeanF原创 2018-01-29 21:30:57 · 277 阅读 · 0 评论 -
1、菜鸟Spring源码解析总结——Resource
spring学习Resource总结1.spring Resource中类关系图; 2.在日常的开发工作中,资源文件的加载,可以直接使用Spring提供的类,比如: Resource resource = new ClassPathResource("name") InputStream inputStream = resource.getInputStre原创 2018-01-28 19:32:25 · 262 阅读 · 0 评论