1 00:00:00,000 --> 00:00:06,419 tú ya eres de una generación 2 00:00:06,419 --> 00:00:08,699 casi más parecida a la mía 3 00:00:08,699 --> 00:00:11,400 vale, bueno pues 4 00:00:11,400 --> 00:00:13,720 siguiente arquitectura para acceso a ficheros 5 00:00:13,720 --> 00:00:15,480 xml, os voy a decir 6 00:00:15,480 --> 00:00:16,879 lo que siempre os digo, es muy fácil 7 00:00:16,879 --> 00:00:19,519 pero, es verdad, lo es 8 00:00:19,519 --> 00:00:21,519 entonces, Jaxb 9 00:00:21,519 --> 00:00:22,859 viene, si 10 00:00:22,859 --> 00:00:25,920 mi memoria para variar 11 00:00:25,920 --> 00:00:27,420 no me falta 12 00:00:27,420 --> 00:00:28,379 no me falla 13 00:00:28,379 --> 00:00:32,229 arquitectura java 14 00:00:32,229 --> 00:00:34,710 para hacer el enlace 15 00:00:34,710 --> 00:00:35,570 xml 16 00:00:35,570 --> 00:00:40,579 ¿vale? entonces esta 17 00:00:40,579 --> 00:00:42,700 sí que es de alguna 18 00:00:42,700 --> 00:00:43,780 manera la 19 00:00:43,780 --> 00:00:47,060 estándar para acceder a ficheros xml 20 00:00:47,060 --> 00:00:48,140 ¿vale? Jaxway 21 00:00:48,140 --> 00:00:50,899 más que DOM, DOM tiene la ventaja que dijimos 22 00:00:50,899 --> 00:00:52,340 que para aplicaciones pequeñitas 23 00:00:52,340 --> 00:00:54,679 y en la que yo no quiero tener ninguna 24 00:00:54,679 --> 00:00:56,100 dependencia pues es muy cómoda 25 00:00:56,100 --> 00:00:58,359 pero esta es la estándar 26 00:00:58,359 --> 00:00:59,399 ¿por qué? porque esta 27 00:00:59,399 --> 00:01:05,400 se fusiona muy bien con el modelo de objetos. 28 00:01:06,239 --> 00:01:10,959 Entonces DOM insiste en la arquitectura de árbol, lógicamente, 29 00:01:11,040 --> 00:01:14,200 y nosotros tenemos que cambiar nuestra forma de pensamiento a un árbol 30 00:01:14,200 --> 00:01:16,280 cuando estamos trabajando con DOM. 31 00:01:16,920 --> 00:01:20,260 Pero esta nos permite seguir en el mundo de los objetos. 32 00:01:20,400 --> 00:01:21,739 ¿Y el mundo de los objetos cuál es? 33 00:01:21,739 --> 00:01:24,180 Pues la lógica de negocio de nuestra aplicación. 34 00:01:24,799 --> 00:01:28,280 Nuestra aplicación va a tener un modelo de negocio que son las entidades. 35 00:01:28,280 --> 00:01:45,359 Y yo debería pensar todas las funcionalidades, en especial las de acceso a datos, orientadas a las entidades. Insertar o recuperar alumnos. Consultar facturas. Debería pensar todas las funcionalidades de acceso a datos en términos de la lógica de negocio de las entidades. 36 00:01:45,359 --> 00:01:47,900 entonces, si esas entidades 37 00:01:47,900 --> 00:01:49,060 están en un XML 38 00:01:49,060 --> 00:01:52,340 todo se me desbarata, porque de repente hay un árbol 39 00:01:52,340 --> 00:01:54,280 entonces, jolín, que pesado 40 00:01:54,280 --> 00:01:56,260 bueno, pues JaxB trata de 41 00:01:56,260 --> 00:01:57,719 y consigue 42 00:01:57,719 --> 00:01:59,060 lógicamente 43 00:01:59,060 --> 00:02:01,879 ocultar ese salto y convierte 44 00:02:01,879 --> 00:02:03,859 el XML de nuevo 45 00:02:03,859 --> 00:02:06,420 en un modelo de negocio de entidades normal y corriente 46 00:02:06,420 --> 00:02:07,819 y es muy natural 47 00:02:07,819 --> 00:02:08,900 muy natural 48 00:02:08,900 --> 00:02:12,340 en realidad que así sea, porque cuando tenemos por ejemplo 49 00:02:12,340 --> 00:02:16,710 un XML normal 50 00:02:16,710 --> 00:02:31,819 que podría ser algo como esto, alumno, pues nombre, nota, aquí muchos alumnos, aquí se acaba el nodo de ahí, 51 00:02:34,080 --> 00:02:42,159 esto lo podemos mapear en nuestra cabeza de forma bastante intuitiva a un modelo de negocio 52 00:02:42,159 --> 00:02:51,810 donde yo tengo una clase alumnos y esta clase alumnos se contiene, pues esta clase alumnos contiene 53 00:02:51,810 --> 00:02:53,469 una colección 54 00:02:53,469 --> 00:02:55,990 de alumno 55 00:02:55,990 --> 00:03:01,389 y nada más 56 00:03:01,389 --> 00:03:03,710 y luego tendría la clase alumno 57 00:03:03,710 --> 00:03:08,129 que a su vez 58 00:03:08,129 --> 00:03:10,590 contiene una propiedad 59 00:03:10,590 --> 00:03:12,669 nombre y una propiedad 60 00:03:12,669 --> 00:03:14,090 nota ¿vale? 61 00:03:14,210 --> 00:03:16,590 entonces una estructura jerárquica 62 00:03:16,590 --> 00:03:18,469 se puede mapear 63 00:03:18,469 --> 00:03:20,050 a una estructura de 64 00:03:20,050 --> 00:03:21,409 entidades y de clases 65 00:03:21,409 --> 00:03:23,509 entonces JaxB 66 00:03:23,509 --> 00:03:26,449 lo que está organizado 67 00:03:26,449 --> 00:03:27,530 de tal manera que tú 68 00:03:27,530 --> 00:03:30,409 haces la estructura de clases 69 00:03:30,409 --> 00:03:32,270 que representa, que se corresponde 70 00:03:32,270 --> 00:03:34,150 exactamente con el XML 71 00:03:34,150 --> 00:03:36,409 y una vez que ya la tienes hecha 72 00:03:36,409 --> 00:03:37,889 ya te olvidas del XML 73 00:03:37,889 --> 00:03:40,370 y de su árbol y de su jerarquía completamente 74 00:03:40,370 --> 00:03:42,289 y simplemente trabajas con estas 75 00:03:42,289 --> 00:03:44,090 entidades, poniendo 76 00:03:44,090 --> 00:03:45,990 las propiedades que sean, cambiándolas 77 00:03:45,990 --> 00:03:47,509 añadiendolas, lo que haga falta 78 00:03:47,509 --> 00:03:49,449 y en el momento en el que tú quieras 79 00:03:49,449 --> 00:03:50,590 haces ya 80 00:03:50,590 --> 00:03:53,330 la transferencia 81 00:03:53,330 --> 00:03:54,169 ¿vale? 82 00:03:54,169 --> 00:03:55,990 entonces 83 00:03:55,990 --> 00:03:58,650 la aplicación que trabaja 84 00:03:58,650 --> 00:04:00,409 haciendo acceso a datos con JSB 85 00:04:00,409 --> 00:04:02,750 hará una operación 86 00:04:02,750 --> 00:04:04,509 de unmarshal que se llama 87 00:04:04,509 --> 00:04:08,270 y esta operación de unmarshal 88 00:04:08,270 --> 00:04:10,449 es la que lleva del XML 89 00:04:10,449 --> 00:04:12,009 a los objetos 90 00:04:12,009 --> 00:04:15,610 y luego tú ya trabajas 91 00:04:15,610 --> 00:04:17,509 con los objetos haciendo lo que te da gana 92 00:04:17,509 --> 00:04:19,790 y cuando has terminado 93 00:04:19,790 --> 00:04:21,629 o quieres reflejarlo ya en el 94 00:04:21,629 --> 00:04:23,750 fichero, haces una operación de marshal 95 00:04:23,750 --> 00:04:25,250 que se llama 96 00:04:25,250 --> 00:04:27,290 y esta ya lleva de los objetos 97 00:04:27,290 --> 00:04:28,050 al XML 98 00:04:28,050 --> 00:04:33,459 de nuevo, todo esto 99 00:04:33,459 --> 00:04:35,600 está cargado en una lista 100 00:04:35,600 --> 00:04:37,459 de objetos, o sea, todo el XML 101 00:04:37,459 --> 00:04:38,879 va a estar en memoria en realidad 102 00:04:38,879 --> 00:04:40,959 pero ahora no va a estar en memoria 103 00:04:40,959 --> 00:04:43,540 no va a estar en memoria en una 104 00:04:43,540 --> 00:04:45,199 variable document DOM 105 00:04:45,199 --> 00:04:47,279 que pesará lo que pesa, ahora va a estar en memoria 106 00:04:47,279 --> 00:04:49,420 pero en objetos que forman parte de tu 107 00:04:49,420 --> 00:04:51,100 aplicación y objetos que tú estás usando 108 00:04:51,100 --> 00:04:53,079 entonces no pasa nada porque estén en memoria 109 00:04:53,079 --> 00:04:55,439 porque son los objetos de tu aplicación con los que haces cosas 110 00:04:55,439 --> 00:04:57,899 vale, no necesitas 111 00:04:57,899 --> 00:04:59,920 toda esa variable document 112 00:04:59,920 --> 00:05:02,360 solo para hacer la parte de acceso 113 00:05:02,360 --> 00:05:03,000 a xml 114 00:05:03,000 --> 00:05:05,480 esto la idea es integrarlo 115 00:05:05,480 --> 00:05:08,199 con mi modelo de clases 116 00:05:08,199 --> 00:05:09,620 entonces tienes tu aplicación 117 00:05:09,620 --> 00:05:12,399 que tiene tus clases, con todas tus cosas 118 00:05:12,399 --> 00:05:14,360 y luego 119 00:05:14,360 --> 00:05:14,939 además 120 00:05:14,939 --> 00:05:17,439 quieres que 121 00:05:17,439 --> 00:05:19,779 en los momentos correspondientes 122 00:05:19,779 --> 00:05:22,180 todo lo que hay ahí se refleja en un xml 123 00:05:22,180 --> 00:05:24,480 pues entonces lo único que tienes que hacer 124 00:05:24,480 --> 00:05:26,399 lo único que tienes que incorporar a la aplicación 125 00:05:26,399 --> 00:05:28,180 es unas pequeñas 126 00:05:28,180 --> 00:05:29,160 anotaciones 127 00:05:29,160 --> 00:05:32,420 para indicar estas clases 128 00:05:32,420 --> 00:05:34,680 mías con las que yo trabajo y hago mis cosas 129 00:05:34,680 --> 00:05:36,560 además cuando yo quiera 130 00:05:36,560 --> 00:05:38,519 se van a conectar con un XML 131 00:05:38,519 --> 00:05:40,759 ¿vale? esas anotaciones 132 00:05:40,759 --> 00:05:42,399 que es lo único 133 00:05:42,399 --> 00:05:44,300 que yo tengo que añadir, esas anotaciones 134 00:05:44,300 --> 00:05:46,199 convierten a estas clases 135 00:05:46,199 --> 00:05:48,480 en mapeables a un XML 136 00:05:48,480 --> 00:05:50,180 no tengo que añadir nada 137 00:05:50,180 --> 00:05:52,139 adicional, ni un document, ni nada 138 00:05:52,139 --> 00:05:54,160 y luego yo cuando ya quiera hacer 139 00:05:54,160 --> 00:05:57,519 ese mapeo, bien sea hacia allá para cargar los datos 140 00:05:57,519 --> 00:06:02,120 o bien sea hacia acá para reflejarlo, pues lo hago con un método 141 00:06:02,120 --> 00:06:06,259 Marshall a Marshall y ya está. Pues este es el funcionamiento 142 00:06:06,259 --> 00:06:10,079 de JASB. Luego, la única complejidad que tiene 143 00:06:10,079 --> 00:06:14,060 es saber qué anotaciones tengo que poner 144 00:06:14,060 --> 00:06:17,879 para que estas clases reflejen este XML y ya está. 145 00:06:18,500 --> 00:06:21,920 Pero anotaciones, pues bueno, JASB tiene unas cuantas, pero al final 146 00:06:21,920 --> 00:06:24,759 las que acabas usando son 5, 6 o 7 como mucho 147 00:06:24,759 --> 00:06:26,379 que son las que te dicen 148 00:06:26,379 --> 00:06:27,920 esta clase es mi nodo raíz 149 00:06:27,920 --> 00:06:33,699 este es un nodo elemento 150 00:06:33,699 --> 00:06:35,879 este 4 o 5 anotaciones y ya está 151 00:06:35,879 --> 00:06:38,139 nada más, ahora las veremos 152 00:06:38,139 --> 00:06:42,680 entonces esto en origen 153 00:06:42,680 --> 00:06:46,500 estaba incorporado en todo el JDK 154 00:06:46,500 --> 00:06:50,279 cuando Java era todo Java enterito 155 00:06:50,279 --> 00:06:51,300 Enterito, enterito 156 00:06:51,300 --> 00:06:53,600 Era de Oracle, todo entero 157 00:06:53,600 --> 00:06:55,240 Pues 158 00:06:55,240 --> 00:06:59,920 Hasta el 2017 creo 159 00:06:59,920 --> 00:07:00,300 Por ahí 160 00:07:00,300 --> 00:07:03,220 Ahora ha cedido de parte 161 00:07:03,220 --> 00:07:05,240 Era de Oracle 162 00:07:05,240 --> 00:07:07,399 Pues todas las tecnologías 163 00:07:07,399 --> 00:07:12,360 Asociadas a aplicaciones empresariales 164 00:07:12,360 --> 00:07:14,139 Como esta de JaxB 165 00:07:14,139 --> 00:07:15,980 Como la de los 166 00:07:15,980 --> 00:07:17,879 Enterprise Java Beams 167 00:07:17,879 --> 00:07:19,259 Como todo lo del JPA 168 00:07:19,259 --> 00:07:25,379 que también lo veremos este año, todas las tecnologías asociadas a aplicaciones ya empresariales 169 00:07:25,379 --> 00:07:31,420 con una arquitectura más compleja, todas esas tecnologías estaban incluidas dentro de lo que se llamaba 170 00:07:31,420 --> 00:07:38,920 el Java Enterprise Edition, entonces Java Enterprise Edition era la parte de Java 171 00:07:38,920 --> 00:07:45,959 que incorporaba esas tecnologías más avanzadas, más específicas, aplicaciones que hacían ya acceso a datos 172 00:07:45,959 --> 00:07:48,180 que tenían patrones más complejos 173 00:07:48,180 --> 00:07:49,740 entonces en el 174 00:07:49,740 --> 00:07:51,139 2017, entonces Jax B 175 00:07:51,139 --> 00:07:52,720 era una de esas 176 00:07:52,720 --> 00:07:56,100 y venía 177 00:07:56,100 --> 00:07:57,379 dentro del JDK 178 00:07:57,379 --> 00:07:59,800 y no había que incorporar ninguna 179 00:07:59,800 --> 00:08:01,079 dependencia, ninguna 180 00:08:01,079 --> 00:08:04,240 entonces en el 2017 181 00:08:04,240 --> 00:08:05,680 más o menos, no lo sé 182 00:08:05,680 --> 00:08:07,000 podríamos buscarlo, da igual 183 00:08:07,000 --> 00:08:08,920 en algún momento 184 00:08:08,920 --> 00:08:11,519 después de que vosotros nacierais 185 00:08:11,519 --> 00:08:13,879 eh, verdad que sí, ¿no? 186 00:08:13,879 --> 00:08:14,779 sí 187 00:08:14,779 --> 00:08:19,199 Sí, aquí el más joven de vosotros 188 00:08:19,199 --> 00:08:20,959 que será del 2006, supongo, ¿no? 189 00:08:22,079 --> 00:08:23,279 El 2006 eres tú. 190 00:08:23,980 --> 00:08:25,680 Pues eso, joe, tú eres casi como mi hija. 191 00:08:25,920 --> 00:08:26,540 Dios, qué triste. 192 00:08:27,399 --> 00:08:27,920 ¿Por qué? 193 00:08:31,720 --> 00:08:32,159 Bueno. 194 00:08:32,639 --> 00:08:33,559 Es del 2007. 195 00:08:34,700 --> 00:08:35,899 No, del 2008. 196 00:08:38,379 --> 00:08:40,539 Vale, pues aproximadamente por ahí, 197 00:08:40,659 --> 00:08:42,700 en el 2017, cedió 198 00:08:42,700 --> 00:08:44,659 estas tecnologías 199 00:08:44,659 --> 00:08:46,279 Yo creo que ahora a Cleia le daba pereza 200 00:08:46,279 --> 00:08:47,759 Ya tiene demasiados frentes 201 00:08:47,759 --> 00:08:49,399 Y tampoco le daba tanta pasta 202 00:08:49,399 --> 00:08:52,000 Pues te dio esto 203 00:08:52,000 --> 00:08:52,700 ¿A quién? 204 00:08:53,980 --> 00:08:55,360 A este que tanto queremos 205 00:08:55,360 --> 00:08:58,559 A la Fundación Eclipse 206 00:08:58,559 --> 00:09:00,779 Que aparte del entorno de desarrollo 207 00:09:00,779 --> 00:09:02,480 Que todos sabemos 208 00:09:02,480 --> 00:09:04,279 El maravilloso éxito que ha tenido 209 00:09:04,279 --> 00:09:05,720 Pues la Fundación Eclipse 210 00:09:05,720 --> 00:09:06,620 Bueno, ¿qué? 211 00:09:08,059 --> 00:09:10,019 ¿Qué tienes que decir en contra de él? 212 00:09:10,440 --> 00:09:11,159 No me gusta mucho 213 00:09:11,159 --> 00:09:12,539 Bueno, pues 214 00:09:12,539 --> 00:09:15,240 Es el más extendido, sí 215 00:09:15,240 --> 00:09:17,759 Acabó con NetBeans o prácticamente acabó 216 00:09:17,759 --> 00:09:19,200 Intel IE está ahí, vale 217 00:09:19,200 --> 00:09:21,279 Pero no acaba de sacarlo del mercado tampoco 218 00:09:21,279 --> 00:09:25,899 Bueno, pues a la fundación Eclipse esta 219 00:09:25,899 --> 00:09:27,919 El mérito que tiene 220 00:09:27,919 --> 00:09:29,740 Es que aparte del entorno de desarrollo 221 00:09:29,740 --> 00:09:30,500 Que conocemos 222 00:09:30,500 --> 00:09:33,840 Incorpora una comunidad maravillosa y gigante 223 00:09:33,840 --> 00:09:35,360 De desarrolladores 224 00:09:35,360 --> 00:09:37,620 Y lo que ofrece es libre 225 00:09:37,620 --> 00:09:39,179 ¿Vale? Entonces esa parte 226 00:09:39,179 --> 00:09:42,259 Pues se ofrece dentro de toda esa comunidad libre 227 00:09:42,259 --> 00:09:45,220 y se sigue desarrollando 228 00:09:45,220 --> 00:09:47,059 y se sigue desarrollando 229 00:09:47,059 --> 00:09:49,059 pero ¿cuál es el problema? que exclusivamente 230 00:09:49,059 --> 00:09:51,200 por cuestiones de copyright y todas 231 00:09:51,200 --> 00:09:53,259 esas cosas, pues ha tenido 232 00:09:53,259 --> 00:09:54,139 que cambiar de nombre 233 00:09:54,139 --> 00:09:57,399 entonces, ahora se llama 234 00:09:57,399 --> 00:09:59,279 todas estas tecnologías 235 00:09:59,279 --> 00:10:01,519 de Java Enterprise Edition 236 00:10:01,519 --> 00:10:02,679 que ahora 237 00:10:02,679 --> 00:10:04,159 las tiene 238 00:10:04,159 --> 00:10:07,139 que ahora 239 00:10:07,139 --> 00:10:10,539 las tiene 240 00:10:10,539 --> 00:10:10,960 Eclipse 241 00:10:10,960 --> 00:10:13,779 Puedes hacer una nueva página 242 00:10:13,779 --> 00:10:16,019 No, no, no, pero es que quiero 243 00:10:16,019 --> 00:10:17,139 Quería borrar 244 00:10:17,139 --> 00:10:20,659 Puedes borrar con el otro método 245 00:10:20,659 --> 00:10:22,820 Lo veas 246 00:10:22,820 --> 00:10:24,620 Y borras lo que tú quieras 247 00:10:24,620 --> 00:10:26,320 ¿Ese cuál es? ¿Este? 248 00:10:26,519 --> 00:10:26,720 Este 249 00:10:26,720 --> 00:10:32,909 Vale, pues 250 00:10:32,909 --> 00:10:34,809 Por temas de copyright 251 00:10:34,809 --> 00:10:35,529 Cuestiones 252 00:10:35,529 --> 00:10:37,950 De 253 00:10:37,950 --> 00:10:41,070 Cuestiones técnicas 254 00:10:41,070 --> 00:10:43,610 Administrativas, no técnicas de Java 255 00:10:43,610 --> 00:10:46,269 lo que sí que hubo que hacer es cambiarlo de nombre 256 00:10:46,269 --> 00:10:48,409 entonces, ahora ya 257 00:10:48,409 --> 00:10:50,009 se llama Yakarta 258 00:10:50,009 --> 00:10:52,250 Yakarta 259 00:10:52,250 --> 00:10:53,830 Enterprise Edition 260 00:10:53,830 --> 00:10:56,190 ¿por qué? pues no lo sé 261 00:10:56,190 --> 00:10:57,330 Yakarta es una isla, ¿no? 262 00:10:58,970 --> 00:11:00,629 claro, pues que es lo más parecido 263 00:11:00,629 --> 00:11:02,230 a la isla de Java, pues la isla de Yakarta 264 00:11:02,230 --> 00:11:04,710 supongo, la verdad es que nunca lo había pensado 265 00:11:04,710 --> 00:11:05,769 pero imagino que vendrá por ahí 266 00:11:05,769 --> 00:11:06,850 es la capital de Indonesia 267 00:11:06,850 --> 00:11:08,990 ¿eh? 268 00:11:10,250 --> 00:11:12,350 claro, y el nombre actual de la isla de Java 269 00:11:12,350 --> 00:11:12,809 ¿cuál es? 270 00:11:13,610 --> 00:11:16,409 ¿Ha cambiado? 271 00:11:16,909 --> 00:11:18,950 Sí, la isla de Java como tal ya no existe 272 00:11:18,950 --> 00:11:21,149 La isla de Java 273 00:11:21,149 --> 00:11:22,250 es donde está Yacarta 274 00:11:22,250 --> 00:11:23,990 Ah 275 00:11:23,990 --> 00:11:26,169 Pues no ha cambiado 276 00:11:26,169 --> 00:11:29,370 Bueno, pues escogieron un nombre 277 00:11:29,370 --> 00:11:31,250 para no moverse demasiado de la zona 278 00:11:31,250 --> 00:11:32,210 Vale 279 00:11:32,210 --> 00:11:35,169 No, al contrario 280 00:11:35,169 --> 00:11:37,350 para facilitar las cosas a los desarrolladores 281 00:11:37,350 --> 00:11:38,610 Entonces 282 00:11:38,610 --> 00:11:40,990 ¿Eso qué implicaciones tiene? 283 00:11:42,049 --> 00:11:43,090 Pues que si uno está 284 00:11:43,090 --> 00:11:45,850 en la versión 1.8 285 00:11:45,850 --> 00:11:47,590 o anterior, que esté en la anterior 286 00:11:47,590 --> 00:11:49,710 es difícil, que esté en la versión 287 00:11:49,710 --> 00:11:51,789 1.8 es muy 288 00:11:51,789 --> 00:11:53,690 habitual en un contexto 289 00:11:53,690 --> 00:11:55,710 de aplicaciones empresariales, es relativamente 290 00:11:55,710 --> 00:11:57,950 habitual, pues si uno está en la 1.8 291 00:11:57,950 --> 00:11:59,870 sigue usando 292 00:11:59,870 --> 00:12:01,330 Java Enterprise Edition 293 00:12:01,330 --> 00:12:02,629 y eso que implica 294 00:12:02,629 --> 00:12:05,110 que todas las dependencias 295 00:12:05,110 --> 00:12:07,409 asociadas a 296 00:12:07,409 --> 00:12:09,769 frameworks de estas tecnologías 297 00:12:09,769 --> 00:12:11,190 empiezan con 298 00:12:11,190 --> 00:12:13,730 los paquetes empiezan con JavaX 299 00:12:13,730 --> 00:12:14,490 bla bla bla 300 00:12:14,490 --> 00:12:17,789 entonces el nombre de JavaX de hecho nos suena mucho por 301 00:12:17,789 --> 00:12:19,889 swing ¿verdad? las dependencias de swing 302 00:12:19,889 --> 00:12:21,029 empezaban por JavaX 303 00:12:21,029 --> 00:12:23,970 pues JavaX es el prefijo 304 00:12:23,970 --> 00:12:24,509 común 305 00:12:24,509 --> 00:12:27,789 de todas las dependencias, de todas las 306 00:12:27,789 --> 00:12:29,529 tecnologías de Java Enterprise Edition 307 00:12:29,529 --> 00:12:31,590 al cambiar a 308 00:12:31,590 --> 00:12:33,490 ya carta pues hay que cambiar los 309 00:12:33,490 --> 00:12:35,909 nombrecitos pero lo que hay debajo 310 00:12:35,909 --> 00:12:37,610 es lo mismo, salvo las 311 00:12:37,610 --> 00:12:39,649 actualizaciones que van llegando que al final acaban 312 00:12:39,649 --> 00:12:40,629 desmoronando la aplicación 313 00:12:40,629 --> 00:12:44,690 Pues ahora, si está uno por detrás del 1.8 314 00:12:44,690 --> 00:12:46,049 Pasan dos cosas 315 00:12:46,049 --> 00:12:50,049 Primera, que muchas tecnologías ya han salido de la distribución 316 00:12:50,049 --> 00:12:52,649 Luego hay que ponerlas como dependencia externa 317 00:12:52,649 --> 00:12:57,710 Antes de 1.8, Java, JaxB y muchas otras ya estaban incluidas 318 00:12:57,710 --> 00:12:59,009 No necesitábamos dependencia y nada 319 00:12:59,009 --> 00:13:01,450 Prefijo JavaX para los paquetes y ya está 320 00:13:01,450 --> 00:13:04,730 Del 1.8 en adelante se han ido sacando 321 00:13:04,730 --> 00:13:08,850 Entre ellas JaxB, hay que incorporarla ya como dependencia externa 322 00:13:08,850 --> 00:13:22,169 Y además el prefijo común para todas las dependencias que se refieren a estas tecnologías de aplicaciones empresariales ahora es jajacarta, no, jacarta. 323 00:13:22,169 --> 00:13:28,620 entonces, lo digo porque 324 00:13:28,620 --> 00:13:31,639 bueno, para que os vaya sonando, porque hay mucha confusión 325 00:13:31,639 --> 00:13:34,940 entre JavaX, Yakarta, uno a veces ve aplicaciones 326 00:13:34,940 --> 00:13:37,899 y tiene algunas dependencias de JavaX 327 00:13:37,899 --> 00:13:39,120 otras de Yakarta, porque 328 00:13:39,120 --> 00:13:43,559 hay mucho desmadre y mucha confusión mental 329 00:13:43,559 --> 00:13:46,419 incluso en las empresas 330 00:13:46,419 --> 00:13:49,440 y en desarrolladores y en cosas que veo yo por internet 331 00:13:49,440 --> 00:13:50,980 hay mucha confusión mental entre ellos 332 00:13:50,980 --> 00:13:53,440 Bueno, pues que os quede claro a vosotros 333 00:13:53,440 --> 00:13:54,259 Que es cada cosa 334 00:13:54,259 --> 00:13:57,419 Entonces, nosotros 335 00:13:57,419 --> 00:13:59,340 Pues lógicamente deberíamos desarrollar 336 00:13:59,340 --> 00:14:01,019 En versiones posteriores a la 1.8 337 00:14:01,019 --> 00:14:03,059 Aunque a lo mejor si llegáis a una empresa 338 00:14:03,059 --> 00:14:04,299 Tengáis que ir aquí atrás 339 00:14:04,299 --> 00:14:07,600 Y entonces por eso vamos a trabajar 340 00:14:07,600 --> 00:14:09,519 Con dependencias 341 00:14:09,519 --> 00:14:11,019 Que habrá que incorporar desde fuera 342 00:14:11,019 --> 00:14:12,460 Porque ya no están en la jdk 343 00:14:12,460 --> 00:14:13,860 Y encima este 344 00:14:13,860 --> 00:14:16,820 Eso que acabo de quitar 345 00:14:16,820 --> 00:14:18,340 Va a ser 346 00:14:18,340 --> 00:14:22,220 el prefijo común de todas las 347 00:14:22,220 --> 00:14:23,059 tecnologías que 348 00:14:23,059 --> 00:14:26,159 incorporemos, entonces cuando 349 00:14:26,159 --> 00:14:28,000 uno busca el repositorio de maven, claro 350 00:14:28,000 --> 00:14:29,879 maven te ofrece mil cosas, pues algunas serán 351 00:14:29,879 --> 00:14:32,139 ya carta, java, x, pues os situáis rápidamente 352 00:14:32,139 --> 00:14:33,340 a que se refiere cada cosa 353 00:14:33,340 --> 00:14:35,820 ¿vale? bueno 354 00:14:35,820 --> 00:14:38,039 después de este rollo 355 00:14:38,039 --> 00:14:41,919 vamos entonces 356 00:14:41,919 --> 00:14:43,899 a probar con 357 00:14:43,899 --> 00:14:46,019 un xml, a este le he dicho 358 00:14:46,019 --> 00:14:47,980 hgpt que sea original y me ha dado 359 00:14:47,980 --> 00:14:49,700 un xml con recetas de cocina 360 00:14:49,700 --> 00:14:50,899 entonces 361 00:14:50,899 --> 00:14:54,019 lo voy a subir a la virtual para que 362 00:14:54,019 --> 00:14:55,820 lo descarguéis y lo uséis vosotros también 363 00:14:55,820 --> 00:14:58,279 ahora como aplicación 364 00:14:58,279 --> 00:15:00,080 de ejemplo, que vamos a hacer 365 00:15:00,080 --> 00:15:01,279 y 366 00:15:01,279 --> 00:15:04,980 y ya está 367 00:15:04,980 --> 00:15:38,080 vale, a ver bueno 368 00:15:38,080 --> 00:15:40,059 vamos a parar aquí mientras 369 00:15:40,059 --> 00:15:41,879 sin grabar, vale 370 00:15:41,879 --> 00:15:44,159 bueno pues aquí tengo el proyecto, he cambiado a máquina 371 00:15:44,159 --> 00:15:45,080 virtual 372 00:15:45,080 --> 00:15:48,000 voy a abrirlo desde aquí 373 00:15:48,000 --> 00:15:50,299 para tenerlo aquí visualizado ese archivo 374 00:15:50,299 --> 00:15:54,580 siempre, entonces voy a abrirlo desde aquí 375 00:15:54,580 --> 00:16:04,019 vale, pues este es mi fichero xml 376 00:16:04,019 --> 00:16:07,860 lo he abierto desde el editor de texto del eclipse, aunque no está 377 00:16:07,860 --> 00:16:14,440 dentro del workspace, está, bueno 378 00:16:14,440 --> 00:16:18,460 si está dentro del workspace, no mezclemos conceptos 379 00:16:18,460 --> 00:16:21,899 o sea, el workspace no es la carpeta 380 00:16:21,899 --> 00:16:25,480 el workspace es una serie de referencias que hay aquí 381 00:16:25,480 --> 00:16:28,399 pero cada uno de estos puestos en una carpeta distinta 382 00:16:28,399 --> 00:16:29,919 y de hecho 383 00:16:29,919 --> 00:16:31,919 recetario 384 00:16:31,919 --> 00:16:33,419 me habrá 385 00:16:33,419 --> 00:16:39,149 vale 386 00:16:39,149 --> 00:16:41,389 entonces estos proyectos 387 00:16:41,389 --> 00:16:43,129 podrían estar en otra carpeta 388 00:16:43,129 --> 00:16:45,450 diferente a la carpeta por defecto 389 00:16:45,450 --> 00:16:46,370 asociada al workspace 390 00:16:46,370 --> 00:16:51,210 lo he abierto 391 00:16:51,210 --> 00:16:52,169 me he limitado a abrirlo 392 00:16:52,169 --> 00:16:53,870 esto es un editor de texto más 393 00:16:53,870 --> 00:16:54,769 como cualquier otro editor 394 00:16:54,769 --> 00:16:56,309 pues lo puedo usar como editor 395 00:16:56,309 --> 00:16:57,970 y le he dado a abrir 396 00:16:57,970 --> 00:16:59,649 Y lo he buscado por aquí 397 00:16:59,649 --> 00:17:02,090 ¿Vale? Entonces lo tengo aquí abierto 398 00:17:02,090 --> 00:17:03,309 Aunque no me aparece aquí 399 00:17:03,309 --> 00:17:04,369 ¿Vale? 400 00:17:05,470 --> 00:17:07,390 Aquí no lo tengo, claro 401 00:17:07,390 --> 00:17:10,009 Pero está abierto en este editor de texto 402 00:17:10,009 --> 00:17:10,549 Del Eclipse 403 00:17:10,549 --> 00:17:13,609 Para ver las modificaciones que haga y lo que sea 404 00:17:13,609 --> 00:17:14,970 ¿Vale? 405 00:17:18,000 --> 00:17:20,619 Venga, pues vamos a hacer el modelo 406 00:17:20,619 --> 00:17:21,380 De datos 407 00:17:21,380 --> 00:17:23,819 Asociado a estas 408 00:17:23,819 --> 00:17:28,640 A esta 409 00:17:28,640 --> 00:17:30,200 A este XML de aquí 410 00:17:30,200 --> 00:17:32,380 Entonces lo que pasa es que, claro, se ve ahí tan grande 411 00:17:32,380 --> 00:17:35,480 Vemos que hay una clase recetario 412 00:17:35,480 --> 00:17:37,880 Vamos a hacer primero un vistazo por encima 413 00:17:37,880 --> 00:17:39,980 Tendrá una propiedad autor 414 00:17:39,980 --> 00:17:42,319 Esa propiedad autor ya será un string 415 00:17:42,319 --> 00:17:43,579 Directamente 416 00:17:43,579 --> 00:17:45,279 Pero luego tendrá ¿qué? 417 00:17:45,460 --> 00:17:47,000 Pues una colección de recetas 418 00:17:47,000 --> 00:17:48,339 Tiene un montón de recetas 419 00:17:48,339 --> 00:17:50,180 ¿Vale? 420 00:17:51,380 --> 00:17:53,160 Receta a su vez será una clase 421 00:17:53,160 --> 00:17:55,759 Porque receta tiene dentro propiedades 422 00:17:55,759 --> 00:17:57,000 Tiene una propiedad string 423 00:17:57,000 --> 00:18:00,299 Y a su vez tiene una colección de ingredientes 424 00:18:00,299 --> 00:18:02,019 E ingredientes también será una clase 425 00:18:02,019 --> 00:18:04,319 Porque ingredientes tiene dentro propiedades 426 00:18:04,319 --> 00:18:06,660 Luego he mencionado así de pasada 427 00:18:06,660 --> 00:18:09,119 Creo que cuatro clases 428 00:18:09,119 --> 00:18:10,519 La clase recetario 429 00:18:10,519 --> 00:18:13,319 La clase receta 430 00:18:13,319 --> 00:18:14,720 Tres 431 00:18:14,720 --> 00:18:17,519 Y la clase ingrediente 432 00:18:17,519 --> 00:18:19,579 Tres clases 433 00:18:19,579 --> 00:18:20,799 Van a mapear esto 434 00:18:20,799 --> 00:18:22,640 Vamos a ir haciéndolas y luego vamos a ir viendo 435 00:18:22,640 --> 00:18:24,660 Como con las anotaciones podemos conectar 436 00:18:24,660 --> 00:18:25,759 Donde va cada una, etc 437 00:18:25,759 --> 00:18:27,940 Vale 438 00:18:27,940 --> 00:18:30,799 Pues nos vamos a hacer 439 00:18:30,799 --> 00:18:31,660 Nuestro paquete 440 00:18:31,660 --> 00:18:34,859 Esto si lo hiciéramos bien 441 00:18:34,859 --> 00:18:36,640 El nombre de nuestro paquete 442 00:18:36,640 --> 00:18:37,539 Tendría que 443 00:18:37,539 --> 00:18:40,779 Estar en coherencia con el identificador 444 00:18:40,779 --> 00:18:41,960 Este del grupo del proyecto 445 00:18:41,960 --> 00:18:44,180 No es que sea obligatorio, no es una restricción 446 00:18:44,180 --> 00:18:46,599 Pero bueno 447 00:18:46,599 --> 00:18:50,819 Esto sería lo normal, lo que nos encontraríamos 448 00:18:50,819 --> 00:18:54,460 Vale, pues yo tengo aquí mi paquete con el modelo 449 00:18:54,460 --> 00:18:56,180 Con el prefijo 450 00:18:56,180 --> 00:18:58,819 Común para todos los paquetes de la empresa 451 00:18:58,819 --> 00:19:01,240 Y ya está 452 00:19:01,240 --> 00:19:08,119 Y ahora, aquí voy a tener mi clase recetario. 453 00:19:15,460 --> 00:19:20,359 Vale, la clase recetario tiene dentro una propiedad autor. 454 00:19:20,799 --> 00:19:23,240 Pero esto ya es directamente una propiedad string. 455 00:19:23,680 --> 00:19:26,119 Porque no tiene más elementos dentro metido. 456 00:19:26,220 --> 00:19:27,319 No tiene más elementos dentro. 457 00:19:27,619 --> 00:19:28,920 Tiene solamente un string. 458 00:19:29,500 --> 00:19:32,759 Luego, autor lo puedo poner como propiedad string sin más. 459 00:19:39,029 --> 00:19:41,190 Podríamos poner el modificador privado. 460 00:19:41,190 --> 00:19:43,029 Porque luego vamos a hacer los getter y setter. 461 00:19:44,130 --> 00:19:44,630 Da igual. 462 00:19:45,670 --> 00:19:46,150 Vale. 463 00:19:47,009 --> 00:19:48,730 Ahora, ¿qué más tiene recetario? 464 00:19:49,650 --> 00:19:53,950 Tiene, ahora ya sí, un montón de cosas de estas, que son recetas. 465 00:19:55,789 --> 00:19:56,269 ¿Vale? 466 00:19:56,490 --> 00:20:02,069 Aquí me aparece solo uno en el ejemplo, pero podría tener más, porque de hecho está metido en un nodo recetas. 467 00:20:02,750 --> 00:20:05,349 Luego, receta puede tener muchas. 468 00:20:05,630 --> 00:20:07,869 Entonces va a tener una colección de cosas de estas. 469 00:20:08,390 --> 00:20:10,190 ¿Y cada cosa de estas qué va a ser? 470 00:20:10,190 --> 00:20:13,369 Pues a su vez un objeto, porque tiene un montón de cosas dentro. 471 00:20:14,230 --> 00:20:14,329 ¿Vale? 472 00:20:14,329 --> 00:20:18,069 Cada receta tiene muchas cosas dentro, desde su atributo hasta todo esto. 473 00:20:18,710 --> 00:20:20,650 Luego tendrá que haber una clase receta por ahí. 474 00:20:21,329 --> 00:20:27,589 Y recetario tendrá una colección de recetas. 475 00:20:37,910 --> 00:20:40,329 Entonces, la clase receta habrá que crearla. 476 00:20:43,240 --> 00:20:44,980 Ahora la creamos, la clase receta. 477 00:20:45,900 --> 00:20:48,200 ¿Vale? Por ahora vamos a completar esta con lo mínimo. 478 00:20:49,380 --> 00:20:50,119 Que será... 479 00:20:50,920 --> 00:20:53,519 Poner los get y set. 480 00:21:03,890 --> 00:21:05,210 Vale, vamos a poner lo mínimo. 481 00:21:05,210 --> 00:21:08,130 Y luego según vayamos ejecutando 482 00:21:08,130 --> 00:21:09,849 Pues igual vemos que nos dan errores 483 00:21:09,849 --> 00:21:11,170 Porque nos faltan cosas 484 00:21:11,170 --> 00:21:13,150 Pues lo vamos incorporando 485 00:21:13,150 --> 00:21:15,269 Y así nos vamos familiarizando 486 00:21:15,269 --> 00:21:16,890 Con la forma que tiene de trabajar Jasper 487 00:21:16,890 --> 00:21:19,250 Vale, receta 488 00:21:19,250 --> 00:21:21,690 ¿Receta que va a tener dentro? 489 00:21:22,210 --> 00:21:23,750 Pues receta tiene dentro 490 00:21:23,750 --> 00:21:25,710 Nombre de ingredientes 491 00:21:25,710 --> 00:21:26,569 Una cosa 492 00:21:26,569 --> 00:21:29,769 Dificultad que es una propiedad más de ellas 493 00:21:29,769 --> 00:21:31,710 Que es de tipo stream 494 00:21:31,710 --> 00:21:33,049 Dificultad fácil 495 00:21:33,049 --> 00:21:35,710 Pues venga, tendrá esto dentro 496 00:21:35,710 --> 00:21:38,289 Es decir, ¿qué la describe? 497 00:21:38,990 --> 00:21:39,990 La describe 498 00:21:39,990 --> 00:21:43,549 Una cosa que es 499 00:21:43,549 --> 00:21:44,769 Dificultad 500 00:21:44,769 --> 00:21:47,569 Que es un atributo, pero da igual 501 00:21:47,569 --> 00:21:49,309 La describe también a la receta 502 00:21:49,309 --> 00:21:51,670 ¿Qué más? La describe un nombre 503 00:21:51,670 --> 00:21:54,049 Un nombre que ya directamente es un string 504 00:21:54,049 --> 00:21:55,849 Pues venga 505 00:21:55,849 --> 00:21:58,230 String 506 00:21:58,230 --> 00:22:00,670 Nombre 507 00:22:00,670 --> 00:22:07,559 qué más describe a la receta 508 00:22:07,559 --> 00:22:09,480 pues un montón 509 00:22:09,480 --> 00:22:11,599 de cosas ingrediente 510 00:22:11,599 --> 00:22:13,240 y cada cosa ingrediente 511 00:22:13,240 --> 00:22:15,640 a su vez es un objeto porque tiene cosas dentro 512 00:22:15,640 --> 00:22:30,119 vale, pues entonces tendrá una lista 513 00:22:30,119 --> 00:22:31,500 de ingrediente 514 00:22:31,500 --> 00:22:43,019 ingredientes 515 00:22:43,019 --> 00:22:43,720 vale 516 00:22:43,720 --> 00:22:47,000 entonces ingrediente habrá que crearlo 517 00:22:47,000 --> 00:22:50,220 Ya lo crearemos 518 00:22:50,220 --> 00:22:53,400 Ya crearemos ingrediente 519 00:22:53,400 --> 00:22:56,980 Y por lo pronto vamos a terminar esta con lo básico 520 00:22:56,980 --> 00:23:03,109 Que lo básico en cualquier entidad de un modelo 521 00:23:03,109 --> 00:23:04,970 Son Getter y Setter por supuesto 522 00:23:04,970 --> 00:23:17,589 Y ahora nos falta ingrediente 523 00:23:17,589 --> 00:23:19,529 ¿Qué ingrediente? ¿Qué tiene dentro? 524 00:23:19,650 --> 00:23:21,569 Pues ingrediente tiene tres cosas 525 00:23:21,569 --> 00:23:24,730 Nombre, cantidad y unidad 526 00:23:24,730 --> 00:23:26,529 que esta podría ser un string 527 00:23:26,529 --> 00:23:28,849 esta puede ser 528 00:23:28,849 --> 00:23:30,609 un double, es un double 529 00:23:30,609 --> 00:23:32,990 y unidad pues un string 530 00:23:32,990 --> 00:23:34,630 también, pues venga 531 00:23:34,630 --> 00:23:36,470 entonces ingrediente va a tener dentro 532 00:23:36,470 --> 00:23:42,500 el nombre del ingrediente 533 00:23:42,500 --> 00:23:45,789 la cantidad 534 00:23:45,789 --> 00:23:46,710 se llamaba 535 00:23:46,710 --> 00:23:49,009 que hemos dicho que un double le pega 536 00:23:49,009 --> 00:23:53,339 y 537 00:23:53,339 --> 00:23:56,200 la unidad 538 00:23:56,200 --> 00:23:58,460 en la que está medida la cantidad 539 00:23:58,460 --> 00:24:02,069 que esto pues 540 00:24:02,069 --> 00:24:04,309 String unidad 541 00:24:04,309 --> 00:24:18,950 Vale, pues estas tres 542 00:24:18,950 --> 00:24:20,589 Clases, recetario 543 00:24:20,589 --> 00:24:23,410 Con su lista de recetas y el autor del recetario 544 00:24:23,410 --> 00:24:24,990 Receta con su 545 00:24:24,990 --> 00:24:27,410 Dificultad, su nombre y su lista de ingredientes 546 00:24:27,410 --> 00:24:28,809 E ingrediente 547 00:24:28,809 --> 00:24:30,690 Con sus tres propiedades 548 00:24:30,690 --> 00:24:32,529 Son exactamente 549 00:24:32,529 --> 00:24:34,750 Este recetario de aquí, lo mismo 550 00:24:34,750 --> 00:24:37,309 Ah, perdón, no lo he visto 551 00:24:37,309 --> 00:24:37,789 ¿Dónde está? 552 00:24:37,789 --> 00:24:39,950 Ah, que ingrediente 553 00:24:39,950 --> 00:24:41,170 Tiene un ID, vale 554 00:24:41,170 --> 00:24:44,150 Pues entonces al ingrediente le falta aquí 555 00:24:44,150 --> 00:24:46,880 Un ID 556 00:24:46,880 --> 00:24:49,920 Que se lo añadimos 557 00:24:49,920 --> 00:24:50,759 Como 558 00:24:50,759 --> 00:25:00,029 Me lo ha mezclado ahí en medio, da igual 559 00:25:00,029 --> 00:25:00,569 Vale 560 00:25:00,569 --> 00:25:02,730 Vale 561 00:25:02,730 --> 00:25:06,750 Entonces, JaxB ya sería capaz de 562 00:25:06,750 --> 00:25:07,789 Si yo creo 563 00:25:07,789 --> 00:25:10,309 Estoy trabajando con recetarios 564 00:25:10,309 --> 00:25:11,490 Recetas, tengo 565 00:25:11,490 --> 00:25:13,250 Pues lo he leído en una base de datos 566 00:25:13,250 --> 00:25:15,170 Lo he pedido por teclado, he modificado 567 00:25:15,170 --> 00:25:16,390 Ya sería capaz de 568 00:25:16,390 --> 00:25:19,569 Parsear esto al XML 569 00:25:19,569 --> 00:25:21,410 En el momento en el que yo decida 570 00:25:21,410 --> 00:25:23,970 Pues no, porque le faltan 571 00:25:23,970 --> 00:25:25,970 Le falta información 572 00:25:25,970 --> 00:25:28,049 Del tipo, oye, ¿y esto dónde va? 573 00:25:29,450 --> 00:25:30,390 ¿Esto cómo se llama? 574 00:25:30,589 --> 00:25:32,130 ¿Esto es un atributo o no es un atributo? 575 00:25:32,289 --> 00:25:33,930 ¿Esto va dentro de un nodo 576 00:25:33,930 --> 00:25:35,730 Que lo envuelve recetas o no? 577 00:25:35,730 --> 00:25:37,930 Le falta información para construirlo 578 00:25:37,930 --> 00:25:39,789 ¿Vale? Pues esa información 579 00:25:39,789 --> 00:25:41,809 La vamos a dar con anotaciones 580 00:25:41,809 --> 00:25:44,049 ¿Vale? Recordad que las anotaciones 581 00:25:44,049 --> 00:25:45,769 Eran esa cosa 582 00:25:45,769 --> 00:25:47,910 que ya hemos usado en situaciones básicas 583 00:25:47,910 --> 00:25:49,130 como para el overwrite 584 00:25:49,130 --> 00:25:51,089 para indicarse un método 585 00:25:51,089 --> 00:25:55,410 sobreescrible de la superclase 586 00:25:55,410 --> 00:25:59,910 y las anotaciones no son comentarios 587 00:25:59,910 --> 00:26:04,150 porque el compilador por supuesto las tiene en cuenta 588 00:26:04,150 --> 00:26:05,869 las anotaciones se corresponden a clases 589 00:26:05,869 --> 00:26:06,890 porque tienen mucha información 590 00:26:06,890 --> 00:26:09,769 entonces cuando el compilador ve una anotación 591 00:26:09,769 --> 00:26:12,250 tiene que mirar dentro de esa clase 592 00:26:12,250 --> 00:26:15,329 para ver si todo es coherente con el resto del código 593 00:26:15,329 --> 00:26:20,289 Entonces, anotaciones que va a necesitar JaxB 594 00:26:20,289 --> 00:26:22,670 Pues tiene unas cuantas, tiene muchas anotaciones 595 00:26:22,670 --> 00:26:25,730 Para hacer cosas muy sofisticadas con JaxB 596 00:26:25,730 --> 00:26:27,910 Pero lo básico, pues es 597 00:26:27,910 --> 00:26:30,069 Primera cosa que necesita saber 598 00:26:30,069 --> 00:26:33,470 ¿Cuál es la clase raíz? 599 00:26:33,690 --> 00:26:36,970 ¿Cuál es la raíz de cuál parto yo para construir mi XML? 600 00:26:37,910 --> 00:26:38,630 Recetario 601 00:26:38,630 --> 00:26:42,170 Pues entonces esta clase la tenemos que anotar 602 00:26:42,170 --> 00:26:44,710 con la anotación xml 603 00:26:44,710 --> 00:26:46,970 root element 604 00:26:46,970 --> 00:26:48,609 esta es básica 605 00:26:48,609 --> 00:26:49,650 vale 606 00:26:49,650 --> 00:26:52,190 tenemos que anotarla 607 00:26:52,190 --> 00:26:53,630 con esta anotación para decir 608 00:26:53,630 --> 00:26:56,349 esta es la clase raíz 609 00:26:56,349 --> 00:26:57,970 pero esta es una clase 610 00:26:57,970 --> 00:26:59,750 que no la encuentra 611 00:26:59,750 --> 00:27:02,349 vale, porque estoy en una versión 612 00:27:02,349 --> 00:27:04,509 la 21 en la cual ya 613 00:27:04,509 --> 00:27:06,650 se ha sacado 614 00:27:06,650 --> 00:27:08,589 la tecnología 615 00:27:08,589 --> 00:27:10,509 yaxbe, entonces la tengo que incorporar 616 00:27:10,509 --> 00:27:11,750 como dependencia externa 617 00:27:11,750 --> 00:27:14,710 Esto ya forma las anotaciones 618 00:27:14,710 --> 00:27:17,269 Junto con las clases que usemos ahora 619 00:27:17,269 --> 00:27:19,049 Para hacer el parseo 620 00:27:19,049 --> 00:27:20,549 Forman parte de JaxB 621 00:27:20,549 --> 00:27:22,890 Y están fuera ya del JDK 622 00:27:22,890 --> 00:27:25,109 Entonces tenemos que 623 00:27:25,109 --> 00:27:26,369 Incorporar la dependencia 624 00:27:26,369 --> 00:27:29,069 Pues nada, es que a nuestro POM este de aquí abajo 625 00:27:29,069 --> 00:27:31,109 Que lo tenemos ahí vacío 626 00:27:31,109 --> 00:27:31,849 Y olvidado 627 00:27:31,849 --> 00:27:33,450 Le faltan aquí 628 00:27:33,450 --> 00:27:36,069 Vamos a quitarle el rojito 629 00:27:36,069 --> 00:27:39,470 Poniéndole la S aquí 630 00:27:39,470 --> 00:27:42,450 Le quitamos el 631 00:27:42,450 --> 00:27:47,900 Ah, vale, decía con una guanita al rojo 632 00:27:47,900 --> 00:27:48,920 Que estaba mirando en otro sitio 633 00:27:48,920 --> 00:27:51,339 Vale, pues a este 634 00:27:51,339 --> 00:27:53,779 POM le faltan 635 00:27:53,779 --> 00:27:58,500 Le faltan aquí las dependencias 636 00:27:58,500 --> 00:27:59,119 De JaxB 637 00:27:59,119 --> 00:28:03,319 Entonces, sí 638 00:28:03,319 --> 00:28:05,559 Sí 639 00:28:05,559 --> 00:28:07,980 Entonces 640 00:28:07,980 --> 00:28:09,420 Como siempre 641 00:28:09,420 --> 00:28:11,000 Esto 642 00:28:11,000 --> 00:28:14,480 Los frameworks en general siempre se estructuran 643 00:28:14,480 --> 00:28:16,559 Una API y una implementación 644 00:28:16,559 --> 00:28:18,220 Esa como idea general 645 00:28:18,220 --> 00:28:19,740 Una API que tendrá 646 00:28:19,740 --> 00:28:21,880 Los métodos vacíos 647 00:28:21,880 --> 00:28:24,119 Y las anotaciones que especifican las cosas 648 00:28:24,119 --> 00:28:25,059 Y una implementación 649 00:28:25,059 --> 00:28:27,259 Pues aquí igual 650 00:28:27,259 --> 00:28:29,839 Vamos a por la dependencia y luego paramos un poco 651 00:28:29,839 --> 00:28:32,400 Nos vamos al 652 00:28:32,400 --> 00:28:35,779 Repositorio 653 00:28:35,779 --> 00:28:36,660 De Maven 654 00:28:36,660 --> 00:28:42,720 Bueno, venga, vamos a parar aquí 655 00:28:42,720 --> 00:28:44,359 No vaya a ser que nos estendamos buscando