Curso Spring. Java Annotations X. @PropertySource y @Value. Vídeo 25
Вставка
- Опубліковано 3 жов 2024
- Seguimos avanzando con las anotaciones. En este vídeo vemos @PropertySource y @Value. Estas anotaciones nos permitirán inyectar valores de propiedades desde un archivo externo.
Para más cursos, ejercicios y manuales visita: www.pildorasinformaticas.es
para hacer las importaciones de una forma más productiva podría utilizar el siguiente shortcut de Eclipse:
Ctrl + Shift + O
Este shortcut agrega todas las importaciones que hagan falta en la clase en cuestión
Gracias por sus aportaciones, saludos y abrazo desde México.
InstaBlaster.
Me puse al día! Saludos Juan muy agradecido por todos los conocimientos impartidos.
Vaya lio es el Spring al principio, menos mal que Juan explica muy bien pero aún así me estoy enterando de la mitad.
Ya estaba esperando el vídeo, gracias.
Sigo esperando el proximo, quiero seguir aprendiendo este framework de JavaEE
me encanto la clase, gracias por tomarte el tiempo de enseñarnos estoy aprendiendo bastante con tu canal.
Excelente 👍 👍 👍. Como siempre muy buena clase. Éxitos, saludos.
Geniales tus cursos de spring. Me los estoy viendo todo, porque me pidieron un apartado web para mi tesis y no tenía ni idea de spring !
Gran maestro, se agradece su gran conocimiento. Ya termine todo lo que tienes de este curso, intenta subir lo más rápido que puedas subir más contenido sobre esto :D. Gracias!!!
Gracias!!!
Muchas gracias profe
Para los que estén desarrollando el curso en Netbeans
deberán colocar el siguiente código el archivo que tienes de config para que no les imprima ${email} o ${nombreEmpresa}
@Bean
public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
return new PropertySourcesPlaceholderConfigurer();
}
Exitos a todos y gracias al Profe.
Estoy usando netbeans y a mi me funciono a la primera, sin necesidad de copiar ese metodo, que raro...
Muchas gracias, Luis Edurado. Yo estoy utilizando para el curso Spring Tool Suite y gracias a este código me imprime bien el valor de email y nombreEmpresa.
@@systemfailure2039 A mí si me funcionó.
Creo que es porque tenemos distintas versiones de NetBeans y a mí, al crear el archivo "datosEmpresa.propiedades", en vez de creármelo directamente en la carpeta "src", me crea un paquete llamado "" dentro de la carpeta "src".
Gracias por la ayuda.
Buen día, ojalá pronto podamos ver un curso contigo sobre Spring Boot, saludos desde México.
Hola profe genial por el curso, profe quería preguntarle si ha pensado dar un curso sobre spring boot ya que ahora en día esta teniendo mucha demanda
Hola !! Sí, claro que si. Espero verlo incluso en este curso. Un saludo!
Para aquellos que en NetBeans les imprima por pantalla "${email}" en vez del valor real, tiene que poner el siguiente código en la clase donde esté el bean @PropertySource:
@Bean
public static PropertySourcesPlaceholderConfigurer propertyConfigInDev() {
return new PropertySourcesPlaceholderConfigurer();
}
Gracias Juan por todo!
Hola, Te comento que no me funciona.
me imprime tal cual ${email}
Busca encontré los siguiente y me funciono:
el siguiente código de debe colocar tal cual en el archivo que tienes de config
@Bean
public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
return new PropertySourcesPlaceholderConfigurer();
}
Gracias Juan, como siempre, excelente su explicación, una pregunta, PropertySource es lo mismo que usar el objeto Environment? O existe diferencia?
Profesor, podria como explicar a su momento como subir una imagen a la base de datos por medio de input type=file, igual como lo hizo en el curso de PHP. Muchisimas gracias
Tomo nota de tu petición. Un saludo!
Omar no es recomendable guardar imágenes en la db, es mejor crear un directorio donde se guarde y en la db guardar la ruta donde está guardada. Recuerde que las imágenes son pesadas y esto le saturaría la db. Saludo
@@nowen2104 Iba a comentar exactamente lo mismo.
¿Y cómo se haría todo esto sin código Java? Me refiero utilizando el archivo XML y con Annotation.
Juan muy bueno, me sirve para mejorar mis conocimientos en spring.
Mira vengo de spring boot te iba a preguntar:
Ese bean existe porque lo definiste en la interfaz empleado y con la clase del contexto de las anotaciones poniendo de objetivo el director anduvo.
Es por eso?
Porque vengo de dar las anotaciones que darás después como service, etc y si pones la anotación en la interfaz a la hora de hacer un autowired no lo encuentra si no lo pones (a la anotación de tipo component) en la implementación.
Me podés explicar esta duda? Creo que ya me contesto solo
cuando utilizar el la clase .config no se necesitan de las annotations como @component o @autowired
Estoy en netbeans y me pone que el fichero datosEmpresa.propiedades no existe
Caused by: java.io.FileNotFoundException: class path resource [datosEmpresa.propiedades] cannot be opened because it does not exist
Estas anotaciones las veo más como una forma didáctica porque cuando se utiliza la base de datos no se utilizaría o estoy equivocado?
En aplicaciones grandes suele utilizarse mucho ese tipo de archivos, por ejemplo, es una buena práctica para establecer las credenciales de conexión a una base de datos en un archivo .properties, Saludos amigo
@@sergeog2276 pero para eso no está el application.yml que es donde se establecen todo ese tipo de propiedades?, ojo aclaro no quiero generar controversia ni nada de esas cosas por que conozco el trabajo de Juan y me imagino que en algún momento va hablar de ese tema y sino lo hace, igual es respetable. Saludos
@@nowen2104 Sirve bastante para más adelante cuando se tenga que realizar cualquier tipo de configuración en archivos .yml .properties.
No puedo correr lo de este video, me aparece el siguiente error
Aug 24, 2023 5:01:57 PM org.springframework.context.support.AbstractApplicationContext refresh
WARNING: Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [pruebasSpring.EmpleadosConfig]; nested exception is java.io.FileNotFoundException: class path resource [datosEmpresa.propiedades] cannot be opened because it does not exist
Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [pruebasSpring.EmpleadosConfig]; nested exception is java.io.FileNotFoundException: class path resource [datosEmpresa.propiedades] cannot be opened because it does not exist
at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:181)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:315)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:232)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:275)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:95)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:691)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:528)
at org.springframework.context.annotation.AnnotationConfigApplicationContext.(AnnotationConfigApplicationContext.java:88)
at pruebasSpring.UsoAnnotations2.main(UsoAnnotations2.java:15)
Caused by: java.io.FileNotFoundException: class path resource [datosEmpresa.propiedades] cannot be opened because it does not exist
at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:180)
at org.springframework.core.io.support.EncodedResource.getInputStream(EncodedResource.java:159)
at org.springframework.core.io.support.PropertiesLoaderUtils.fillProperties(PropertiesLoaderUtils.java:99)
at org.springframework.core.io.support.PropertiesLoaderUtils.fillProperties(PropertiesLoaderUtils.java:73)
at org.springframework.core.io.support.PropertiesLoaderUtils.loadProperties(PropertiesLoaderUtils.java:59)
at org.springframework.core.io.support.ResourcePropertySource.(ResourcePropertySource.java:67)
at org.springframework.core.io.support.DefaultPropertySourceFactory.createPropertySource(DefaultPropertySourceFactory.java:37)
at org.springframework.context.annotation.ConfigurationClassParser.processPropertySource(ConfigurationClassParser.java:452)
at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:271)
at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:242)
at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:199)
at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:167)
... 8 more