constructor injection может помочь с гарантией заполнения всех атрибутов. но там грабли с именами параметров - picocontainer и новый Seam решает; не знаю про спринг
Если я правильно понял, то в коде вызывается AbstractBean.getString(name) с различными ключами. Есть также некий applicationContext.xml где объявлены несколько бинов классов-наследников AbstractBean. Надо: * Вычислить множество ключей, с которыми вызывается getString(...), причем достаточно брать случае, когда метод вызывается со строкой-константой. * Проанализировать applicationContext.xml и убедиться, что для каждого конкретного бина-наследника AbstractBean присутствуют конфигурации для каждого ключа из множества, вычисленного на предыдущем этапе. * Всю эту красоту реализовать на этапе построения проекта.
Короткий ответ: заколебетесь. Сделать, в принципе, можно - проанализировать исходный код или (что проще) компилированый байт-код, найти, с какими аргументами вызывается искомый getString(...), пропарсить applicationContext.xml, проанализировать bean definitions. Но сожрет кучу ресурсов и все равно не даст 100% гарантии.
Цель следующая: хочется иметь в классе доступ ко множеству строковых констант, наличие значений которых проверяются при компиляции проекта, сами значения описаны в конфигурационном файле.
Comments 5
но там грабли с именами параметров - picocontainer и новый Seam решает; не знаю про спринг
Reply
Reply
Надо:
* Вычислить множество ключей, с которыми вызывается getString(...), причем достаточно брать случае, когда метод вызывается со строкой-константой.
* Проанализировать applicationContext.xml и убедиться, что для каждого конкретного бина-наследника AbstractBean присутствуют конфигурации для каждого ключа из множества, вычисленного на предыдущем этапе.
* Всю эту красоту реализовать на этапе построения проекта.
Короткий ответ: заколебетесь. Сделать, в принципе, можно - проанализировать исходный код или (что проще) компилированый байт-код, найти, с какими аргументами вызывается искомый getString(...), пропарсить applicationContext.xml, проанализировать bean definitions. Но сожрет кучу ресурсов и все равно не даст 100% гарантии.
Цель-то какая?
Reply
Reply
Reply
Leave a comment