如果在maven中配置,所有这些jar的“groupId”都是“org.springframework”,每个jar有一个不同的“artifactId”,另外,“instrumentation”有两个jar,还有一个“spring-context-support”图中没有列出,所以spring3的jar包一共是19个。
Spring是高度模块化的,可以单独使用Spring的某个库而不需要依赖Spring的其他库。比如,使用Spring Context库不需要依赖Spring Persistence或者Spring MVC库。从Spring 3.2开始,Spring MVC Test项目已经被包含到核心的Spring Test框架中(原来是一个独立项目,项目托管在GitHub)。所以,从Spring 3.2开始,仅...
spring-struts:与struts的集成,不推荐,spring4不再提供 它们的依赖关系如下图所示: spring web依赖关系 test test部分只有一个模块,将spring-context-support也放在这吧 spring-test:spring测试,提供junit与mock测试功能 spring-context-support:spring额外支持包,比如邮件服务、视图解析等 它们的依赖关系如下图所示: sp...
因为spring-core依赖了commons-logging,而其他模块都依赖了spring-core,所以整个spring框架都依赖了commons-logging, 如果有自己的日志实现如log4j,可以排除对commons-logging的依赖,没有日志实现而排除了commons-logging依赖,编译报错 1<dependency>2<groupId>org.springframework</groupId>3<artifactId>spring-context</ar...
spring-context-support详解 spring-context-support是spring-context的补充,如下子包说明 1. cache 一、cache包下补充org.springframework.cache.Cache的不同实现,主要是补充了caffine ehcache 二、支持Jcache标准(JSR-107) 二、使用TransactionSynchronizationManager提供了事务支持...
1、spring-core:依赖注入IoC与DI的最基本实现,对应spring-core-4.3.6.RELEASE.jar 2、spring-beans:Bean工厂与bean的装配,对应spring-beans-4.3.6.RELEASE.jar 3、spring-context:spring的context上下文即IoC容器,包含二个JAR包,对应spring-context-4.3.6.RELEASE.jar和spring-context-support-4.3.6.RELEASE.jar,其...
一、 解决Spring循环依赖问题 1.1 什么是循环依赖? 循环依赖就是循环引用,指两个或多个bean互相持有对方,比如说TestA引用TestB、TestB引用TestA,最终形成一个闭环。 注意:循环依赖不是指循环调用。 循环调用:指方法之间的环调用,循环调用是无解的,除非有终结条件,否则就是死循环,最终会导致内存溢出异常。
如此,ModifyService依赖了QueryService,同时QueryService也依赖了ModifyService,形成了依赖闭环。那么这种情况下会出现什么问题呢?2.2 问题复现 我们来运行调试一下之前的代码,在GPApplicationContext初始化后打上断点,我们来跟踪一下IoC容器里面的情况,如下图:启动项目,我们发现只要是有循环依赖关系的属性并没有...
org.springframework.context.support.AbstractApplicationContext#refresh() org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory#populateBean() org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor#postProcessProperties() ...
默认情况下是允许Bean之间的循环依赖的,在依赖注入时Spring会尝试处理循环依赖。如果将该属性配置为“false”则关闭循环依赖,当在Bean依赖注入的时遇到循环依赖时抛出异常。可以通过如下方式关闭,但是一般都不这么做 ClassPathXmlApplicationContext applicationContext=newClassPathXmlApplicationContext("bean.xml");//禁用循...