spring
文章平均质量分 68
spring源码分析
墨分天下
这个作者很懒,什么都没留下…
展开
-
手写简单的spring
我们要模仿spring部分功能,1.首先要把扫描路径下的文件获取到 2.把文件下的class变成对象存放在单例池中 3.测试单例池对象方法是否可以执行1.配置config类@ComponentScan("com.hxy.service")public class AppConfig {}2.配置解析config的处理类 1)解析单个class 存放成BeanDefinition对象,定义如下public class BeanDefinition { private ..原创 2020-09-21 18:56:33 · 137 阅读 · 0 评论 -
spring事务原理1
spring 事务原理传播机制 事务挂起spring自带的JdbcTemplate使用示例查询public <T> T queryForObject(String sql, RowMapper<T> rowMapper) throws DataAccessException { List<T> results = query(sql, rowMapper); return DataAccessUtils.nullableSingleResult(res原创 2021-05-06 21:17:39 · 348 阅读 · 2 评论 -
spring事务原理2
ProxyTransactionManagementConfiguration// 标准事务管理1.获取事务属性------->tas.getTransactionAttribute2.创建事务------------->createTransactionIfNecessary3.执行业务逻辑------->invocation.proceedWithInvocation4.异常时完成事务---->completeTransactionAfterThrowing5.清除线原创 2021-05-06 21:16:32 · 333 阅读 · 4 评论 -
spring aop原理
Bean生命周期中AOP的流程1、@EnableAspectJAutoProxy@EnableAspectJAutoProxy注解实际上就是向容器中注册了一个AnnotationAwareAspectJAutoProxyCreator,这个类本身就是一个后置处理器,AOP代理就是由它在这一步完成的。1.postProcessAfterInitialization方法执行public Object postProcessAfterInitialization(@Nullable Object bean原创 2021-02-23 22:06:30 · 294 阅读 · 0 评论 -
spring aop使用
spring aop一.aop几个概念Advisor 和 Advice在Spring中,Advice分为:前置Advice:MethodBeforeAdvice后置Advice:AfterReturningAdvice环绕Advice:MethodInterceptor异常Advice:ThrowsAdvicePointcut 切点,表示我想让哪些地方加上我的代理逻辑。第一步使用:使用ProxyFactory通过编程创建AOP代理spring aop一.Advisor 和 Ad原创 2021-02-22 09:26:53 · 329 阅读 · 0 评论 -
spring aop 原理
spring aop一.aop几个概念Advisor 和 Advice在Spring中,Advice分为: 前置Advice:MethodBeforeAdvice 后置Advice:AfterReturningAdvice 环绕Advice:MethodInterceptor 异常Advice:ThrowsAdvice原创 2021-02-07 21:36:17 · 64 阅读 · 0 评论 -
spring 是如何创建对象的
spring 是如何创建对象的推断构造方法 进行实例化bean1、在Spring中,什么是Bean?跟对象有什么区别?通过new关键字,反射,克隆等手段创建出来的就是对象。在Spring中,Bean一定是一个对象,但是对象不一定是一个Bean,一个被创建出来的对象要变成一个Bean要经过很多复杂的工序,例如需要被我们的BeanPostProcessor处理,需要经过初始化,需要经过AOP(AOP本身也是由后置处理器完成的)等。spring完成一些组件的注册和准备工作// 完成beanFacto原创 2020-10-15 18:40:10 · 1608 阅读 · 1 评论 -
模拟spring依赖注入
1.依赖注入可能会造成循环依赖 解决办法为构造2个map 1个是完整的bean对象 一个是早期暴露出的bean对象private ConcurrentHashMap<String, Object> singletonObjects = new ConcurrentHashMap<>(); private ConcurrentHashMap<String, Object> earlySingletonObjects = new ConcurrentHashM原创 2020-09-21 19:23:08 · 177 阅读 · 0 评论 -
spring 自定义标签使用
spring 自定义标签去注册一个bean,首先有大致几个步骤1.自定义解析的组件2.xsd描述内容3.创建一个文件,实现BeanDefinitionParser接口,用来解析XSD文件中的定义和组件定义4.创建Handler文件,扩展字NamespaceHandlerSupport,目的是将组件注册到Spring容器5.编写Spring.handlers和Spring.schemas文件1. 创建一个student组件用于解析public class Stud...原创 2020-09-21 14:29:11 · 88 阅读 · 0 评论 -
读取配置信息
@ConfigurationProperties原创 2020-07-20 15:23:52 · 104 阅读 · 0 评论 -
kafka日志被系统清理导致异常停止
参考这篇https://blog.csdn.net/Ntozot/article/details/106939392针对系统,CentOS 7 系统有一个默认定时器会每隔 1 天执行一次临时目录清理操作,把 /tmp 目录下所有超过 10 天没有任何变动的子目录全部删除。在 /usr/lib/tmpfiles.d/tmp.conf 文件中增加配置项:x /tmp/kafka*表示忽略tmp下的kafka...转载 2020-07-02 14:29:12 · 542 阅读 · 0 评论 -
springboot前端长轮询使用多线程异步执行任务
1.springboot使用多线程任务时bean 不能使用@Autowired注入 可以提供一个外部类去获取bean对象@Componentpublic class ApplicationProvider implements ApplicationContextAware { private static ApplicationContext applicationContext; @Override public void setApplicationContext(Applica原创 2020-06-23 21:04:30 · 982 阅读 · 0 评论