5 ms·
That...sounds surprising. Basically you need: 1. An IDE (I highly recommend IntelliJ IDEA) 2. A build and dependency management tool (I prefer Gradle, but Mav
by allengeorge 12y ago
That...sounds surprising. Basically you need:
1. An IDE (I highly recommend IntelliJ IDEA)
2. A build and dependency management tool (I prefer Gradle, but Maven is a reasonable choice - though way more verbose)
Beyond that point, a lot depends on what you want to do. Some of my preferences (YMMV):
* logging: slf4j over logback
* json serialization/deserialization: jackson
* db access (if you don't need or want ORM): jdbi
* db migrations: flyway
* REST services: jersey
* networking: netty
* embeddable http server: jersey
* http client: apache-commons http client
* metrics: codahale's metrics
If you're building a backend webservice I highly recommend looking at Dropwizard, which handles a lot of the boiler plate for you.
- paulddraper 12y agoGreat suggestions. Do you have a web framework suggestion, e.g. something with templating? I like Play, but that's 'cause I use Scala. It has a Java version, but IDK how good it is.
- allengeorge 12y agoI've heard mixed things about Play's Java version. YMMV, but the last I heard it was a "second-class citizen". Unfortunately I don't work with any templating myself, but I note that Dropwizard supports both Mustache and Freemarker. Would those work for you?
- allengeorge 12y agoOoops. For embeddable http server I meant jetty.
- jazzyk 12y agoThere is also Spring Boot, which is very similar to Dropwizard. Both wonderful frameworks.
- squar1sm 12y agoGreat list. I wish this list and ones like it had a name other than "modern java" to distinguish tools/projects/people/interest/books. Because it's hard to name something that's a synonym for "new". Eventually "more modern java" is needed. And then "most modern".