Dependency Injection
- Q227: How does EK9 validate dependency injection at compile time?
- Q228: Why does registration order matter in EK9 applications?
- Q229: How does EK9 prevent circular dependencies?
- Q230: What happens if I forget to register a dependency in EK9?
- Q231: How do programs connect to applications for dependency injection?
- Q232: How do components inject other components in EK9?
- Q233: Can dynamic classes use dependency injection in EK9?
- Q234: What is the lifecycle of injected components in EK9?
- Q324: What is the EK9 equivalent of Spring @Autowired?
- Q325: What is the EK9 equivalent of Spring @Component and @Service?
- Q326: What is the EK9 equivalent of Spring @Bean and @Configuration?
- Q327: How does EK9 DI compare to Spring Boot auto-configuration?
- Q328: How does EK9 DI compare to Quarkus build-time injection?
- Q329: How does EK9 DI compare to Google Guice modules?
- Q330: Does EK9 support DI scopes like singleton, prototype, and request?
- Q331: How do I test components with injected dependencies?
- Q332: What is the runtime overhead of EK9 DI compared to frameworks?
- Q333: How do I manage transactions with try-with-resources in EK9?
- Q334: How do I add transactions with trait delegation in EK9?
- Q335: How do I use higher-order functions for transaction management?
- Q336: How do dynamic functions solve transaction API pollution?
- Q337: Can I use aspects for transactions like Spring @Transactional?
- Q338: How does EK9 prevent partial transaction commits?
- Q339: Which transaction management pattern should I use in EK9?
- Q340: Why are EK9 transaction patterns better for AI-generated code?
- Q862: Why does EK9 limit injection fields per component?
- Q957: Why can I only inject components, not classes, in EK9?
- Q960: Why does EK9 limit injection fields per component to four?
- Q961: What is the maximum number of registrations in an EK9 application block?
- Q1105: Create a Logger component with a name field and a log method.
- Q1106: Copy a component and check if the copy equals the original.
- Q1107: Check the set and unset states of a component's fields.
- Q1108: Extend a BaseService component and add a version field to the child.
- Q1109: Mutate a Counter component's state through increment and reset methods.
- Q1110: Register a Logger service and inject it into a program.
- Q1111: Register dependencies in the correct order so a service can inject them.
- Q1112: Inject a Logger dependency into a component's field using the ! suffix.
- Q1113: Define an application that wires three components together.
- Q1114: Wire an application with all dependencies correctly to pass compile-time DI validation.
- Q1183: Register a concrete Logger as an abstract Logger type for dependency injection.
- Q1290: What does EK9 error E50040 mean when I write an abstract method in a component and how do I fix it?
- Q1291: Why does E50040 fire on my abstract method in a class but not in a trait?
- Q1312: Why can't I instantiate a program or application with a constructor call in EK9?
- Q1313: Why does EK9 reject an application that has no register statements?