Las anotaciones tienen su uso, pero no son la única bala para eliminar la configuración XML. ¡Recomiendo mezclar los dos!
Por ejemplo, si usa Spring, es completamente intuitivo usar XML para la porción de inyección de dependencia de su aplicación. Esto aleja las dependencias del código del código que lo usará, por el contrario, al usar algún tipo de anotación en el código que necesita las dependencias, el código toma en cuenta esta configuración automática.
Sin embargo, en lugar de usar XML para la administración de transacciones, marcar un método como transaccional con una anotación tiene perfecto sentido, ya que esta es información que un programador probablemente desearía saber. Pero que una interfaz va a ser inyectada como un SubtypeY en lugar de un SubtypeX no debe ser incluido en la clase, porque si ahora deseas inyectar SubtypeX, tienes que cambiar tu código, mientras que antes tenías un contrato de interfaz, entonces con XML, solo necesitaría cambiar las asignaciones de XML y es bastante rápido y sencillo hacerlo.
No he usado las anotaciones JPA, así que no sé qué tan buenas son, pero yo diría que dejar la asignación de beans a la base de datos en XML también es bueno, ya que al objeto no le debe importar dónde de donde proviene su información, debería importarle lo que puede hacer con su información. Pero si te gusta JPA (no tengo ninguna experiencia con él), de todos modos, ve por ello.
En general: Si una anotación proporciona funcionalidad y actúa como un comentario en sí misma, y no vincula el código a un proceso específico para funcionar normalmente sin esta anotación, entonces vaya por anotaciones. Por ejemplo, un método transaccional marcado como transaccional no anula su lógica operativa y también sirve como un buen comentario a nivel de código. De lo contrario, esta información probablemente se expresa mejor como XML, porque aunque eventualmente afectará la forma en que opera el código, no cambiará la funcionalidad principal del código y, por lo tanto, no pertenece a los archivos fuente.
Suponiendo que se refiera a anotaciones como '@ Component' y' @ Autowired', esta es una dicotomía falsa. Hay otras maneras de crear su configuración, incluyendo [JavaConfig] (http://docs.spring.io/spring-javaconfig/docs/1.0.0.M4/reference/html/) y la configuración groovy. – bacar
consulte también: [¿Cuántas formas existen para configurar Spring framework? ¿Cuáles son las diferencias entre ellos técnicamente? (No pros o contras ..)] (http://stackoverflow.com/questions/35807056/how-many-ways-are-there-to-configure-the-spring-framework-what-are-the-differen/ 35966655) – user21
Compruebe también este https://stackoverflow.com/questions/8428439/spring-annotation-based-di-vs-xml-configuration – pramodc84