Created
April 11, 2025 13:27
-
-
Save martijndwars/b887f59d8ffb7a52dbb7399332dbf957 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.example; | |
import io.micronaut.context.ApplicationContext; | |
import io.micronaut.runtime.Micronaut; | |
public class Application { | |
public static void main(String[] args) { | |
ApplicationContext applicationContext = Micronaut.run(Application.class, args); | |
/* | |
* Bean1 depends on Bean2, which means: | |
* | |
* - We need to construct Bean2 before Bean1. | |
* - We need to destroy Bean1 before Bean2. | |
*/ | |
// This is good. Bean1 depends on Bean2. Bean2 is destroyed before bean1. | |
Bean1 bean1 = applicationContext.findBean(Bean1.class).get(); | |
bean1.sayHi(); | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.example; | |
import jakarta.annotation.PostConstruct; | |
import jakarta.annotation.PreDestroy; | |
import jakarta.inject.Inject; | |
import jakarta.inject.Singleton; | |
@Singleton | |
public class Bean1 { | |
@Inject | |
Bean2 bean2; | |
@PostConstruct | |
public void postConstruct() { | |
System.out.println("Bean1 postConstruct"); | |
} | |
@PreDestroy | |
public void preDestroy() { | |
System.out.println("Bean1 postDestroy"); | |
} | |
public void sayHi() { | |
System.out.println("Hi from bean1"); | |
bean2.sayHi(); | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.example; | |
import jakarta.annotation.PostConstruct; | |
import jakarta.annotation.PreDestroy; | |
import jakarta.inject.Singleton; | |
@Singleton | |
public class Bean2 { | |
@PostConstruct | |
public void postConstruct() { | |
System.out.println("Bean2 postConstruct"); | |
} | |
@PreDestroy | |
public void preDestroy() { | |
System.out.println("Bean2 postDestroy"); | |
} | |
public void sayHi() { | |
System.out.println("Hi from bean2"); | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/Library/Java/JavaVirtualMachines/graalvm-jdk-23.0.2+7.1/Contents/Home/bin/java -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:65311,suspend=y,server=n -javaagent:/Users/mdwars/Library/Caches/JetBrains/IdeaIC2024.3/captureAgent/debugger-agent.jar -Dkotlinx.coroutines.debug.enable.creation.stack.trace=false -Ddebugger.agent.enable.coroutines=true -Dkotlinx.coroutines.debug.enable.flows.stack.trace=true -Dkotlinx.coroutines.debug.enable.mutable.state.flows.stack.trace=true -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath /Users/mdwars/Downloads/demo/target/classes:/Users/mdwars/.m2/repository/io/micronaut/micronaut-http-server-netty/4.8.9/micronaut-http-server-netty-4.8.9.jar:/Users/mdwars/.m2/repository/org/slf4j/slf4j-api/2.0.16/slf4j-api-2.0.16.jar:/Users/mdwars/.m2/repository/io/micronaut/micronaut-http-server/4.8.9/micronaut-http-server-4.8.9.jar:/Users/mdwars/.m2/repository/io/micronaut/micronaut-http/4.8.9/micronaut-http-4.8.9.jar:/Users/mdwars/.m2/repository/io/micronaut/micronaut-core-reactive/4.8.9/micronaut-core-reactive-4.8.9.jar:/Users/mdwars/.m2/repository/io/micronaut/micronaut-context-propagation/4.8.9/micronaut-context-propagation-4.8.9.jar:/Users/mdwars/.m2/repository/io/micronaut/micronaut-router/4.8.9/micronaut-router-4.8.9.jar:/Users/mdwars/.m2/repository/io/micronaut/micronaut-core/4.8.9/micronaut-core-4.8.9.jar:/Users/mdwars/.m2/repository/io/micronaut/micronaut-http-netty/4.8.9/micronaut-http-netty-4.8.9.jar:/Users/mdwars/.m2/repository/io/micronaut/micronaut-buffer-netty/4.8.9/micronaut-buffer-netty-4.8.9.jar:/Users/mdwars/.m2/repository/io/netty/netty-codec-http2/4.1.118.Final/netty-codec-http2-4.1.118.Final.jar:/Users/mdwars/.m2/repository/io/netty/netty-handler/4.1.118.Final/netty-handler-4.1.118.Final.jar:/Users/mdwars/.m2/repository/io/netty/netty-resolver/4.1.118.Final/netty-resolver-4.1.118.Final.jar:/Users/mdwars/.m2/repository/io/netty/netty-transport-native-unix-common/4.1.118.Final/netty-transport-native-unix-common-4.1.118.Final.jar:/Users/mdwars/.m2/repository/io/netty/netty-codec-http/4.1.118.Final/netty-codec-http-4.1.118.Final.jar:/Users/mdwars/.m2/repository/io/netty/netty-common/4.1.118.Final/netty-common-4.1.118.Final.jar:/Users/mdwars/.m2/repository/io/netty/netty-buffer/4.1.118.Final/netty-buffer-4.1.118.Final.jar:/Users/mdwars/.m2/repository/io/netty/netty-transport/4.1.118.Final/netty-transport-4.1.118.Final.jar:/Users/mdwars/.m2/repository/io/netty/netty-codec/4.1.118.Final/netty-codec-4.1.118.Final.jar:/Users/mdwars/.m2/repository/io/projectreactor/reactor-core/3.7.2/reactor-core-3.7.2.jar:/Users/mdwars/.m2/repository/org/reactivestreams/reactive-streams/1.0.4/reactive-streams-1.0.4.jar:/Users/mdwars/.m2/repository/io/micronaut/serde/micronaut-serde-jackson/2.14.0/micronaut-serde-jackson-2.14.0.jar:/Users/mdwars/.m2/repository/io/micronaut/micronaut-inject/4.8.9/micronaut-inject-4.8.9.jar:/Users/mdwars/.m2/repository/jakarta/inject/jakarta.inject-api/2.0.1/jakarta.inject-api-2.0.1.jar:/Users/mdwars/.m2/repository/jakarta/annotation/jakarta.annotation-api/2.1.1/jakarta.annotation-api-2.1.1.jar:/Users/mdwars/.m2/repository/io/micronaut/micronaut-jackson-core/4.8.9/micronaut-jackson-core-4.8.9.jar:/Users/mdwars/.m2/repository/io/micronaut/micronaut-json-core/4.8.9/micronaut-json-core-4.8.9.jar:/Users/mdwars/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.18.2/jackson-core-2.18.2.jar:/Users/mdwars/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.18.2/jackson-annotations-2.18.2.jar:/Users/mdwars/.m2/repository/io/micronaut/micronaut-context/4.8.9/micronaut-context-4.8.9.jar:/Users/mdwars/.m2/repository/io/micronaut/micronaut-aop/4.8.9/micronaut-aop-4.8.9.jar:/Users/mdwars/.m2/repository/io/micronaut/serde/micronaut-serde-api/2.14.0/micronaut-serde-api-2.14.0.jar:/Users/mdwars/.m2/repository/io/micronaut/serde/micronaut-serde-support/2.14.0/micronaut-serde-support-2.14.0.jar:/Users/mdwars/.m2/repository/ch/qos/logback/logback-classic/1.5.16/logback-classic-1.5.16.jar:/Users/mdwars/.m2/repository/ch/qos/logback/logback-core/1.5.16/logback-core-1.5.16.jar:/Users/mdwars/Applications/IntelliJ IDEA Community Edition.app/Contents/lib/idea_rt.jar com.example.Application | |
Connected to the target VM, address: '127.0.0.1:65311', transport: 'socket' | |
__ __ _ _ | |
| \/ (_) ___ _ __ ___ _ __ __ _ _ _| |_ | |
| |\/| | |/ __| '__/ _ \| '_ \ / _` | | | | __| | |
| | | | | (__| | | (_) | | | | (_| | |_| | |_ | |
|_| |_|_|\___|_| \___/|_| |_|\__,_|\__,_|\__| | |
15:25:21.291 [main] INFO io.micronaut.runtime.Micronaut - Startup completed in 265ms. Server Running: http://localhost:8080 | |
Bean2 postConstruct | |
Bean1 postConstruct | |
Hi from bean1 | |
Hi from bean2 | |
15:25:26.696 [Thread-0] INFO io.micronaut.runtime.Micronaut - Embedded Application shutting down | |
Bean2 postDestroy | |
Bean1 postDestroy | |
Disconnected from the target VM, address: '127.0.0.1:65311', transport: 'socket' | |
Process finished with exit code 143 (interrupted by signal 15:SIGTERM) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment