La respuesta correcta es tradicional en la Spring de arquitecturas es el lugar de la semántica transaccional en las clases de servicios, por las razones que otros ya hemos descrito.
Una tendencia emergente en la Spring es hacia domain-driven design. Spring Roo ejemplifica la tendencia bien. La idea es hacer que el dominio objeto de POJOs mucho más ricos de lo que son típicos en la Spring de arquitecturas (por lo general son anémicos), y, en particular, para poner de transacciones y persistencia de la semántica de los objetos de dominio de sí mismos. En los casos en donde todo lo que se necesita es sencillo operaciones CRUD, la web de los controladores de operar directamente en el objeto de dominio POJOs (funcionan como entidades en este contexto), y no hay ningún nivel de servicio. En casos donde hay algún tipo de coordinación necesarios entre los objetos de dominio, usted puede tener un servicio de frijol de manejar que, con @Transacción como por la tradición. Puede establecer la propagación de la transacción en el dominio de los objetos a algo como NECESARIOS de modo que el dominio, uso de objetos de cualquiera de las transacciones existentes, tales como las transacciones que se iniciaron en el servicio de frijol.
Técnicamente esta técnica hace uso de AspectJ y . Roo utiliza AspectJ entre las definiciones de tipo de separar la entidad semántica (transacciones y persistencia) de dominio objeto material (básicamente, los campos y los métodos de negocio).