为啥我不能在 Spring-5.0.0.RELEASE 中导入 ApplicationContext

Posted

技术标签:

【中文标题】为啥我不能在 Spring-5.0.0.RELEASE 中导入 ApplicationContext【英文标题】:Why can't I import ApplicationContext in Spring-5.0.0.RELEASE为什么我不能在 Spring-5.0.0.RELEASE 中导入 ApplicationContext 【发布时间】:2018-06-25 08:20:15 【问题描述】:

我试图按照 PluralSight 上的 this 教程学习 Spring。本教程基于 spring 4.3.2,而我想在 5.0.0 上学习它。我使用 mvn 导入了 spring 依赖项:

<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.0.0.RELEASE</version>
    </dependency>
  </dependencies>

所有依赖项都已正常导入。我创建了我的 applicationContext.xml 并配置了 bean。现在我在导入 ApplicationContext 时遇到问题。

ApplicationContext appContext = new ClassPathXmlApplicationContext("applicationContext.xml");

上面这行代码说无法解析ApplicationContextClassPathXmlApplicationContext

我试图找出这些类是否已更改为支持任何其他类,但我在 Spring 网站上没有找到任何此类信息。

5.0.0 之后我是否遗漏了什么或者使用 Spring 的方式有什么变化

我的 pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.saurabh</groupId>
  <artifactId>spring</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>Spring</name>
  <description>My first attempt at learning spring from Pluralsight</description>

  <!--  the stuff above this was generated automatically while I wrote all that is below -->
  <dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.0.0.RELEASE</version>
    </dependency>
  </dependencies>

  <build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.7.0</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
    </plugins>
  </build>
</project>

【问题讨论】:

编译时是否检查了依赖项是否已下载 org.springframework.context.support.ClassPathXmlApplicationContext 在 spring-context-X.X.X.RELEASE.jar 中。你在 CLASSPATH 上有那个 jar 吗? 是的。我可以在构建路径中看到所有的 spring jar。 因为它是一个 maven 项目,你能发布你的完整 pom.xml 吗?此外,您是否尝试过mvn clean compile 清理本地存储库 (mvn dependency:purge-local-repository) 并重新下载依赖项 (mvn package)。 【参考方案1】:

请从这里获取所有依赖项: Spring Maven Dependency

看起来你使用了正确的依赖:

<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>5.0.0.RELEASE</version>
</dependency>

尝试做mvn clean install

【讨论】:

以上是关于为啥我不能在 Spring-5.0.0.RELEASE 中导入 ApplicationContext的主要内容,如果未能解决你的问题,请参考以下文章

为啥我不能在 SQL 中创建游标?

为啥我不能在接口中声明静态方法?

为啥我不能在方法之外进行赋值?

为啥我不能在颤振中添加包

为啥我不能在 CALLBACK 函数中使用此代码?

为啥我不能在存储过程中使用 mysqldump 命令?