Resources for Learning the LDSTech Java WebApp Platform
The LDSTech Java Web Application Platform is made up of several third party components (as seen to the right). This document is a guiding post for learning the most applicable aspects of the various Stack components.
- Basic Syntax and Features
- Annotations & Generics
- Core/Foundational Classes
- Collections API
- JDBC (though mostly abstracted with Spring JDBC a good understanding of the basics of JDBC wouldn't hurt)
You explicitly don't need to learn about:
- Networking APIs
Tomcat is the deployment platform for the LDSTech Java Web Application Platform. As such, it is mainly used as a standard Java EE Servlet container. We use Tomcat 6 currently. Tomcat 6 implements version 2.5 of the Servlet specification and version 2.1 of the JSP Specification. There are many resources for learning the basics of java servlet development online. Sun provides a fairly good web tier tutorial. To focus your learning I would concentrate on the following subjects:
- Servlet Basics: You won't be actually creating servlets in this platform but you will be using them. It would be useful to at least understand them.
- JSP: Anything you can learn about JSP development would be beneficial.
- Ignore: Don't spend time learning anything about JSF, EJBs, or any other Java EE technology. We don't make use of any of them at this time.
It is unnecessary to know anything about tomcat itself. If you wish to dig deep into some tomcat specific configuration you can view their reference documentation. However, I would recommend you ask any questions about tomcat configuration on our forum. In general you won't need to know it.
Spring is the underlying core platform of the LDSTech Java WebApp Platform. The Spring framework is where most of your education should be focused. We currently use Spring version 3. In a nutshell Spring is a container that makes heavy use of Dependency Injection. To be successful with this platform it is important to understand Spring and how it works. Though the platform makes use of pretty much all aspects of Spring your time might be better spent focusing on the following topics:
- Spring basic concepts and dependency injection. Specifically Spring's support for annotation driven dependency injection.
- Spring MVC
- Spring JDBC
The following are some good resources for learning Spring.
- A slightly dated Spring Tutorial. Though based on Spring 2.5 it still provides some good background and introduction to Spring.
- Spring Recipes Second Edition is an excellent example based reference for Spring 3 development.
- Enterprise Recipes which covers back end technologies. Provides good information on Spring JDBC and Spring JMS.
- Spring also provides a fairly extensive Reference Manual. Though not a very good source for tutorials it is a very useful source of information once you know the basic Spring concepts.
JPA (Java Persistence API) is a Java standard API for working with Object Relational Mapping frameworks. The LDSTech Java platform uses Hibernate as our standard JPA implementation. JPA is a very powerful tool and very simple on the surface, however, underneath JPA can be very complex and can represent a rather significant learning curve for new developers. In general the platform recommends developers use the simplest tool they can for a given job. In the case of persistence that would generally be Spring JDBC. However, JPA is available as an option if a project wishes to use it.
- Your best source for how to use JPA in the LDSTech platform would probably be Spring oriented resources such as the Spring Reference Manual or Spring Enterprise Recipes.
- Pro JPA 2 is a great reference for JPA. I would skip chapter 3 and replace it with one of the Spring oriented resources.
Maven is the LDSTech platform's build management tool. Though it does much more than simply build. We also use Maven for:
- Dependency Management
- Project Information
- Standard Project Source Structure
- Project Modularization
Maven is not your typical build tool. On the Maven website it refers to itself as "a software project management and comprehension tool". It is generally not necessary for developers to learn a lot about Maven. The only real requirements for developers is to add and remove dependencies from a project (which is not hard). If you think you might need to do more with Maven on a project then Sonatype (the company behind Maven) provides an excellent free book on their website.
Eclipse is a great free IDE for a number of platforms though the primary platform is Java. Because it is free and rather widely used the LDSTech platform provides a customized distribution for use when developing LDSTech webapps. The platform does not require the use of Eclipse. If you prefer another Java IDE such as Intellij or Netbeans feel free to use it (however we are best at supporting Eclipse and Intellij). To download and install the Eclipse based IDE simply follow the getting started guide.
You can find all documentation for the base eclipse platform in their documentation website. This holds the reference material for all core eclipse plugins. The sections most applicable to LDSTech Java development would be:
- Workbench Users Guide
- Java Development Users Guide
- Web Tools Platform Users Guide
The LDSTech Java IDE is an eclipse based distro that adds several common eclipse plugins used in developing with the platform. The most prevalent of those plugins is m2eclipse. This plugin integrates Maven with Eclipse allowing for automatic dependency management and project configuration. Sonatype provides a very handy free book on m2eclipse that can be useful for developers new to m2eclipse. Skip the chapter on installing m2eclipse as the LDSTech Java IDE has m2eclpse pre-installed.
The LDSTech Java IDE also includes a few custom plugins to help smooth development with eclipse and the LDSTech Java WebApp Platform even further. You can find more information about LDSTech IDE in its update site.
Oracle is the standard database. We currently use mostly Oracle 10g databases. Though an 11g database may be available if required. You can find all kinds of Oracle tutorials all over the internet. Oracle's website has the official reference documentation. For development we recommend using Oracle XE.