我不包括java.lang.String bean?

时间:2016-11-18 05:42:55

标签: java string spring gradle groovy

我有一个用Groov编写的小型Spring Boot测试项目,用Gradle构建。尝试使用

运行时
spring run src/com/eval/EvalMain.groovy src/com/eval/InputObj.groov

我收到了

***************************
APPLICATION FAILED TO START
***************************

Description:

Parameter 0 of constructor in com.eval.InputObj required a bean of type 'java.lang.String' that could not be found.


Action:

Consider defining a bean of type 'java.lang.String' in your configuration.

我的印象是gradle包含了这些类型的东西,并且它应该可以工作,因为Groovy是基于Java构建的。 (另外它是如何知道包路径java.lang的?)下面是我的gradle.build,非常感谢任何帮助!

buildscript {
    ext {
        springBootVersion = '1.4.2.RELEASE'
    }
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}

apply plugin: 'groovy'
apply plugin: 'org.springframework.boot'

jar {
    baseName = 'testJar'
    version = '.0.0.2'
}
sourceCompatibility = 1.8
targetCompatibility = 1.8

repositories {
    mavenCentral()
}

dependencies {
    compile('org.springframework.boot:spring-boot-starter')
    testCompile('org.springframework.boot:spring-boot-starter-test')
}

springBoot {
    mainClass = "com.eval.EvalMain"
}

2 个答案:

答案 0 :(得分:1)

  

我的印象是gradle包含了这些东西   对我来说,它应该工作,因为Groovy是基于Java构建的。

constructor com.eval.InputObj required a bean of type 'java.lang.String'异常与Gradle无关,因为您的InputObj bean对象需要一个构造函数参数,它是String参数,您需要提供(使用spring config xml或annotations)来创建bean / object。

答案 1 :(得分:1)

对于那些也在运行Lombok的人,您可能需要@AllArgsConstructor或@NoArgsConstructor Lombok Doc

我还发现这个spring ticket有用