https://github.com/vs4vijay/harbor
A Microservice in Java and Micronaut
https://github.com/vs4vijay/harbor
api java jvm micronaut microservice microservices rest-api restful-api
Last synced: about 1 year ago
JSON representation
A Microservice in Java and Micronaut
- Host: GitHub
- URL: https://github.com/vs4vijay/harbor
- Owner: vs4vijay
- License: mit
- Created: 2020-11-22T19:42:19.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2025-02-25T12:24:19.000Z (about 1 year ago)
- Last Synced: 2025-02-25T13:30:56.838Z (about 1 year ago)
- Topics: api, java, jvm, micronaut, microservice, microservices, rest-api, restful-api
- Language: Java
- Homepage:
- Size: 24.4 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# HARBOR
A Microservice in Micronaut
## Running
```shell
# Run application
./gradlew run
# Run application in watching mode
./gradlew run --continuous
# Package application
./gradlew assemble
```
---
### Development Notes
```shell
Install SDKMAN
curl -s https://get.sdkman.io | bash
sdk install java
sdk install gradle
sdk install micronaut
mn create-app harbor -i --test=junit
mn create-controller SpaceX
mn create-bean SpaceXService
mn create-client SpaceX
mn feature-diff --features acme
gradle run
gradle jib
gradle dockerBuild
gradle dockerBuildNative
gradle nativeImage
gradle clean run
---
Micronaut
- AOT
- Fast startup time
- Low Memory Footprint
- No Reflections
- DI
- AOP
- Features
- Micronaut Data-{processor,jdbc} - https://micronaut-projects.github.io/micronaut-data/latest/guide/index.html
- Micronaut Security-{annotations,jwt}
- jib
- config-consul
- micronaut-discovery-client
- micronaut-openapi
- micronaut-jdbc-hikari
- micronaut-hibernate-jpa
- micronaut-liquibase
- micronaut-graal
- micronaut-management
- micrometer-atlas
- micronaut-tracing
- micronaut-kubernetes-discovery-client
- Microservice design patterns - Service Discovery, Circuit Breaker
- Scaffolding
- Cache
- Default Login and Logout Handler
- Various auth and security mechanisms - https://guides.micronaut.io/micronaut-security-jwt/guide/index.html
- Support for ScheduledJob
- Configuration
- Test Container
- Build Native Image using GraalVM
---
@Entity
@Id
@GeneratedValue
@JdbcRepository, {CrudRepository<>,PageableRepository<>}
Declarative Rest Client
Declarative Crud Repository
Client-side Load Balancing
application-test.yml
Annotation Configuration
Management Endpoints
/beans
/health
/metrics
/info
@Inject
EmbeddedServer server //refers to the server that was started up for this test suite
@Inject
ApplicationContext context
GraalVM
try (ApplicationContext context = ApplicationContext.run()) {
MyBean myBean = context.getBean(MyBean.class);
// do something with your bean
}
Environment environment = applicationContext.getEnvironment();
final BeanContext context = BeanContext.run();
Map inMemoryDatastore = new ConcurrentHashMap<>();
Operations and Fallback
Lombok - https://docs.micronaut.io/2.2.0/guide/index.html#lombok
Use JPARepository for Hibernate
HttpResponse.status(HttpStatus.CREATED).body("success")
@Introspected for POJO/DTO
Ref:
- https://www.youtube.com/watch?v=S5yfTfPeue8
- https://github.com/asc-lab/micronaut-microservices-poc
- https://alvarosanchez.github.io/micronaut-workshop/
- https://mfarache.github.io/mfarache/Building-microservices-Micronoaut/
```