I'm wanting to build a relatively simple app. Basically, a bunch of RESTful web services that access a database. Basic CRUD operations, a fair amount of search, and some amount of reaching out to third-party RESTful APIs. Yes, my app will have a web front end, but I want it to be as decoupled from the back-end as possible.
Right now, I'm using Hibernate for my ORM, Jersey to handle the webservices, and Jackson to do my serialization. MySQL for the DB. Maven to do my builds.
Thing is, I really, really, really don't want to be reinventing the wheel. There are a number of frameworks out there for doing Java web stuff, but the selection is enormous and bewildering and I don't have any idea which one is most appropriate. I'm one person working by himself, so anything that can help me get a first version working and out the door would be most useful.
So, three questions :
1) Do I even need to use a framework? Remember, I'll be learning something new and will have to deal with the learning curve. If it will take me longer to learn the framework than it would to build my app from scratch, I'd just as soon not bother.
2) Which framework should I use? Why? Why is it particularly appropriate for what I'm doing?
3) If I don't use a framework, are there any other tools that could help me?
Oh, and if your answer is Spring, I'm going to ask that you please get really, really specific about what part of Spring I should use and why/how I should use it. Spring is a huge project that does a whole lot of things, and I'm still not entirely sure what it's good for or why I should use it. It seems pretty suited to a corporate environment, so I'll want to know how it could help me as a one-person startup.
Thanks for your help and suggestions!
