title: How CrudRepository deals with DB Connection from ConnectionPool
body: <p>I can't find any default implementation class for spring-data-commons <code>crudrepository</code> interface. We always implement <code>CustomRepository extends CrudRepository&lt;T, ID&gt;</code> and then <code>@Autowire CustomRepository customRepository</code> in the service class to call <code>customRepository.save(s)</code>..which always works. <br><br>I'd like to understand the low level details associated with any crudrepository method e.g. <code>save(S)</code>; </p>
  
  <ol>
  <li>When is the connection to underlying database opened or closed? </li>
  <li>How the transaction boundaries are defined? </li>
  <li>How does it work with connection-pool? <br><br>Any pointers to the right resources would be really helpful.Please feel free to point me out if I'm missing something silly...</li>
  </ol>