Como usar a arquitetura em camadas da primavera e ainda seguir a estrutura orientada a objetos?

Aprendi a primavera e sua estrutura em camadas (controlador, serviço e dao)

@Controller("userController")

@service("userService")
@Transactional(     propagation = Propagation.REQUIRED,     isolation = Isolation.DEFAULT,      readOnly = true)

@Repository("userDAO")

Agora estou confuso como faço para usarboas práticas OOPS (gostaresta) com essa estrutura em camadas para criar um grande projeto (o mundo real tem uma lógica de negócios mais complexa do que os aplicativos de amostra geralmente fornecidos). Também quero usar essas transações de primavera e outros recursos fornecidos pelo framework. Alguns podem me ajudar com isso ou se referir ao projeto de código aberto que esclarece minha dúvida.

questionAnswers(4)

yourAnswerToTheQuestion