Это чувствует вид подобного макроса C: воспользуйтесь преимуществом, что макрос компилируется не во время определения, а во время использования.
#define CALL_THE_RIGHT_FOO foo()
файл A:
static void foo() {
// do file A thing
}
...
CALL_THE_RIGHT_FOO
...
файл A:
static void foo() {
// do file B thing
}
...
CALL_THE_RIGHT_FOO
...
шаблонный шаблон использования, который Вы описываете, позволяет нам, действительно "называют правильное нечто" в родительском шаблоне, откладывая определение того, что точно правильное нечто, пока шаблон не инстанцируют. Кроме этого случая вот в чем разница между ClassA:: нечто и ClassB:: нечто на основе значения T в Родителе.
Вы можете использовать что-то вроде:
<beans>
<bean id="myBean" class="..." init-method="init"/>
</beans>
Это вызовет метод "init" при создании экземпляра bean-компонента.
Для этого вы можете развернуть собственный BeanPostProcessor в контексте вашего приложения. Или, если вы не против реализации интерфейса Spring в вашем компоненте, вы можете использовать интерфейс InitializingBean или директиву «init-method» (та же ссылка).
Есть три различных подхода, которые следует учитывать, как описано в справочнике
Have you tried implementing InitializingBean
? It sounds like exactly what you're after.
The downside is that your bean becomes Spring-aware, but in most applications that's not so bad.
Я предполагаю, что происхождение этих терминов восходит к классическому словарному определению сборки: « сборка машинных инструкций для достижения цели», что, вероятно, так пионеры вычислительной техники придумали небольшую группу машинных инструкций. Тогда «ассемблер» - это устройство, которое принимает отдельные машинные инструкции и объединяет их в «сборку».
spring автоматически вызовет метод (при условии, что вы все равно зарегистрируете параметр annotation-config где-то еще в контексте).