java - 如何在项目中集成spring boot

标签 java maven spring-boot intellij-idea

也许我的问题有点基础,但我很少使用 spring boot。在这里我创建了一个这样的项目并有以下一些问题:

  1. 为什么我需要使用 add spring-boot-starter-parent 作为父级? <relativepath />有什么用其中的用法?
  2. 我已经在 pom.xml 中添加了 spring-boot-starter-web,一切正常,但我的 .java 文件出现 FilterRegistrationBean找不到,这是编译错误!为什么?在这里我可以在project structure中看到这样的jar文件依赖关系(这里我使用的是Idea 2016)

这是我的项目 pom.xml 文件片段,希望有人可以帮助我,谢谢:

<groupId>org.demo</groupId>
<artifactId>spring-security-oauth2</artifactId>
<version>1.0-SNAPSHOT</version>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.3.5.RELEASE</version>
    <relativePath />
</parent>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <version>1.5.6.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
        <version>1.5.6.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.security.oauth</groupId>
        <artifactId>spring-security-oauth2</artifactId>
        <version>2.0.14.RELEASE</version>
        <exclusions>
            <exclusion>
                <artifactId>jackson-mapper-asl</artifactId>
                <groupId>org.codehaus.jackson</groupId>
            </exclusion>
        </exclusions>
    </dependency>
</dependencies>

更新:

经过近半个小时的发现,我发现这是一个Idea bug。也许以前在类路径下找不到这样的类,但是在更改正确的版本依赖项并重新组织导入(只需删除此类错误导入并自动导入新的导入)之后,应用程序就可以正常启动。这么奇怪 !也许我应该向 JetBrain 汇报。 最后,无论如何,谢谢大家给我的提示,我会投你们一票的~.~.

这是我的期末考试 pom.xml ,如果你想检查Idea中已经下载的依赖项,可以看到*.iml文件(有很多 type='library' 条目):

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.3.5.RELEASE</version>
    <relativePath />
</parent>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.security.oauth</groupId>
        <artifactId>spring-security-oauth2</artifactId>
        <version>2.0.14.RELEASE</version>
        <exclusions>
            <exclusion>
                <artifactId>jackson-mapper-asl</artifactId>
                <groupId>org.codehaus.jackson</groupId>
            </exclusion>
        </exclusions>
    </dependency>
</dependencies>

最佳答案

可能无法解决实际问题,但您不需要在 pom.xml 中包含所有启动器的版本。

您已经为 spring-boot-starter-parent 指定了一个版本,因此它将负责为依赖项中的所有其他启动器使用正确的版本。

关于java - 如何在项目中集成spring boot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49028941/

相关文章:

java - 为什么项目布局资源与 Java 源代码分开?

spring-boot - 属性文件更改时自动重新启动 jar

java - ant 可运行 jar 不工作

java - 由于多次引用同一 Java 类,Eclipse(Java 项目)中出现构建错误

maven - 如何在没有Nexus/Artifactory/etc的情况下为Maven repo 建立索引?

spring - 使用功能区进行负载平衡

java - Spring Boot 应用程序无法检测类路径中存在的文件

java - 线程监听器通知

java - 多个appender log4j 性能

java - 如何使用同步线程将数据插入到我的数据库表中