title: Spring @Transactional Annotation class or method
body: <p>Trying to collect and understand the main points of @Transactional annotation and crossed one point. So, the main things that we need to keep in mind when using Transactional annotation are:</p>
  
  <ol>
  <li>Transactional annotation can be applied only to public methods [according to <a href="https://stackoverflow.com/questions/4396284/does-spring-transactional-attribute-work-on-a-private-method">Does Spring @Transactional attribute work on a private method?</a> </li>
  <li>Transactional annotation should be applied to the concrete classes instead of interfaces [according to <a href="https://stackoverflow.com/questions/3120143/where-should-i-put-transactional-annotation-at-an-interface-definition-or-at-a">Where should I put @Transactional annotation: at an interface definition or at an implementing class?</a></li>
  <li>Transactional annotation should be applied on the Service level [according to <a href="https://stackoverflow.com/questions/1079114/spring-transactional-annotation-best-practice">Spring @Transactional Annotation Best Practice</a></li>
  <li>If you want to exclude some public method from being annotated with Transactional when whole class is annotated you can use some propagation strategies [according to <a href="https://stackoverflow.com/questions/18233171/transactional-annotation-on-whole-class-excluding-a-single-method">Transactional annotation on whole class + excluding a single method</a></li>
  </ol>
  
  <p>Unfortunately I didn't find the answer to the question: <em>Where it is better to put Transactional annotation - to the class or method?</em> We can consider different situations, but mostly i am interested in the one when we have several methods which must have this annotation and some which don't.</p>
  
  <p>Plus, maybe you would like to add some points to this list, that would be really great.</p>