Build multiple rest APIs like multi module project












0














I'm working on spring boot project. Requirement is to build multiple rest APIs with one Application class. So the approach followed is, I created kinda multi module project where in parent project have included all rest APIs as modules. Don't want each modules to have App class as it creates separate java instance, but each module have rest controllers and they exposes various methods. Finally i need to export as one jar to host on server.



Project strucutre:



ParentAPI - Contains POM.xml but no main application class. ExecuteAPI, Child1 and Child2 are modules within it



ExecuteAPI - Contain main aplication class. Passing Child1 and Child2 application classes to SpringApplicationBuilder. Both Child1 and Child2 added as dependency inside POM.xml



Child1 - Has application class and it's own controller etc and POM we well.



Child2 - Has application class and it's own controller etc and POM we well.



Im running ExecuteAPI which runs the corresponding controller from Child1 and Child2.
Is this valid approach? if no, any better way to do it? Does this creates multiple java instance for each module or just one for ExecuteAPI?










share|improve this question
























  • Show us the file structure and package naming (name spacing) you've used please.
    – Randy Casburn
    Nov 13 '18 at 1:58










  • Hi Casburn, I have added project structure, let me know if you want to see code. Also re-framed my question. thank you.
    – user1510335
    Nov 19 '18 at 3:38
















0














I'm working on spring boot project. Requirement is to build multiple rest APIs with one Application class. So the approach followed is, I created kinda multi module project where in parent project have included all rest APIs as modules. Don't want each modules to have App class as it creates separate java instance, but each module have rest controllers and they exposes various methods. Finally i need to export as one jar to host on server.



Project strucutre:



ParentAPI - Contains POM.xml but no main application class. ExecuteAPI, Child1 and Child2 are modules within it



ExecuteAPI - Contain main aplication class. Passing Child1 and Child2 application classes to SpringApplicationBuilder. Both Child1 and Child2 added as dependency inside POM.xml



Child1 - Has application class and it's own controller etc and POM we well.



Child2 - Has application class and it's own controller etc and POM we well.



Im running ExecuteAPI which runs the corresponding controller from Child1 and Child2.
Is this valid approach? if no, any better way to do it? Does this creates multiple java instance for each module or just one for ExecuteAPI?










share|improve this question
























  • Show us the file structure and package naming (name spacing) you've used please.
    – Randy Casburn
    Nov 13 '18 at 1:58










  • Hi Casburn, I have added project structure, let me know if you want to see code. Also re-framed my question. thank you.
    – user1510335
    Nov 19 '18 at 3:38














0












0








0







I'm working on spring boot project. Requirement is to build multiple rest APIs with one Application class. So the approach followed is, I created kinda multi module project where in parent project have included all rest APIs as modules. Don't want each modules to have App class as it creates separate java instance, but each module have rest controllers and they exposes various methods. Finally i need to export as one jar to host on server.



Project strucutre:



ParentAPI - Contains POM.xml but no main application class. ExecuteAPI, Child1 and Child2 are modules within it



ExecuteAPI - Contain main aplication class. Passing Child1 and Child2 application classes to SpringApplicationBuilder. Both Child1 and Child2 added as dependency inside POM.xml



Child1 - Has application class and it's own controller etc and POM we well.



Child2 - Has application class and it's own controller etc and POM we well.



Im running ExecuteAPI which runs the corresponding controller from Child1 and Child2.
Is this valid approach? if no, any better way to do it? Does this creates multiple java instance for each module or just one for ExecuteAPI?










share|improve this question















I'm working on spring boot project. Requirement is to build multiple rest APIs with one Application class. So the approach followed is, I created kinda multi module project where in parent project have included all rest APIs as modules. Don't want each modules to have App class as it creates separate java instance, but each module have rest controllers and they exposes various methods. Finally i need to export as one jar to host on server.



Project strucutre:



ParentAPI - Contains POM.xml but no main application class. ExecuteAPI, Child1 and Child2 are modules within it



ExecuteAPI - Contain main aplication class. Passing Child1 and Child2 application classes to SpringApplicationBuilder. Both Child1 and Child2 added as dependency inside POM.xml



Child1 - Has application class and it's own controller etc and POM we well.



Child2 - Has application class and it's own controller etc and POM we well.



Im running ExecuteAPI which runs the corresponding controller from Child1 and Child2.
Is this valid approach? if no, any better way to do it? Does this creates multiple java instance for each module or just one for ExecuteAPI?







java maven spring-boot multi-module






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 19 '18 at 3:37

























asked Nov 13 '18 at 1:45









user1510335

12




12












  • Show us the file structure and package naming (name spacing) you've used please.
    – Randy Casburn
    Nov 13 '18 at 1:58










  • Hi Casburn, I have added project structure, let me know if you want to see code. Also re-framed my question. thank you.
    – user1510335
    Nov 19 '18 at 3:38


















  • Show us the file structure and package naming (name spacing) you've used please.
    – Randy Casburn
    Nov 13 '18 at 1:58










  • Hi Casburn, I have added project structure, let me know if you want to see code. Also re-framed my question. thank you.
    – user1510335
    Nov 19 '18 at 3:38
















Show us the file structure and package naming (name spacing) you've used please.
– Randy Casburn
Nov 13 '18 at 1:58




Show us the file structure and package naming (name spacing) you've used please.
– Randy Casburn
Nov 13 '18 at 1:58












Hi Casburn, I have added project structure, let me know if you want to see code. Also re-framed my question. thank you.
– user1510335
Nov 19 '18 at 3:38




Hi Casburn, I have added project structure, let me know if you want to see code. Also re-framed my question. thank you.
– user1510335
Nov 19 '18 at 3:38












0






active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53272594%2fbuild-multiple-rest-apis-like-multi-module-project%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes
















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.





Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


Please pay close attention to the following guidance:


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53272594%2fbuild-multiple-rest-apis-like-multi-module-project%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Xamarin.iOS Cant Deploy on Iphone

Glorious Revolution

Dulmage-Mendelsohn matrix decomposition in Python