Java - Anotaciones en SpringMVC, Magia?

 
Vista:

Anotaciones en SpringMVC, Magia?

Publicado por Andrea (43 intervenciones) el 09/10/2018 04:36:03
Hasta donde yo sé, las anotaciones son información para los prorgamadores, y no tienen código a ejecutar.
Usa Spring acaso un compilador especial?
Esto de que una anotación cambie por completo el funcionamiento de un programa está bien? Osea, si las anotaciones están hechas para dar información sobre el programa, si otro programador lee ese código puede confundirse mucho. Osea, un SupressWarnings no hace nada en tiempo de ejecución mientras que un @Controller hace que esa clase pase a ser interpretada como un controlador...
Y al final, entre poner anotaciones por aquí y por allá terminas haciendo el mismo trabajo que añadir los elementos del programa a una clase Container , usando herencia y los conceptos de la POO como diós manda.

Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
-1
Responder
sin imagen de perfil
Val: 973
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Anotaciones en SpringMVC, Magia?

Publicado por Agustin (170 intervenciones) el 09/10/2018 05:22:06
Las "anotaciones" y la "magia" que observas son el resultado de la carencia y la inexpresividad de java como lenguaje.

De hecho, los frameworks monstruosos como Spring son la mera manifestación de este problema: en java se necesita demasiado código para hacer cualquier cosa, lo cual concluye en la existencia de estos frameworks y herramientas "mágicas" para evitar perder el tiempo escribiendo código redundante una y otra vez.

En lenguajes con mayor umbral de abstracción esto no ocurre, y no se observa la presencia de frameworks horrendos y gigantescos cuyo único propósito es compensar las limitaciones del lenguaje, ni de abuso de "anotaciones", reflection u otras herramientas similares de metaprogramación, que como bien dijiste, ofuscan la intencionalidad del código y ensucian todo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-3
Comentar

Anotaciones en SpringMVC, Magia?

Publicado por Tom (1831 intervenciones) el 09/10/2018 08:31:10
Las anotaciones se procesan por el compilador, así que pueden modificar el proceso de compilación, o el código generado. Son una herramienta muy potente cuando se usan bien.
Por supuesto, hace falta saber lo que son y cómo funcionan ¿ Po r qué crees tú que sólo valen para "dar información sobre el programa" ?.
Cualquiera puede desarrollar sus propias anotaciones, crear un procesador para ellas, y usarlo pasándoselo al compilador (yo hice uno, hace tiempo, para simplificar un poco algo que usaba JNI).

https://docs.oracle.com/javase/tutorial/java/annotations/
https://docs.oracle.com/javase/7/docs/technotes/tools/solaris/javac.html#processing
https://docs.oracle.com/javase/8/docs/api/javax/annotation/processing/Processor.html
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Anotaciones en SpringMVC, Magia?

Publicado por Andrea (43 intervenciones) el 10/10/2018 01:06:00
Perdón por ser pesada e insistir siendo una novata en esto de la programación ^.^
Pero en la definición de las anotaciones explica que están hechas para dar información al compilador, al prorgamador durante el desarrollo y para metadata, y que !!no tienen efecto directo en el código!!
Llegas a Spring, y el hecho de declarar una variable como @Autowired o no marca mucha diferencia en la ejecución del programa, su ausencia va a terminar tirando un NullPointerException, ya que si más adelante se quiere acceder a esa variable, ésta no va a estar iniciada por el framework. ¿No se ha visto el programa entero afectado por la ausencia/presencia de una anotación? O el hecho de que SpringMVC esté usando el nombre de la variable para buscar el bean XML del que extraer la información, no rompe con los paradigmas de la POO, a no ser que pasemos a considerar SpringMVC cómo un programa en sí, en vez de un framework?

Y muchas gracias por las respuestas, aunque se contradigan!
Se agradece la ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Anotaciones en SpringMVC, Magia?

Publicado por Tom (1831 intervenciones) el 10/10/2018 11:13:11
Copio y pego del primer enlace que puse:

"Annotations have a number of uses, among them:

Information for the compiler — Annotations can be used by the compiler to detect errors or suppress warnings.
Compile-time and deployment-time processing — Software tools can process annotation information to generate code, XML files, and so forth.
Runtime processing — Some annotations are available to be examined at runtime.
"

¿ Qué hay en "los paradigmas de la POO" que sea incompatible con la metaprogramación ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar