CDI dependency injection, configuration, dev mode, and extensions.
@ApplicationScoped
public class UserService {
@Inject
UserRepository userRepository;
@Inject
@ConfigProperty(name = "app.max-users", defaultValue = "1000")
int maxUsers;
public User findById(Long id) {
return userRepository.findById(id);
}
}
// Bean scopes
@ApplicationScoped // Single instance per application
@RequestScoped // Per HTTP request
@Singleton // Like ApplicationScoped but not proxied
@Dependent // New instance each injection
@ConfigMapping(prefix = "app")
public interface AppConfig {
String name();
int maxConnections();
Optional<String> description();
DatabaseConfig database();
interface DatabaseConfig {
String url();
String username();
}
}
// Usage
@Inject
AppConfig config;
# application.properties
app.name=MyApp
app.max-connections=100
app.database.url=jdbc:postgresql://localhost/db
app.database.username=admin
# Profile-specific
%dev.app.database.url=jdbc:h2:mem:test
%prod.app.database.url=${DB_URL}
# Live reload
./mvnw quarkus:dev
# Continuous testing
./mvnw quarkus:dev -Dquarkus.test.continuous-testing=enabled
# Dev UI at http://localhost:8080/q/dev
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer