CDI: Использование перехватчиков в разных модулях / архивах bean-компонентов

@Sunil Targe - это версия Swift3. Надеюсь это поможет. (Адаптировано из ответа Киприана Рарау)

Преобразование данных в JSON

func dataToJSON(data: Data) -> Any? {
   do {
       return try JSONSerialization.jsonObject(with: data, options: .mutableContainers)
   } catch let myJSONError {
       print(myJSONError)
   }
   return nil
}

Преобразование из JSON в данные

func jsonToData(json: Any) -> Data? {
    do {
        return try JSONSerialization.data(withJSONObject: json, options: JSONSerialization.WritingOptions.prettyPrinted)
    } catch let myJSONError {
        print(myJSONError)
    }
    return nil;
}
16
задан Theo 29 October 2010 в 11:07
поделиться

1 ответ

Если Вы не имеете никакого контроля над внешней зависимостью, и Вы все еще хотите позволить перехватчики без beans.xml, который Вы можете написать CDI, добавочный номер:

package my.package;

import javax.enterprise.event.Observes;
import javax.enterprise.inject.spi.AfterTypeDiscovery;
import javax.enterprise.inject.spi.Extension;

public class MyCdiExtension implements Extension {

    public void observeAfterTypeDiscovery(@Observes AfterTypeDiscovery afterTypeDiscovery) {
        afterTypeDiscovery.getInterceptors().add(SomeExternalInterceptor.class);
    }
}

Добавляет файл resources/META-INF/services/javax.enterprise.inject.spi.Extension с содержанием:

my.package.MyCdiExtension
0
ответ дан 30 November 2019 в 22:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: