PacktLib: Spring Python 1.1

Spring Python 1.1

Credits

About the Author

About the Reviewers

Preface

Getting Started with Spring Python

Spring Python for Python developers

Spring Python for Java developers

Extending Spring Python

Installing Spring Python

Spring Python community

Summary

The Heart of Spring Python—Inversion of Control

Swapping production code with test doubles

Container versus Context

Debate about IoC in dynamic languages

Migrating a Spring Java application to Python

Summary

Adding Services to APIs

AOP from 10,000 feet

Adding caching to Spring Python objects

AOP is a paradigm, not a library

Testing our aspects

Summary

Easily Writing SQL Queries with Spring Python

The classic SQL issue

The Spring triangle—Portable Service Abstractions

Using DatabaseTemplate to retrieve objects

DatabaseTemplate and ORMs

Testing our data access layer with mocks

How much testing is enough?

Summary

Adding Integrity to your Data Access with Transactions

Classic transaction issues

Simplify by using @transactional

The Spring Triangle—Portable Service Abstractions

Programmatic transactions

Making new functions play nice with existing transactions

Applying transactions to non-transactional code

Testing your transactions

Summary

Securing your Application with Spring Python

Problems with coding security by hand

Building web applications ignoring security

Handling new security requirements

Time to add security to our application

Accessing security data from within the app

Testing application security

Configuring SQL-based security

Configuring LDAP-based security

Using multiple security providers is easy

Coding our own security extension

Some of the challenges with Spring Python Security

Summary

Scaling your Application Across Nodes with Spring Python's Remoting

Introduction to Pyro (Python Remote Objects)

Converting a simple application into a distributed one on the same machine

Scaling our application

Summary

Case Study I—Integrating Spring Python with your Web Application

Requirements for a good bank

Building a skeleton web application

Securing the application

Building some basic customer functions

Coding more features

Issues with customer features

Remotely accessing logs

Creating audit logs

Summary

Creating Skeleton Apps with Coily

Plugin approach of Coily

Required parts of a plugin

Creating a skeleton CherryPy app

Summary

Case Study II—Integrating Spring Python with your Java Application

Building a flight reservation system

Issues with wrapping Java code

Summary

Index