Java Spring3.0依赖项注入的最小JAR

Java Spring3.0依赖项注入的最小JAR,java,spring,dependency-injection,spring-3,Java,Spring,Dependency Injection,Spring 3,与此类似,应用程序仅使用Spring3.0依赖项注入所需的最小依赖项是什么?应用程序上下文将仅由XML配置。Spring依赖于一个日志框架,因此假设我已经包含了以下用于日志记录的JAR: jcl-over-slf4j.jar logback-classic.jar logback-core.jar slf4j-api.jar 建立这一点的最佳且可靠的方法是创建一个maven项目,并为spring核心、spring捆绑包和spring上下文添加依赖项。当您构建/安装此项目时,maven将完成所需

与此类似,应用程序仅使用Spring3.0依赖项注入所需的最小依赖项是什么?应用程序上下文将仅由XML配置。Spring依赖于一个日志框架,因此假设我已经包含了以下用于日志记录的JAR:

  • jcl-over-slf4j.jar
  • logback-classic.jar
  • logback-core.jar
  • slf4j-api.jar

    • 建立这一点的最佳且可靠的方法是创建一个maven项目,并为spring核心、spring捆绑包和spring上下文添加依赖项。当您构建/安装此项目时,maven将完成所需的工作。

      正如另一个答案中所述,maven是真正的路径。如果;但是,您选择偏离,然后根据 我认为这些是spring核心功能的最小JAR:

      • org.springframework.asm-3.0.4.RELEASE.jar
      • org.springframework.beans-3.0.4.RELEASE.jar
      • org.springframework.context-3.0.4.RELEASE.jar
      • org.springframework.core-3.0.4.RELEASE.jar
      • org.springframework.expression-3.0.4.RELEASE.jar
      已编辑:使用wiki格式对列表进行排序

      为Spring3.2更新:似乎asm不是3.2发行版的一部分。以下是Spring 3.2的列表:

      • spring-beans-3.2.0.RELEASE.jar
      • spring-context-3.2.0.RELEASE.jar
      • spring-core-3.2.0.RELEASE.jar
      • spring-expression-3.2.0.RELEASE.jar

        • YMMV,但我会做以下几点:

          首先,在依赖项管理部分导入Spring BOM,以确保基线依赖项版本:

          <properties>
              <spring.version>3.2.6.RELEASE</spring.version>
          </properties>
          <dependencyManagement>
              <dependencies>
                  <dependency>
                      <groupId>org.springframework</groupId>
                      <artifactId>spring-framework-bom</artifactId>
                      <version>${spring.version}</version>
                      <type>pom</type>
                      <scope>import</scope>
                  </dependency>
               </dependencies>
           </dependencyManagement>
          
          
          3.2.6.1发布
          org.springframework
          spring框架bom表
          ${spring.version}
          聚甲醛
          进口
          
          然后,在build/dependency部分,如果您计划通过xml配置配置Spring,则导入bean、上下文和核心以及EL(如果您只计划在测试中使用springxml配置,则使用测试范围)

          注意:此示例与3.2.x一起使用。如果需要在3.2.x之前使用Spring,则需要显式地包含asm。一种可能是使用仅在3.2.x以下的Spring版本中激活的配置文件

          <build>
              <dependencies>
                 <dependency>
                      <groupId>org.springframework</groupId>
                      <artifactId>spring-core</artifactId>
                      <!-- inlines asm since 3.2.x -->
                 </dependency>
                 <dependency>
                      <groupId>org.springframework</groupId>
                      <artifactId>spring-beans</artifactId>
                 </dependency>
                 <dependency>
                      <groupId>org.springframework</groupId>
                      <artifactId>spring-context</artifactId>
                 </dependency>
                 <dependency>
                      <groupId>org.springframework</groupId>
                      <artifactId>spring-expression</artifactId>
                      <scope>test</scope><!-- or compile/provided if used beyond testing -->
                 </dependency>
              </dependencies>
          </build>
          
          
          org.springframework
          弹簧芯
          org.springframework
          春豆
          org.springframework
          spring上下文
          org.springframework
          弹簧式
          测试
          
          我从来没有用过Maven,而且我是。通过一次添加一个JAR,直到一个小的测试应用程序可以加载ClassPathXmlApplicationContext,我得到了与您列出的相同的Spring模块,但是使用org.springframework.asm-3.0.4.RELEASE.JAR作为额外的运行时依赖项。如果你编辑你的答案来添加这个罐子,我会接受这个答案。我知道我参加这个小聚会迟到了,但是谢谢你——这一直是我使用Spring进行web项目以外的任何事情的主要障碍之一;这是一个非常棒的框架,但我讨厌这样一个事实:它太大了,关于什么功能需要什么库的文档太少。RE:
          …asm.jar
          :请参阅[这是否意味着如果没有上述四个jar,依赖项注入就无法实现?我说得对吗?仅仅因为Maven包含jar并不意味着您总是需要它。我通常会手动排除一些jar,尤其是现在使用slf4j的commons logging。我当然希望这些日志jar中的任何一个都被声明为运行时依赖项。