Spring Python, the python version of the Spring Framework, has just released version 0.8.0. This release contains a refactored IoC container supporting four formats (XMLConfig, PythonConfig/@Object, PyContainerConfig, and SpringJavaConfig); replacement of the term "component" with "object" in all APIs, classnames, etc.; and other bug fixes and API cleanup.
This release also includes a new, spring-green web page at http://springpython.webfactional.com.
A key requirement to using this version of Spring Python is installation of Amara XML parsing libraries used by Spring Python. You can either follow this link, and download a binary copy of these libraries, or use:
This should install amara 1.2.Code:easy_install amara
Release Notes - Spring Python - Version 0.8
* [SESPRINGPYTHONPY-72] - PetClinic broke in distributed mode.
* [SESPRINGPYTHONPY-77] - Intercepted methods cannot handle having arguments that are also intercepted
* [SESPRINGPYTHONPY-55] - Include redistributable 3rd party components as part of distribution
* [SESPRINGPYTHONPY-59] - Integrate Spring Python publishing with Amazon S3
* [SESPRINGPYTHONPY-71] - SP uses RowCallbackHandler like RowMapper
** New Feature
* [SESPRINGPYTHONPY-66] - Add support for nested component definitions in XML application configuration
* [SESPRINGPYTHONPY-67] - Add support for constructor-arg dependency injection
* [SESPRINGPYTHONPY-68] - Refactor core container
- For more information, please visit the website at http://springpython.webfactional.com.
- To download the 0.8.0 release, or an archived release, and for access to sample applications use http://www.springsource.com/download...g%20Extensions
Key Features of Spring Python include:
- Inversion Of Control - The idea is to decouple two classes at the interface level. This lets you build many reusable parts in your software, and your whole application becomes more pluggable. You can use either the XmlApplicationContext or the DecoratorBasedApplicationContext.
- Aspect-oriented Programming - Spring Python provides great ways to wrap advice around objects. It is utilized for remoting. Another use is for debug tracers and performance tracing.
- DatabaseTemplate - Reading from the database requires a monotonous cycle of opening cursors, reading rows, and closing cursors, along with exception handlers. With this template class, all you need is the SQL query and row-handling function. Spring Python does the rest.
- Database Transactions - Wrapping multiple database calls with transactions can make your code hard to read. This module provides multiple ways to define transactions without making things complicated.
- Security - Plugin security interceptors to lock down access to your methods, utilizing both authentication and domain authorization.
- Remoting - It is easy to convert your local application into a distributed one. If you have already built your client and server pieces using the IoC container, then going from local to distributed is just a configuration change.
- Samples - to help demonstrate various features of Spring Python, some sample applications have been created:
- PetClinic - Everybody's favorite Spring sample application has been rebuilt from the ground up using various web containers including: CherryPy. Go check it out for an example of how to use this framework.
- Spring Wiki - Wikis are powerful ways to store and manage content, so we created a simple one as a demo!
- Spring Bot - Use Spring Python to build a tiny bot to manage the IRC channel of your open source project.