Spring
文章平均质量分 74
Spring快速开发基础框架
白鸽呀
这个作者很懒,什么都没留下…
展开
-
一致性hash算法和hash算法的区别和使用场景
一致性hash主要解决的还是 动态阔缩容下,请求大量迁移,数据读取或存储对目标节点影响降到最低。原创 2023-01-05 22:12:18 · 1070 阅读 · 0 评论 -
Java负载均衡的实现原理
通过随机算法,根据后端服务器的列表随机选取其中的一台服务器进行访问//0~bound(不包含)之间的随机数intrandomNumber=newRandom().nextInt(uris.size());}}原创 2022-07-20 19:49:46 · 530 阅读 · 0 评论 -
Spring源码剖析之@Transactional
准备我们知道使用@Transactional,要满足以下条件1、配置数据源 DataSource2、配置事务管理器 PlatformTransactionManager3、配置类上标识 @EnableTransactionManagement@Configuration@PropertySource(value = {"classpath:jdbc.properties"},encoding = "UTF-8")public class TransactionalConfig {原创 2022-01-10 12:30:05 · 455 阅读 · 0 评论 -
Spring源码分析之AOP拦截器调用流程
Spring AOP 拦截器调用流程1、代理对象调用invoke方法@Override @Nullable public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { Object oldProxy = null; boolean setProxyContext = false; /** * 【1】获取代理工厂 */ TargetSource targetSour原创 2022-01-07 17:32:12 · 707 阅读 · 0 评论 -
Spring源码剖析之AOP代理对象创建
准备我们通过AOP实现日志记录来剖析AOP/** * 日志切面 * * 实现日志记录 */@Aspect@Componentpublic class LogAspect { public LogAspect(){ System.out.println("LogAspect 构造方法"); } /** * 将指定注解作为切入点 */ @Pointcut("@annotation(com.xiaoxu.annotatio原创 2022-01-07 17:30:59 · 616 阅读 · 0 评论 -
Spring源码剖析之循环依赖
什么是循环依赖循环依赖其实就是循环引用,两个或两个以上的Bean相互依赖,相互引用,例如A依赖B,B依赖于A,如果不加以处理,Bean A,Bean B 都无法创建成功。因为创建A的时候发现依赖B,于是去创建B,创建B的时候依赖A,这样整个SpringBean创建周期无法完成。Spring中循环依赖的场景依赖注入方式构造器注入导致循环依赖set注入注解注入构造器注入导致的循环依赖,无法被解决,因为创建A需要对象B,B又需要A,连基本的反射创建对象都创建不了。实际上就是Bean B ,Bea原创 2022-01-06 20:27:22 · 561 阅读 · 0 评论 -
SpringMVC面试题
概述什么是Spring MVC?简单介绍下你对Spring MVC的理解?Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把模型-视图-控制器分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。Spring MVC的优点(1)可以支持各种视图技术,而不仅仅局限于JSP;(2)与Spring框架集成(如IoC容器、AOP等);(3)清晰的角色分配:前端控制器(dispatcherSe转载 2021-08-10 17:52:06 · 732 阅读 · 0 评论 -
Spring 中动态代理 和 静态代理详解
静态代理静态代理1、 代理别人做事情,(在不改变核心事情的前提下)2、例如:房东出租房子,但是不想自己去处理一些麻烦的事,委托房产中介出租房子。房产中介除了出租房子这件必须的事之外,还可以带用户看房子,签合同,收费等附加行为。这个过程就是静态代理3、要求:3.1 真实角色 (房东)3.2 代理角色 (房产中介)3.3 真实人 (我)4、 优点:不改变核心代码的情况下,代理被代理对象执行方法,对方法增强5、缺点:只能代理一个类创建代理对象需要手写pu原创 2021-08-08 21:33:54 · 334 阅读 · 0 评论 -
SpringAop PointCut常用表达式详解
参数介绍method: 通知的方法(log类中)增强的方法pointcut:切入点表达式,指明要对业务层的哪个核心方法进行增强JoinPoint: 切入的方法切入点表达式写法关键字execution(表达式)表达式:修饰符 返回值 包名.包名。。。。.类名.方法名(参数s)execution(public void com.service.impl.AccountServiceImpl.saveAccount())表达式使用通配符示例1.修饰符可以省略2.返回类型可以使用* 标识返回任原创 2021-08-08 21:19:11 · 668 阅读 · 0 评论 -
Spring Profile多环境配置
@Configurationpublic class AppConfig { @Bean("dataSource") @Profile("development") 开发环境使用 public DataSource standaloneDataSource() { return new EmbeddedDatabaseBuilder() .setType(EmbeddedDatabaseType.HSQL)原创 2021-08-08 21:01:08 · 200 阅读 · 0 评论 -
Spring BeanPostProcessor理解和使用原理分析
基础如果使用过Spring,写过项目,那么一定了解IOC容器,Bean校验,@Autowired依赖注入这些,其实内部很多实现,都是通过BeanPostProcessor来实现BeanPostProcessor 作用:初始化Bean前后做一些赋值,解析处理相关操作BeanPostProcessor接口public interface BeanPostProcessor { /** * @param bean the new bean instance * @param beanName原创 2021-08-08 20:44:14 · 307 阅读 · 0 评论 -
Spring中Bean init方法和destroy方法三种实现方式和执行时机原理分析
1、InitializingBean和DisposableBean来管理bean的生命周期InitializingBean 接口DisposableBean有上图可知,实现init和destroy方法,我们只需要实现上面两个接口Car类public class Car implements InitializingBean , DisposableBean { public Car(){ System.out.println(" car construct ..原创 2021-08-08 16:46:53 · 4253 阅读 · 1 评论 -
Spring面试题
Spring概述什么是spring?Spring是一个轻量级Java开发框架,最早有Rod Johnson创建,目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题。它是一个分层的JavaSE/JavaEE full-stack(一站式)轻量级开源框架,为开发Java应用程序提供全面的基础架构支持。Spring负责基础架构,因此Java开发者可以专注于应用程序的开发。Spring最根本的使命是解决企业级应用开发的复杂性,即简化Java开发。Spring可以做很多事情,它为企业级开发提供给了丰转载 2021-07-30 21:33:16 · 190 阅读 · 0 评论