Cześć,
piszę appkę w WebFluxie i chcę wygenerować sobie treść maila przy pomocy Thymeleaf
:
public String generateSignUpMailBody(Locale locale, String activationLink) {
String templateName = getTemplateName(MailTemplates.SIGNUP, locale);
final Context params = new Context();
params.setVariable("activationLink", activationLink);
// params.setVariable("name", name);
// params.setVariables przyjmuje mape, moze uzyc ConcurretnHashMap ?
return generateBody(templateName, params);
}
public String generateBody(String templatePath, Context params) {
return this.templateEngine.process(templatePath, params);
}
Wewnątrz metody generateSignUpMailBody()
używam klasy Context
, która jest mutowalna. Czy taki kod jest bezpieczny dla wątków? Czy mam 100% pewności, że inny wątek wykonujący tę metodę nie zmieni stanu params
i nie wyśle mi linku aktywacyjnego innej osoby?
Generalnie pytam czy takie użycie mutowalnych obiektów jest bezpieczne dla wątków.
Wg mnie tak, bo każdy wątek będzie widział swoją instancję obiektu Context
, a skoro nie dzielę się nigdzie referencją do niego to nie muszę synchronizować.