What is spring-richclient?

Spring-RCP's mission is to provide an elegant way to build highly-configurable, GUI-standards-following rich-client applications faster by leveraging the Spring Framework, and a rich library of UI factories and support classes.

Spring Richclient's Future

The current codebase of Spring Richclient was started a few years ago. Although the code is quite stable, we realise that it's not state-of-the-art anymore. Several technologies and ideas have emerged that should be embraced in the Spring Richclient code (eg JSR Application Framework) and the need for refactoring and revising of the codebase has grown. We opted to start a new project called Spring Desktop that allows us to do this without having our hands tied to the current codebase. This does not mean that Spring Richclient will be abandoned. The current project will be maintained and fixes will be deployed as needed. We're aiming to release the first version of Spring Desktop in October as part of the Spring release train.

Where are the docs?

As you've read in the previous paragraph, we're starting a new project. It's quite obvious that we want to dedicate as much time as we can into Spring Desktop. We therefore opted to switch to a document-as-needed approach. If at any point you need some help or some documentation, please post this need on the Spring Richclient Forum . We'll try to help you out and any docs created in the process will be added to the reference manual and/or posted on the Spring Richclient Developer Blog .


  • 2008-03-17 : Release 1.0.0 available: see download
  • 2006-09-21 : Release 0.2.1 available: see download

    Spring-richclient 0.2.1 has several improvements, such as better view support, new binders (shuttlelist, nachocalendar, tiger enums), a new sample "simple", more improvements and over 50 bugfixes.

    See Release notes

  • 2006-04-25 : New sample: simple: see screenshots
  • 2006-04-03 : First release 0.1.0 available: see download
  • 2006-03-12 : Moved to subversion and maven2ization done


The Spring Rich Client Project (RCP) is a sub-project of The Spring Framework. Spring-RCP's mission is to provide an elegant way to build highly-configurable, GUI-standards-following rich-client applications faster by leveraging the Spring Framework, and a rich library of UI factories and support classes. Initial focus is on providing support for Swing applications but a goal of Spring-RCP is to be view agnostic as much as possible.

The goal of the Spring Rich Client Project (Spring Rich) is to provide a viable option for developers that need a platform and a best-practices guide for constructing Swing applications quickly.

Specifically, spring-richclient seeks to:

  • Provide a way to build structured, highly-configurable, GUI-standards-following Swing applications faster by leveraging the Spring Framework.
  • Foster integration with existing rich-client-related projects where it make sense. For example, jgoodies-forms and TableLayout are two good layout managers. We don't need to develop another one.
  • Adhere to the principles set forth by the Spring Framework--programming to interfaces; the importance of sound OO design, documentation, and testing.

Some features of the platform under development include:

  • A command framework that provides centralized configuration of Swing actions and appropriate handler registration based on the current active view. Command configuration, as well as action bar contribution policies (to menus or toolbars), can be defined centrally and externalized in Spring bean defintions.
  • A forms data binding and validation framework, for connecting edits made in your UI controls with your domain model automatically--with as you type feedback.
  • Support for multiple window management, page configuration, and view management. The concepts here are inspired by Eclipse's perspective/view constructs. Views can be defined in the Spring container, associated with one or more pages, and a default page can be configured to be loaded at startup.
  • Common support classes addressing various rich client requirements including: well formed dialogs, wizards, input validation (typing hints and validation results reporting), button bars, internationalization, image/icon caching, progress monitoring, UI threading (classes cleanly promoting responsive UIs), treetable/property sheet, table sorting/high-volume table updates, GUI standards builders/helpers, help/about, etc.

Spring-rich adds value for people needing to develop Swing applications and do so in a way that promotes consistent, well-designed, configurable Swing applications. The spring-rich developers strongly feel the old days of Swing apps not looking native and not being performant or web-accessible are gone with JDK1.4.2 and 1.5 and webstart. It is our belief the only problem with Swing is that there are a limited number of higher-level abstractions available that assist in making the toolkit simpler and easier to use, and a limited number of design best practices. The goal of spring-richclient is to provide that.

- The spring-richclient team