skip to main |
skip to sidebar
A new multi-module Contact Application has been added. It is comprised of the following modules:
- DAO - DB Schema, JPA Entities, Spring Data JPA repositories.
- Web Service Beans - JAXB beans generated from XSDs.
- Services - APIs use JAXB beans and Dozer is used to convert between this beans and the JPA entities. Security and transactions are configured in this layer.
- REST Services - The module has clients & controllers, as well as their Spring configurations. JSON and XML views are supported for requests.
- Webapp - The webapp as a standard JSP UI, Sencha ExtJS, and also a Sencha Touch UI.
- Test - The DAO, Services, and REST Services all have an abstract test class for each module that each test extends. This way within each module, all tests have a shared context so Spring only has to load once. All of these tests use an in memory database and the REST Services have an embedded jetty server. REST Services tests can be run with clients using JSON or XML for marshalling.
Two new examples have been added on Spring Data JPA. One basic example showing how to create and use a repository, along with creating some basic custom queries. And another example showing how to use Spring Data JPA auditing with custom field mappings. All of the main webapps using JPA were updated to use Spring Data JPA instead of custom repository classes. Also, all of the JPA examples were upgraded to use Hibernate 4.1.
Spring JavaScript was removed from the Spring Web Flow examples. There were some issues around the AJAX tiles usage.
Updated Webapps
All examples have been upgraded to Spring 3.1 and Java 6. The exceptions are that the GWT examples have been removed, and Spring dm Server (OSGi) examples have not been updated but are still available for reference.
All modules have also been upgraded to Spring 3.1 and Java 6. Maven group and artifact IDs have been changed back to standard Maven naming and also all project dependencies (no OSGi ones in standard examples).
Spring by Example JDBC has been removed and all projects (except for OSGi ones) have been changed to use the Spring JDBC Custom Namespace.
The Spring by Example repository has been moved to GitHub. New git Spring by Example Repository. The old Subversion repository can still be found here.
Almost all examples have been upgraded to Spring 3.0 (except for the Aspect LTW example, GWT ones, and OSGi ones). Also a new Grails example has been added.
The web examples in particular have all been upgraded (except for GWT/OSGi) to use the new Spring MVC Namespace. Keith Donald, from SpringSource, wrote a great blog going over some of the new Spring MVC simplifications in MVC Simplifications in Spring 3.0. All the webapps were updated to use Spring MVC best practices as much as possible, except their URLs aren't currently RESTful. That will be changed as soon as soon as possible.
All modules have been upgraded to Spring 3.0 and Maven group and artifact IDs have been changed to follow Spring naming conventions (ex: custom-thread-scope --> org.springbyexample.threadscope).
The Spring 2.5.x version of the site and all examples are still available. It's available at Spring by Example 2.5.x, which is version 1.0.3.
Spring by Example Utils' HttpClientTemplate, HttpClientOxmTemplate, and SolrOxmClient are used for making different Apache Solr client requests. Solr provides an XML based API over HTTP to the Apache Lucene search engine. Spring OXM is used for marshalling and unmarshalling requests using a custom marshaller made with dom4j.
The SolrOxmClient was added to the Spring by Example Utils module. The SolrOxmClient provides for easier client communication with Apache Solr. It marshalls/unmarshalls searches and updates to and from a JavaBean. It also allows calls to commit, rollback, and optimize. It is built on top of HttpClientTemplate and HttpClientOxmTemplate.
A preface, introduction to Inversion of Control (IoC) and Dependency Injection (DI), and basic XML configuration in Spring were added to the beginning of examples.
Enhancements to Valang based on Spring Modules Validation Version 0.9 was added to the module library. When changes are complete, the code will be offered back to the Spring Modules project. There are a number of enhancements to the Valang part of the project. A few key enhancements are where clause support, enum support, and a number of performance enhancements (such as bytecode generation). Currently none of the enhancements were added to the custom JSP tag that generates JavaScript.
Also the 'Simple Spring MVC Form Annotation Configuration Webapp' was updated to follow the best practices for Spring MVC annotation based configuration presented by Rossen Stoyanchev at SpringOne. Rossen along with Keith Donald and the rest of the web team helped put together what they consider best practices for using Spring MVC annotations based on their experience and interaction with many use case scenarios from Spring users. Thanks to Rossen Stoyanchev for helping with this. The example was also updated to use JPA.