Я пытаюсь автоматически связать перечисление внутри Spring Bean. Я не пробовал это раньше и не уверен, чего не хватает, но когда я это делаю, я получаю параметр 0 конструктора в требуемом bean-компоненте типа java .lang. ошибка строки. Ниже приведен созданный мной код.
public interface TokenGenerator{
String generateToken();
}
@Service
public enum TokenGeneratorImpl implements TokenGenerator{
INSTANCE;
private string token;
public string generateToken(){
if(token == null){
token="new token";
}
return token;
}
}
@Service
public class ConnectionService {
@Autowired
private TokenGenerator generator
public void getConnection(){
for(int i =0; i< 1000; i++){
Thread t = new Thread(() -> generator.generateToken());
t.start();
}
}
}
Есть две проблемы: 1) Автоматическое подключение не работает, и я получаю
parameter 0 of constructor in required a bean of type java.lang.string error
2) Если я вызываю непосредственно Enum и сгенерировать токен, тогда я обнаружил, что этот код не является потокобезопасным, и хочу понять, как я могу сделать его потокобезопасным