The Salesforce Database.com Java SDK is what you need (ignore the fact it has Database.com in the title, it works with regular Force.com orgs as well!).
The SDK is built on existing Force.com APIs. A core service connector class is responsible for managing connections to the API for the application. You configure this connector using a connection URL string which can be provided in property files, system properties, or environment variables. The connector automatically handles session refreshes after expiration and it can use the OAuth module to inject the session ID. The connector uses WSC for the actual protocol implementation.
It also has this to say about the Spring integration...
This plugin enables you to use Spring Security for authentication and authorization in your applications. The Spring Security library uses the API Connector and the OAuth Connector to allow authentication via the Force.com APIs. There is also a custom Spring Security namespace that helps to simplify configuration.
I have been using this library effectively recently and have been quite pleased. My most recent project is the GitHub Salesforce Deploy tool, here you can see this example.
ForceServiceConnector connector = new ForceServiceConnector(ForceServiceConnector.getThreadLocalConnectorConfig());
The ForceServiceConnector allows you to obtain connections to the various Salesforce API's, as well as the Session Id if you need to make REST API calls. This article is also a good read and covers using the REST API's, Integrating Java Spring Apps on Heroku with Force.com REST APIs.