Spring Boot 使用的经典错误-找不到Bean了(文末含新年答谢红包福利)

Posted 编程一生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Boot 使用的经典错误-找不到Bean了(文末含新年答谢红包福利)相关的知识,希望对你有一定的参考价值。

Spring对于Java开发者来说,熟悉程度大概与word、excel这些office软件相当。这是个人猜测,大家也可以来投个票:


Exception SpringApplication.run(Application.class, args); String hi() 移动到一个单独的目录下,比如下面这样:

excludeFilters = @ type = FilterType.CUSTOM, classes = type = FilterType.CUSTOM, classes = @SpringBootApplication

就是 Application,所以扫描的包其实就是它所在的包。因为后来移动目录后 Application 所在的包为 com.brmayi.concise.startup ,没有包含   HelloWorldController  所在的 com.brmayi.concise 。就扫描不到了。

这就是为什么一般咱们都会把 Application 放到项目最外层目录。这样,它所在的目录以及子目录都可以扫描到。

另外,我们也可以使用 @ComponentScans 来修复问题

福利时间

有朋友让我拉群发红包。问题是:拉了群我说点啥呢。12月份的时候,我一看今年用户量增长很少,发力写了几篇文章。同时,也得到了贵人相助,用户增长终于完成了“KPI”。虽然我不知道贵人具体是谁,但是肯定和咱们用户朋友有很大的关系。答谢是应该的。

要做就做大的,我拉群,大家帮忙拉人进去,争取拉满500人。聊天你们聊,我只管过年发红包。

找不到参数的方法 springBoot() - 使用 Kotlin 的 Spring Boot

【中文标题】找不到参数的方法 springBoot() - 使用 Kotlin 的 Spring Boot【英文标题】:Could not find method springBoot() for arguments - Spring Boot using Kotlin 【发布时间】:2017-03-31 06:13:46 【问题描述】:

我尝试使用 Kotlin 创建第一个 Spring Boot 应用程序。所以,也许我犯了一些明显的错误或类似的错误。

我的 gradle.build 是:

buildscript 
    ext.kotlin_version = '1.0.5-2'
    ext.spring_boot_version = '1.4.2.RELEASE'
    repositories 
        jcenter()
    
    dependencies 
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath "org.springframework.boot:spring-boot-gradle-plugin:$spring_boot_version"
    


apply plugin: 'idea'
apply plugin: 'kotlin'
apply plugin: 'application'

jar 
    baseName = 'rest-voter'
    version = '0.1.0'


springBoot 
    mainClass = 'ru.hixon.Application'


repositories 
    jcenter()


dependencies 
    compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
    compile "org.springframework.boot:spring-boot-starter-web:1.4.2.RELEASE"
    testCompile 'junit:junit'


task wrapper(type: Wrapper) 
    gradleVersion = '2.13'

错误是:

C:\Users\Desktop\rest-voter>gradlew build

FAILURE: Build failed with an exception.

* Where:
Build file 'C:\Users\Desktop\rest-voter\build.gradle' line: 22

* What went wrong:
A problem occurred evaluating root project 'rest-voter'.
> Could not find method springBoot() for arguments [build_3594if1jtm90vgb7v8evp206i$_run_closure2@459003a0] on root project 'rest-voter'.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 12.351 secs

我的主课是:

package ru.hixon

import org.springframework.boot.SpringApplication
import org.springframework.boot.autoconfigure.SpringBootApplication

@SpringBootApplication
open class Application 



fun main(args: Array<String>) 
    SpringApplication.run(Application::class.java, *args)

here 是我的应用程序的完整代码。

【问题讨论】:

【参考方案1】:

你需要:

apply plugin: 'spring-boot'

还有:)

只导入依赖是不够的。

【讨论】:

太奇怪了。我创建了包含这个插件的项目。然后gradle说,这个插件已经弃用了,我得用org.springframework.boot:spring-boot-gradle-plugin。然后我删除了它。现在我添加了这个插件,并没有关于弃用的消息 对于新的 spring boot 版本,您需要使用 apply plugin: 'org.springframework.boot' 然后在其下方添加 buildInfo() 块以避免构建错误。

以上是关于Spring Boot 使用的经典错误-找不到Bean了(文末含新年答谢红包福利)的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot + Kotlin + Gradle - 错误:在类中找不到主要方法

Spring-boot:需要一个找不到的名为“entityManagerFactory”的bean

找不到参数的方法 springBoot() - 使用 Kotlin 的 Spring Boot

在 Spring Boot 中找不到 DiscoveryClient bean 错误

spring boot错误: 找不到或无法加载主类

Spring Boot loader 找不到资源