У меня есть классы ниже.
public interface Operation
public abstract class AbstractOperation implements Operation
public class Operation extends AbstractOperation
Класс Operation
public interface Operation {
GenericClientResponse validateCustomerId();
Класс AbstractOperation
public abstract class AbstractOperation implements Operation {
protected GenericClientRequest buildClientValidationRequest() {
return new GenericClientRequest();
}
В классе Operation есть свойства с автосвязью.
public class Operation extends AbstractOperation {
@Autowired
UserAccountsRepository userAccountsRepository; // not autowiring
@Autowired
WebClient.Builder webClientBuilder; // not autowiring
Но ни одно из этих свойств не является автоматическим. Они нулевые во время выполнения. Но если я автоматически подключу их в моем классе обслуживания, то автоматическое подключение будет успешно выполнено.
@Service
@Transactional
public class TransactionServiceImpl implements TransactionService {
@Autowired
UserAccountsRepository userAccountsRepository; // Autowires successfully.
Ниже приведен класс хранилища.
public interface UserAccountsRepository extends
JpaRepository<UserAccountsEntity, Integer> {
@Query("SELECT account FROM UserAccountsEntity account where
account.accountNo = :acc")
UserAccountsEntity getAccountByAccNo(@Param("acc") String userId);
В моем коде я храню карту классов операций и получаюсвязанный класс операций в соответствии с ключом.
operationMap.put("test_op1", new Operation());
operationMap.put("test_op2", new Operation2());
Затем я вызываю это, чтобы получить правильную операцию
Optional.ofNullable(operationMap.get("test_op1"));
Теперь я понимаю, что создание нового экземпляра вызывает нулевую автопроводку. Как получить новый объект без нового ключевого слова?