Demo project for some AOP features implementation tackling issues in persistence layer.
-
For some database tables, revision history needs to be recorded. → Feature 1
- Specific strategies may vary, but in this project...
- Each table has its own history table.
- History tables consists of full snapshot of original columns with some additional ones (e.g. sequence numbering of recorded histories by each original entity).
-
Some columns are repeated across tables and have identical value assigning strategy. → Feature 2
- e.g. first inserted time, last modified time, etc...
-
Some records need to be fetched from database and remain cached for repetitive usage. → Feature 3
- e.g. system level enum codes referenced across the whole application
- Record histories after database revision
- Inject common data(stamp) into method arguments before execution
- Provide temporary context around method execution
- Persistence Framework: MyBatis 3
- Write tests for ExecutionScopeContextProvider and CommonCodesCacheProviderAspect.
- Update READMEs for each feature.