Groovy micronaut弹簧和弹簧防尘套执行器,can';t访问/执行器端点
仅试用具有弹簧功能的micronaut,无法访问我的/执行器端点Spring Boot v2.3.0版本和micronaut 2.0.0.M3 我使用Groovy micronaut弹簧和弹簧防尘套执行器,can';t访问/执行器端点,groovy,spring-boot-actuator,micronaut,Groovy,Spring Boot Actuator,Micronaut,仅试用具有弹簧功能的micronaut,无法访问我的/执行器端点Spring Boot v2.3.0版本和micronaut 2.0.0.M3 我使用mncreateappxxx--langgroovy创建了一个基本的micronaut项目 然后,我添加了spring依赖项和micronaut spring以及相关的注释处理器 我的build.gradle现在如下所示 plugins { id "groovy" id "com.github.johnrengelman.shado
mncreateappxxx--langgroovy
创建了一个基本的micronaut项目
然后,我添加了spring依赖项和micronaut spring以及相关的注释处理器
我的build.gradle现在如下所示
plugins {
id "groovy"
id "com.github.johnrengelman.shadow" version "5.2.0"
id "application"
id "net.ltgt.apt" version "0.21" //enables annotation preproccessing support
id "net.ltgt.apt-idea" version "0.21"
id "org.springframework.boot" version "2.3.0.RELEASE"
id "io.spring.dependency-management" version "1.0.9.RELEASE"
}
ext['groovy.version'] = '3.0.4'
version "0.1"
group "com.softwood"
repositories {
mavenCentral()
maven { url "https://jcenter.bintray.com" }
}
configurations {
// for dependencies that are needed for development only
developmentOnly
}
dependencies {
//annotation processors
annotationProcessor platform("io.micronaut:micronaut-bom:$micronautVersion")
annotationProcessor "io.micronaut.spring:micronaut-spring-boot-annotation"
annotationProcessor "io.micronaut.spring:micronaut-spring-web-annotation"
testAnnotationProcessor "io.micronaut.spring:micronaut-spring-web-annotation:2.0.1"
//latest groovy v3
implementation group: 'org.codehaus.groovy', name: 'groovy-all', version: '3.0.4' //, ext: 'pom'
//spring
compileOnly "io.micronaut.spring:micronaut-spring-annotation:2.0.1"
implementation("org.springframework.boot:spring-boot-starter-web")
implementation("org.springframework.boot:spring-boot-starter-actuator")
implementation group: 'io.micronaut.spring', name: 'micronaut-spring-web', version: '2.0.1'
runtime ("io.micronaut.spring:micronaut-spring-boot:2.0.1")
compileOnly platform("io.micronaut:micronaut-bom:$micronautVersion")
compileOnly "io.micronaut:micronaut-inject-groovy"
implementation platform("io.micronaut:micronaut-bom:$micronautVersion")
implementation "io.micronaut:micronaut-runtime-groovy"
implementation "io.micronaut:micronaut-validation"
implementation "javax.annotation:javax.annotation-api"
implementation "io.micronaut:micronaut-http-server-netty"
implementation "io.micronaut:micronaut-http-client"
runtimeOnly "ch.qos.logback:logback-classic:1.2.3"
testCompileOnly platform("io.micronaut:micronaut-bom:$micronautVersion")
testImplementation platform("io.micronaut:micronaut-bom:$micronautVersion")
testImplementation("org.spockframework:spock-core:2.0-M2-groovy-3.0") {
exclude group: "org.codehaus.groovy", module: "groovy-all"
}
testImplementation "io.micronaut:micronaut-inject-groovy"
testImplementation "io.micronaut.test:micronaut-test-spock"
testImplementation "io.micronaut.test:micronaut-test-junit5"
}
test.classpath += configurations.developmentOnly
mainClassName = "com.softwood.Application"
//added - enable incremetal compile feature - can't enable with annotation processors !
/*tasks.withType(GroovyCompile).configureEach {
options.incremental = true
}*/
tasks.withType(GroovyCompile) {
groovyOptions.forkOptions.jvmArgs.add('-Dgroovy.parameters=true')
}
shadowJar {
mergeServiceFiles()
}
tasks.withType(JavaExec) {
classpath += configurations.developmentOnly
jvmArgs('-noverify', '-XX:TieredStopAtLevel=1', '-Dcom.sun.management.jmxremote')
}
import io.micronaut.http.annotation.Controller
import io.micronaut.http.annotation.Get
import io.micronaut.http.HttpStatus
import org.springframework.boot.actuate.endpoint.annotation.Endpoint
@Controller("/hello")
@Endpoint
class HelloController {
@Get("/")
String index() {
return 'hello william'
}
}
micronaut:
application:
name: micronaut-std-app
management:
endpoints:
web:
exposure:
include=*:
我调整了Hello控制器如下
plugins {
id "groovy"
id "com.github.johnrengelman.shadow" version "5.2.0"
id "application"
id "net.ltgt.apt" version "0.21" //enables annotation preproccessing support
id "net.ltgt.apt-idea" version "0.21"
id "org.springframework.boot" version "2.3.0.RELEASE"
id "io.spring.dependency-management" version "1.0.9.RELEASE"
}
ext['groovy.version'] = '3.0.4'
version "0.1"
group "com.softwood"
repositories {
mavenCentral()
maven { url "https://jcenter.bintray.com" }
}
configurations {
// for dependencies that are needed for development only
developmentOnly
}
dependencies {
//annotation processors
annotationProcessor platform("io.micronaut:micronaut-bom:$micronautVersion")
annotationProcessor "io.micronaut.spring:micronaut-spring-boot-annotation"
annotationProcessor "io.micronaut.spring:micronaut-spring-web-annotation"
testAnnotationProcessor "io.micronaut.spring:micronaut-spring-web-annotation:2.0.1"
//latest groovy v3
implementation group: 'org.codehaus.groovy', name: 'groovy-all', version: '3.0.4' //, ext: 'pom'
//spring
compileOnly "io.micronaut.spring:micronaut-spring-annotation:2.0.1"
implementation("org.springframework.boot:spring-boot-starter-web")
implementation("org.springframework.boot:spring-boot-starter-actuator")
implementation group: 'io.micronaut.spring', name: 'micronaut-spring-web', version: '2.0.1'
runtime ("io.micronaut.spring:micronaut-spring-boot:2.0.1")
compileOnly platform("io.micronaut:micronaut-bom:$micronautVersion")
compileOnly "io.micronaut:micronaut-inject-groovy"
implementation platform("io.micronaut:micronaut-bom:$micronautVersion")
implementation "io.micronaut:micronaut-runtime-groovy"
implementation "io.micronaut:micronaut-validation"
implementation "javax.annotation:javax.annotation-api"
implementation "io.micronaut:micronaut-http-server-netty"
implementation "io.micronaut:micronaut-http-client"
runtimeOnly "ch.qos.logback:logback-classic:1.2.3"
testCompileOnly platform("io.micronaut:micronaut-bom:$micronautVersion")
testImplementation platform("io.micronaut:micronaut-bom:$micronautVersion")
testImplementation("org.spockframework:spock-core:2.0-M2-groovy-3.0") {
exclude group: "org.codehaus.groovy", module: "groovy-all"
}
testImplementation "io.micronaut:micronaut-inject-groovy"
testImplementation "io.micronaut.test:micronaut-test-spock"
testImplementation "io.micronaut.test:micronaut-test-junit5"
}
test.classpath += configurations.developmentOnly
mainClassName = "com.softwood.Application"
//added - enable incremetal compile feature - can't enable with annotation processors !
/*tasks.withType(GroovyCompile).configureEach {
options.incremental = true
}*/
tasks.withType(GroovyCompile) {
groovyOptions.forkOptions.jvmArgs.add('-Dgroovy.parameters=true')
}
shadowJar {
mergeServiceFiles()
}
tasks.withType(JavaExec) {
classpath += configurations.developmentOnly
jvmArgs('-noverify', '-XX:TieredStopAtLevel=1', '-Dcom.sun.management.jmxremote')
}
import io.micronaut.http.annotation.Controller
import io.micronaut.http.annotation.Get
import io.micronaut.http.HttpStatus
import org.springframework.boot.actuate.endpoint.annotation.Endpoint
@Controller("/hello")
@Endpoint
class HelloController {
@Get("/")
String index() {
return 'hello william'
}
}
micronaut:
application:
name: micronaut-std-app
management:
endpoints:
web:
exposure:
include=*:
并将应用程序类标记为SpringbootApplication,但调用Micronaut.run()来构建MN上下文等
import io.micronaut.runtime.Micronaut
import groovy.transform.CompileStatic
import org.springframework.boot.autoconfigure.SpringBootApplication
@CompileStatic
@SpringBootApplication
class Application {
static void main(String[] args) {
Micronaut.run(Application)
}
}
我尝试调整application.yml以公开所有端点,如下所示
plugins {
id "groovy"
id "com.github.johnrengelman.shadow" version "5.2.0"
id "application"
id "net.ltgt.apt" version "0.21" //enables annotation preproccessing support
id "net.ltgt.apt-idea" version "0.21"
id "org.springframework.boot" version "2.3.0.RELEASE"
id "io.spring.dependency-management" version "1.0.9.RELEASE"
}
ext['groovy.version'] = '3.0.4'
version "0.1"
group "com.softwood"
repositories {
mavenCentral()
maven { url "https://jcenter.bintray.com" }
}
configurations {
// for dependencies that are needed for development only
developmentOnly
}
dependencies {
//annotation processors
annotationProcessor platform("io.micronaut:micronaut-bom:$micronautVersion")
annotationProcessor "io.micronaut.spring:micronaut-spring-boot-annotation"
annotationProcessor "io.micronaut.spring:micronaut-spring-web-annotation"
testAnnotationProcessor "io.micronaut.spring:micronaut-spring-web-annotation:2.0.1"
//latest groovy v3
implementation group: 'org.codehaus.groovy', name: 'groovy-all', version: '3.0.4' //, ext: 'pom'
//spring
compileOnly "io.micronaut.spring:micronaut-spring-annotation:2.0.1"
implementation("org.springframework.boot:spring-boot-starter-web")
implementation("org.springframework.boot:spring-boot-starter-actuator")
implementation group: 'io.micronaut.spring', name: 'micronaut-spring-web', version: '2.0.1'
runtime ("io.micronaut.spring:micronaut-spring-boot:2.0.1")
compileOnly platform("io.micronaut:micronaut-bom:$micronautVersion")
compileOnly "io.micronaut:micronaut-inject-groovy"
implementation platform("io.micronaut:micronaut-bom:$micronautVersion")
implementation "io.micronaut:micronaut-runtime-groovy"
implementation "io.micronaut:micronaut-validation"
implementation "javax.annotation:javax.annotation-api"
implementation "io.micronaut:micronaut-http-server-netty"
implementation "io.micronaut:micronaut-http-client"
runtimeOnly "ch.qos.logback:logback-classic:1.2.3"
testCompileOnly platform("io.micronaut:micronaut-bom:$micronautVersion")
testImplementation platform("io.micronaut:micronaut-bom:$micronautVersion")
testImplementation("org.spockframework:spock-core:2.0-M2-groovy-3.0") {
exclude group: "org.codehaus.groovy", module: "groovy-all"
}
testImplementation "io.micronaut:micronaut-inject-groovy"
testImplementation "io.micronaut.test:micronaut-test-spock"
testImplementation "io.micronaut.test:micronaut-test-junit5"
}
test.classpath += configurations.developmentOnly
mainClassName = "com.softwood.Application"
//added - enable incremetal compile feature - can't enable with annotation processors !
/*tasks.withType(GroovyCompile).configureEach {
options.incremental = true
}*/
tasks.withType(GroovyCompile) {
groovyOptions.forkOptions.jvmArgs.add('-Dgroovy.parameters=true')
}
shadowJar {
mergeServiceFiles()
}
tasks.withType(JavaExec) {
classpath += configurations.developmentOnly
jvmArgs('-noverify', '-XX:TieredStopAtLevel=1', '-Dcom.sun.management.jmxremote')
}
import io.micronaut.http.annotation.Controller
import io.micronaut.http.annotation.Get
import io.micronaut.http.HttpStatus
import org.springframework.boot.actuate.endpoint.annotation.Endpoint
@Controller("/hello")
@Endpoint
class HelloController {
@Get("/")
String index() {
return 'hello william'
}
}
micronaut:
application:
name: micronaut-std-app
management:
endpoints:
web:
exposure:
include=*:
这一切编译正常,运行正常。如果调用localhost:8080/hello
将得到预期的字符串
如果尝试访问执行器端点,则不会生成任何内容,并且浏览器会显示
{"message":"Page Not Found","_links":{"self":{"href":"/actuator/health","templated":false}}}
如果您尝试执行micronaut和spring混合项目,那么如何为MN预处理控制器等启用任何执行器端点 如果您只需要运行状况检查端点,Micronaut会提供内置的运行状况检查端点 在build.gradle中添加fallowing依赖项,以添加端点,如运行状况:
implementation("io.micronaut:micronaut-management")
您可以在application.yml中添加
endpoints:
health:
enabled: true
然后将运行状况检查url更改为“/health”我会尝试,但是因为SpringActuator在类路径中-MN不只是让标准SpringActuator端点工作吗?它看起来像是一个疏忽,或者是没有通过Micronaut.run()方法调用的东西。这里的标准spring功能不是可重用的吗?spring的一部分可用于Micronaut,如spring数据、spring注释等。但我不确定一切都是可用的。在Micronaut的最新版本中,几乎所有您可以使用Spring执行的操作都可以由Micronaut本地完成