Spring Python - Reference Documentation

Authors

Greg Turnquist

1.0.1.BUILD-20101109171136

Copies of this document may be made for your own use and for distribution to others, provided that you do not charge any fee for such copies and further provided that each copy contains this Copyright Notice, whether distributed in print or electronically.


Table of Contents

Preface
1. Overview
1.1. Key Features
1.2. What Spring Python is NOT
1.3. Support
1.3.1. Forums and Email
1.3.2. IRC
1.4. Downloads / Source Code
1.5. Licensing
1.6. Spring Python's team
1.6.1. How to become a team member
1.7. Deprecated Code
2. The IoC container
2.1. Container
2.1.1. ObjectContainer vs. ApplicationContext
2.1.2. Scope of Objects / Lazy Initialization
2.2. Configuration
2.2.1. XMLConfig - Spring Python's native XML format
2.2.1.1. Referenced Objects
2.2.1.2. Inner Objects
2.2.1.3. Collections
2.2.1.4. Constructors
2.2.1.5. Values
2.2.2. PythonConfig and @Object - decorator-driven configuration
2.2.3. PyContainerConfig - Spring Python's original XML format
2.2.4. SpringJavaConfig
2.2.5. Mixing Configuration Modes
2.3. Object Factories
2.4. Testable Code
3. Aspect Oriented Programming
3.1. Interceptors
3.2. Proxy Factory Objects
3.3. Pointcuts
3.4. Interceptor Chain
3.5. Coding AOP with Pure Python
4. Data Access
4.1. DatabaseTemplate
4.1.1. Traditional Database Query
4.1.2. Database Template
4.1.3. What is a Connection Factory?
4.1.4. Creating/altering tables, databases, and other DDL
4.1.5. SQL Injection Attacks
4.1.6. Have you used Spring Framework's JdbcTemplate?
5. Transaction Management
5.1. Solutions requiring transactions
5.2. TransactionTemplate
5.3. @transactional
5.3.1. @transactional(["PROPAGATION_REQUIRED"])...
6. Security
6.1. Shared Objects
6.2. Authentication
6.2.1. AuthenticationProviders
6.2.1.1. DaoAuthenticationProvider
6.2.1.2. Future AuthenticationProviders
6.2.2. AuthenticationManager
6.3. Authorization
7. Remoting
7.1. Remoting with PYRO (Python Remote Objects)
7.1.1. Decoupling a simple service, to setup for remoting
7.1.2. Exporting a Spring Service Using Inversion Of Control
7.1.2.1. Hostname/Port overrides
7.1.3. Do I have to use XML?
7.1.4. Splitting up the client and the server
7.2. Remoting with Hessian
7.3. High-Availability/Clustering Solutions
8. Spring Python's plugin system
8.1. Introduction
8.2. Coily - Spring Python's command-line tool
8.2.1. Commands
8.3. Officially Supported Plugins
8.3.1. gen-cherrypy-app
8.4. Writing your own plugin
8.4.1. Architecture of a plugin
8.4.2. Case Study - gen-cherrypy-app plugin
8.4.2.1. Source Code
8.4.2.2. Deconstructing the factory
8.4.2.3. Summary
9. Samples
9.1. PetClinic
9.1.1. How to run
9.2. Spring Wiki
9.3. Spring Bot
9.3.1. Why write a bot?
9.3.2. IRC Library
9.3.2.1. Articles
9.3.3. What I built
9.3.3.1. IRC Bot
9.3.3.2. Web App
9.3.3.3. Putting it all together
9.3.3.4. Releasing your CherryPy web app to the internet
9.3.3.5. Come and visit Coily
9.3.4. External Links