Spring相关
文章平均质量分 80
吒哇
这个作者很懒,什么都没留下…
展开
-
mysql实现读写分离自带java驱动
MySQL数据库的读写分离和负载均衡一般是通过第三方软件来实现的。也可以通过mysql驱动程序来实现,如com.mysql.jdbc.ReplicationDriver。官网网址:多主机连接配置1.主备配置 2.负载连接配置 3.主从复制链接配置 4.高级负载和主备配置如下为java实现读写分离demo<dependency><groupId>mysql</groupId><artifactId>...原创 2021-03-12 10:49:48 · 352 阅读 · 0 评论 -
Spring bean创建的过程
1.原创 2020-12-23 13:58:05 · 111 阅读 · 0 评论 -
Spring 是如何解决循环依赖的
Spring用构造器的方式进行属性注入时 是无法解决循环依赖注入的,用注解的方式是解决了循环依赖,前提是单例的方式,如果非单例的方式是没有解决的...原创 2020-09-20 09:09:10 · 103 阅读 · 0 评论 -
Spring Bean的生命周期(非常详细)
Spring作为当前Java最流行、最强大的轻量级框架,受到了程序员的热烈欢迎。准确的了解Spring Bean的生命周期是非常必要的。我们通常使用ApplicationContext作为Spring容器。这里,我们讲的也是 ApplicationContext中Bean的生命周期。而实际上BeanFactory也是差不多的,只不过处理器需要手动注册。转载请注明地址 http://www.cnblogs.com/zrtqsk/p/3735273.html,谢谢。一、生命周期流程图: Spri.原创 2020-09-17 13:48:55 · 14265 阅读 · 0 评论 -
Spring IOC的运行流程
/*** 扩展原理:* BeanPostProcessor:bean后置处理器,bean创建对象初始化前后进行拦截工作的** 1、BeanFactoryPostProcessor:beanFactory的后置处理器;* 在BeanFactory标准初始化之后调用,来定制和修改BeanFactory的内容;* 所有的bean定义已经保存加载到beanFactory,但是bean的实例还未创建*** BeanFactoryPostProc...原创 2020-09-12 19:26:52 · 474 阅读 · 0 评论 -
canal集群部署与java接入
Canal应用文档总体上分5部分1.应用场景;2.如何部署环境;3.应用端如何使用;4.踩坑;5.稳定性和实时性;应用场景:canal的原理是伪装为rds的一个slave来监听binlog;所以canal可以用在:1.数据同步,比如:做在/离线数据库之间的数据同步操作;2.数据消费,比如:需要根据关注的数据库表的变化,做搜索增量;3.数据脱敏,比如:需要将线上动态数据导入到其它地方,做数据脱敏;如何部署:配置:集群最低配置zookee...原创 2020-08-18 13:55:53 · 889 阅读 · 0 评论 -
Spring事件发布用法简介
可以先在业务里面注入@Autowiredprivate ApplicationEventPublisher publisher;然后使用时:publisher.publishEvent(new AppEventEntity(new EventEntity()));这样再有一个统一监听时间通知的:@Componentpublic class EventDispatcher implements ApplicationListener<ApplicationEvent..原创 2020-08-12 16:24:00 · 283 阅读 · 0 评论 -
全栈最牛的Spring讲解
上图就是spring容器初始化bean的大概过程(至于详细的过程,后面文章再来介绍);文字总结一下:1:实例化一个ApplicationContext的对象;2:调用bean工厂后置处理器完成扫描;3:循环解析扫描出来的类信息;4:实例化一个BeanDefinition对象来存储解析出来的信息;5:把实例化好的beanDefinition对象put到beanDefinitionMap当中缓存起来,以便后面实例化bean;6:再次调用bean工厂后置处理器;7:当然spring还会干很多事..原创 2020-07-16 16:17:17 · 180 阅读 · 0 评论 -
JDK和CGLIB动态代理区别
Jdk和Cglib 的区别一、原理区别:java动态代理是利用反射机制生成一个实现代理接口的代理类,在调用具体方法前调用InvokeHandler来处理。而cglib动态代理是利用asm开源包,对代理对象类的class文件加载进来,通过修改其字节码生成子类来处理。1、如果目标对象实现了接口,默认情况下会采用JDK的动态代理实现AOP。2、如果目标对象实现了接口,可以强制使用CGLIB实现AOP(<aop:aspectj-autoproxy proxy-target-class="t原创 2020-07-13 14:23:34 · 257 阅读 · 0 评论 -
SpringBoot自动装配原理分析
参考链接:https://blog.csdn.net/Dongguabai/article/details/80865599原创 2020-07-08 14:56:27 · 169 阅读 · 0 评论 -
深入AOP开发的基石 java动态代理
jdk代理主要截图:其中spring jdk动态代理 主要通过JdkDynamicAopProxy这个类来完成,如果一个类有多个代理,则通过责任链的模式来完成原创 2020-06-27 17:44:45 · 189 阅读 · 1 评论 -
Spring AOP与aspectj的区别
参考链接:https://blog.csdn.net/dm_vincent/article/details/57526325 https://blog.csdn.net/javazejian/article/details/56267036?utm_source=appAspectJAspectJ是Eclipse旗下的一个项目。至于它和Spring AOP的关系,不妨可将Spring AOP看成是Spring这个庞大的集成框架为了集成AspectJ而出现的一个模块...原创 2020-05-27 11:31:28 · 747 阅读 · 0 评论 -
Spring注解事务@Transactional原理解析
BeanFactoryTransactionAttributeSourceAdvisorAnnotationAwareAspectJAutoProxyCreatorSpringTransactionAnnotationParserAbstractAutoProxyCreatorTransactionInterceptor原创 2020-04-15 13:53:34 · 153 阅读 · 0 评论 -
SpringBoot启动流程分析
准备工作 ApplicationContextInitializer Context初始化后调用的类SpringApplicationRunListener SpringBoot运行监听的类ApplicationRunnerCommandLineRunner上面着两个几乎可以等价,用于启动后做客户自定义的操作新建java类EnjoyComm...原创 2020-04-15 13:54:07 · 96 阅读 · 0 评论 -
Spring MVC核心技术
异常处理 类型转换器 数据验证 文件上传与下载 拦截器异常处理Spring MVC中, 系统的DAO, Service, Controller层出现异常, 均通过throw Exception向上抛出,最后由中央处理器DispatchServlet交由全局异常处理器进行异常处理, 如下图所示常用的Spring MVC异常处理方式主要有三种:使用系统定义好的异常处理器S...原创 2019-09-12 14:07:45 · 1118 阅读 · 1 评论 -
Spring MVC执行流程
SpringMVC是隶属于Spring Web中的一部分, 属于表现层的框架.其使用了MVC架构模式的思想, 将Web层进行职责解耦, 使用请求-响应模型简化Web开发SpringMVC通过中央调度器DispatcherServlet,来调用MVC的三大件:Controller、Model、View。保证MVC的每一个组件只与DispatcherServlet耦合, 彼此之间独立运...原创 2019-09-12 14:06:39 · 675 阅读 · 0 评论 -
给Spring容器中注册组件的方式
/* * 给容器中注册组件的方式 * 1,@Bean: [导入第三方的类或包的组件],比如Person为第三方的类, 需要在我们的IOC容器中使用 * 2,包扫描+组件的标注注解(@ComponentScan: @Controller, @Service @Reponsitory @ Componet),一般是针对 我们自己写的类,使用这个 * 3,@Import:[快速给容器导入...原创 2019-08-07 14:57:41 · 210 阅读 · 0 评论 -
Spring容器底层重点流程、源码跟踪技巧及Spring底层后置处理器的帮我们干的事儿
调试跟踪Srping运行流程则可以从AnnotationConfigApplicationContext------>构造方法到AbstractApplicationContext 的refresh方法大概创建Bean的流程BeanPostProcessor原理:可从容器类跟进顺序为:AnnotationConfigApplication...原创 2019-08-07 16:00:47 · 204 阅读 · 0 评论 -
关于Spring 和 Spring MVC的43个问题【问题汇总】
1.为什么使用Spring ?1). 方便解耦,简化开发 通过Spring提供的IoC容器,可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合。 2). AOP编程的支持 通过Spring提供的AOP功能,方便进行面向切面的编程,如性能监测、事务管理、日志记录等。 3). 声明式事务的支持 4)...原创 2019-08-14 10:42:55 · 270 阅读 · 0 评论 -
SpringMVC核心处理流程
SpringMVC流程图具体步骤:第一步:发起请求到前端控制器(DispatcherServlet)第二步:前端控制器请求HandlerMapping查找 Handler (可以根据xml配置、注解进行查找)第三步:处理器映射器HandlerMapping向前端控制器返回Handler,HandlerMapping会把请求映射为HandlerExecutionChain对...原创 2019-08-14 10:55:51 · 226 阅读 · 0 评论 -
Spring AOP源码透析
* AOP原理:【看给容器中注册了什么组件,这个组件什么时候工作,这个组件的功能是什么?】* @EnableAspectJAutoProxy;核心从这个入手,AOP整个功能要启作用,就是靠这个,加入它才有AOP 跟进@EnableAspectJAutoProxy源码://导入了此类,点进去看@Import(AspectJAutoProxyRegistrar.c...原创 2019-08-07 16:18:20 · 185 阅读 · 0 评论 -
spring中BeanFactory和FactoryBean的区别
共同点: 都是接口区别: BeanFactory以Factory结尾,表示它是一个工厂类,用于管理Bean的一个工厂 在Spring中,所有的Bean都是由BeanFactory(也就是IOC容器)来进行管理的。 但对FactoryBean而言,这个Bean不是简单的Bean,而是一个能生产或者修饰对象生成的工厂Be...原创 2019-08-15 17:39:49 · 18880 阅读 · 0 评论 -
谈谈Spring中都用到了那些设计模式
总结Spring 框架中用到了哪些设计模式?工厂设计模式 : Spring使用工厂模式通过 BeanFactory、ApplicationContext 创建 bean 对象。代理设计模式 : Spring AOP 功能的实现。单例设计模式 : Spring 中的 Bean 默认都是单例的。模板方法模式 : Spring 中 jdbcTemplate、hibernateTemplate...原创 2019-08-15 18:27:46 · 18275 阅读 · 0 评论 -
Spring 注解事务,声明事务共存的情况下,先后顺序
首先先看配置文件:[html]view plaincopy<!--hibernate--> <beanid="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property...原创 2019-08-26 15:00:39 · 1096 阅读 · 0 评论 -
Spring源码流程断点调试总结
1.AnnotatedBeanDefinitionReader 读取所有要扫描的文件2.AnnotationConfigUtils 把所有要放入容器中的beanName放入集合中3.DefaultListableBeanFactory通过循环一次生产bean4.AbstractAutowireCapableBeanFactory进行属性赋值属性赋值最后还是通过反射进行的...原创 2019-08-29 17:08:01 · 47664 阅读 · 0 评论 -
Spring是怎么发现@Bean、@Controller、@Service这些注解修饰的类的?
我们通过AnnotationConfigApplicationContext类传入一个包路径启动Spring之后,会首先初始化包扫描的过滤规则。那我们今天就来看下包扫描的具体过程。还是先看下面的代码: AnnotationConfigApplicationContext类//该构造函数会自动扫描以给定的包及其子包下的所有类,并自动识别所有的Spring Bean,将其注册到容器中 pu...原创 2019-08-30 14:37:40 · 2381 阅读 · 0 评论 -
用自己语言介绍Spring AOP事务原理
1.Spring容器在加载业务bean之前他会通过refresh往容器中注入一些后置处理器对象,这些对象在加载业务bean时他会给bean做拦截、增强等功能,从断点监控上来看,内置的后置处理器有18个,当bean的属性赋值完毕后,则利用后置处理器的before和after方法进行代理增强,当然属性赋值也是利用后置处理器来完成的,具体的bean如下图:...原创 2019-09-04 15:32:50 · 37377 阅读 · 0 评论 -
Spring详解------4中事务管理的实现
目录1、事务介绍 2、事务的四个特性(ACID) 3、Spring 事务管理的核心接口 4、PlatformTransactionManager 事务管理器 5、TransactionStatus 事务状态 6、TransactionDefinition 基本事务属性的定义 7、Spring 编程式事务和声明式事务的区别 8、不用事务实现转账 9、编程式事务处理实现转账(...原创 2019-09-05 14:21:40 · 666 阅读 · 0 评论 -
DataSourceTransactionManager事务管理器
开场白:最近在研究事务方法1@Transactionalpublic int update() { testDao.selectRuleResultsListByRuleNoForMap(); return testDao.updateCreditInfo("2323s","2323s","503");}方法2public int update() { te...原创 2019-09-05 16:14:47 · 39913 阅读 · 6 评论 -
Spring中Bean的生命周期源码探究
Bean的生命周期参考链接:https://www.jianshu.com/p/0c8a1b5e3808Bean 实例化的过程:1.初始化Bean,调用对象的构造方法,创建实例对象2.对象的属性赋值Autowried注解类标识等3.如果对象实现BeanNameAware接口,则调用setBeanName方法用于去的BeanName4.如果对象实现BeanfactoryAwa...原创 2019-08-07 13:35:30 · 230 阅读 · 0 评论