Spring templates are a way to eliminate boilerplate code that is needed to correctly use many APIs such as JDBC, JMS, transactions, etc. Boilerplate code is setup and error handling code that needs to be written in order to use correctly a API.
For example in JDBC, for executing a query the template will take care of the all setting of the connection, preparing the statement, releasing the connection after the query is done, handling exceptions all of which is non-trivial and easy to get wrong.
To the template you just need to pass in the query that you want to run, and the rest is taken care by the template.
Take the example on this blog post, a program of 80 lines executing a query in plain jdbc was reduced to 20 lines when using the spring JDBC template.
JdbcTemplate
is not an example of the Template Method design pattern. That pattern requires subclassing, whereas the doc forJdbcTemplate
states, "there should be no need to subclass it." – Pul