Я не очень знаком с Spring и имею следующую ситуацию:
Класс репозитория:
@Repository
public class MyRepository {
// ...
}
Класс, использующий класс репозитория:
public class MyClass extends AbstractClass {
@Autowired
private MyRepository myRepository;
//...
}
Я знаю, что если я аннотирую свой MyClass
с помощью @Component
и использую его с @Autowired
, то @Autowired
MyRepository
разрешается очень хорошо.Проблема в том, что мне нужно создать новые экземпляры MyClass
с отражением.Так что MyRepository
никогда не разрешается и все время является нулевым.
Есть ли способ использовать @Autowired
в этой ситуации?
Объясняя лучше мою ситуацию:У меня есть несколько реализаций AbstractClass
.На этапе настройки моего приложения я создаю HashMap
этих реализаций.В основном:
{"MyClass", MyClass.class}
//...
Затем у меня есть универсальный Controller
, который сопоставляется с URL /{class}?options=...
. Используя {class}
@PathVariable
, HashMap
выше и отражение, я могу создать экземпляркласса, основанного на данном options
(эта часть важна).Ребята, вы думаете, есть лучший способ сделать это?
Заранее спасибо