Componentes reutilizables java
Clases con métodos estaticos solo pueden ser dependiendes del framework spring dado que se utiliza con base en casi todos los proyectos
Permite acceder a propiedades en tiempo de ejecución, es util cuando no se pueden inyectar usando @value
Ej:
@javax.inject.Named
class Test{
@javax.inject.Inject
private PropertiesAccesor propertiesAccesor;
public String getMyProperty(){
return propertiesAccesor.getProperty("${myproperty}");
}
}
Conjunto de métodos estaticos asociados a RUT.
Retorna un rut sin formato (elimina '.' y '-'')
Ej:
String rut = "1-9";
String rutWihoutFormat = RutHelper.getRutWithoutFormat(rut);
assertEquals("19", rutWihoutFormat);
Permite verificar si un rut es válido dado su digito verificador (último caracter del rut)
Ej:
boolean rutIsValid = RutHelper.isValid("1-9");
assertTrue(rutIsValid);
Componentes para poder enviar correos utilizando servicios SMTP
Impementación de AbstractEmailService, se puede utilizar para enviar correos utilizando un smtp
Ej:
@Configuration
class Config {
@Bean
public AbstractEmailService emailService(){
Properties properties = System.getProperties();
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.port", "587");
return new EmailServiceImpl(properties, new Authenticator(){
public PasswordAuthentication getPasswordAuthentication() {
String username = "user";
String password = "password";
return new PasswordAuthentication(username, password);
}
});
}
}
@javax.inject.Named
class Test {
@javax.inject.Inject
private AbstractEmailService emailService;
public void sendMail(){
emailService.sendEmail(new EmailDTO(
"from@mail.com",
Collections.singletonList("to@mail.com"),
"subject",
"<html><body><h1>Hello</h1></body></html>"));
}
}
Componentes para facilizar el Uso de Quartz con Spring
Anotacion que permite crear un Job para ser ejecutado por Quartz de acuerdon a una expresión.
Ej:
@Configuration
class Config {
@Bean
public QuartzJobFactory quartzJobFactory(SchedulerFactoryBean quartzScheduler, PropertiesAccessor propertiesAccessor){
return new QuartzJobFactory(quartzScheduler, propertiesAccessor, "group");
}
}
@QuartzCron(cron = "${cron-expresion-property}")
class MyJob implements org.quartz.Job {
@Override
public void execute(JobExecutionContext context) {
//ejecutando job
}
}