Home
/
Full Stack Java
frequal.com
RSS Feed
Full Stack Java
Full Stack Java is an opinionated design philosophy for modern applications. Its guiding principles are:
Java tooling is second to none — use it
Applications are best developed in a single language, top to bottom, saving time via shared code
Applications should be resilient
Applications should be scalable
Applications should have thorough tests for testability and flexibility
The Technology
ORM: JPA/Hibernate with auto-tables
Transactions: Spring Transactions or Atomikos
AuthN: Ton library
REST: JAX-RS/Jersey with versioning
Web: TeaVM and Flavour
Including REST clients from JAX-RS annotations
Routing for multi-page apps with URL linkability
Mobile: Codename One
The Tools
Build: Maven
Test: JUnit/Mockito
Mutation Testing and Coverage: PIT
Static Analysis: Findbugs/PMD/Checkstyle
Server: Tomcat
Database: H2
Packaging
Format: WAR
Config: Via environment (For database and discovery server)
Discovery: Eureka or ELB on VPC
Deployment: Elastic Beanstalk
The Modules
ui-web: TeaVM front-end
ui-core: Shared state machines and logic shared by all UIs
resource: JAX-RS wrapper around service
view: POJOs for sending data to the front end
service: The server-side business logic, uses dao and model
dao: Database access, returns model objects to services
model: The server-side POJOs saved in the DB
Last modified on 23 Nov 2020 by
AO
Copyright © 2024
Andrew Oliver