I have some difficulty in understanding the use of ThreadLocal in the below declaration. Does it mean, even though the instance is declared as static each thread will have it's own instance of DomainEventPublisher class
private static final ThreadLocal<DomainEventPublisher> instance = new ThreadLocal<DomainEventPublisher>() {
protected DomainEventPublisher initialValue() {
return new DomainEventPublisher();
}
};