Tight coupling between components, as everything is in one application.
Less reusability.
Large code base; tough for developers and QA to understand the code and business knowledge.
Less Scalable.
Does not follow SRP (Single Responsibility Principle)
More deployment and restart times.
xxxxxxxxxx
@AcrossApplication(
modules = {
}
)
public class DemoApplication
{
@Bean
public ModuleOne moduleOne() {
return new ModuleOne();
}
@Bean
public ModuleTwo moduleTwo() {
return new ModuleTwo();
}
@Bean
public ModuleThree moduleThree() {
return new ModuleThree();
}
public static void main(String[] args) {
SpringApplication springApplication = new SpringApplication(DemoApplication.class);
springApplication.setDefaultProperties(Collections.singletonMap("spring.config.location", "${user.home}/dev-configs/demo-application.yml"));
springApplication.run(args);
}
}