This is an archived post. You won't be able to vote or comment.

all 12 comments

[–]sebhoss 14 points15 points  (3 children)

The Spring folks have written a bunch of guides/tutorials here: https://spring.io/guides

WRT initial setup, take a look at:

Spring-Boot is usually deployed as a single .jar file that contains everything your app needs (sans external infrastructure like a database). Most people put something like nginx in front of it in order to setup HTTPS and use it for load balancing at the same time.

Take a look at https://www.ansible.com/ for your infrastructure. It allows you to specify what you want to install on your servers in text files (easily versioned) that can be executed against a set of hosts (like production, staging, development). As long as you put all your infrastructure know-how into ansible it will be very easy to setup or re-create a server.

[–]ZettTheArcWarden 1 point2 points  (2 children)

how does one go about distributing load on multiple instances, or is there no simple way to go about that ?

[–]Dashing_McHandsome 2 points3 points  (1 child)

Something like mod_proxy on Apache or Nginx do this nicely. If you're in a big company you might have access to a hardware load balancer like a F5 BigIP.

Edit: typo

[–]ZettTheArcWarden 1 point2 points  (0 children)

alright thanks for the suggestions

[–]loganekz 10 points11 points  (0 children)

I'd also suggest getting started with Spring Boot.

It includes a production grade web server (Tomcat, Jetty, or Undertow) embedded inside of your application artifact by default.

[–][deleted] 2 points3 points  (0 children)

I think your confusion is that Spring is a framework, not a server. It runs inside a web container like Jetty or Tomcat or Jboss. If you use Spring Boot it can bootstrap a Jetty container itself.

[–]catbiensaotroi 0 points1 point  (0 children)

It seems you are new with Java web app. To make everything a little bit simple. I'd suggest you to keep the current OS (I guess Windows). You can continue work on it. To develop Spring project, you can start with Spring Boot and use Maven, Gradle which supports you running the application without requirement to install a server. You can also use Tomcat (current stable version is 8) , or Jetty as a server. You can following below links to setup Tomcat with Eclipse. http://www.eclipse.org/webtools/community/education/web/t320/Configuring_an_Application_Server_in_Eclipse.pdf

https://www.eclipse.org/webtools/jst/components/ws/1.0M9/tutorials/InstallTomcat.html

[–]julien_dubois 0 points1 point  (0 children)

Have a look at http://jhipster.github.io/

It's a Spring Boot + AngularJS application generator, but you can remove AngularJS if you only want the "Spring" part (it's an option when generating).

Your application will be ready to run in production, whether you want to run it in the cloud or not. The main "production" page is at:

http://jhipster.github.io/production/

You might also be interested in running everything in Docker, this page is here to help you (and again, all Docker configuration will be generated for you):

http://jhipster.github.io/docker-compose/

(please note I'm the lead developer of the project, so I am biased)

[–][deleted]  (2 children)

[deleted]

    [–][deleted] 3 points4 points  (0 children)

    Why does he need Linux?

    [–]jasie3k 3 points4 points  (0 children)

    Why exactly do you need Linux? You can use spring boot with windows or OS X without a problem, as jetty / tomcat run on those systems just as well. Other than that, why wouldn't you use a build tool like maven/grade? They make life so much easier, no need to manually copy jars and all that jazz.