Простой встроенный HTTP-сервер в Apache CXF вопросах - PullRequest
0 голосов
/ 24 марта 2020

Работа с сервисом RESTful для стартера с использованием Apache CXF.

Следующий класс используется для регистрации контроллера, но также вызывает несколько вопросов.

@Configuration
public class CxfConfiguration {

    @Autowired
    private Bus bus;

    @Autowired
    MyController myController;

    @Bean
    public Server rsServer() 
    {
        JAXRSServerFactoryBean endpoint = new JAXRSServerFactoryBean();
        endpoint.setBus(bus);
        endpoint.setAddress("/");
        endpoint.setServiceBeans(Arrays.<Object>asList(myController));
        endpoint.setProviders(Arrays.asList(jacksonJaxbJsonProvider(), jaxbElementProvider()));
        return endpoint.create();
    }

    @Bean
    public JacksonJaxbJsonProvider jacksonJaxbJsonProvider() {
        return new JacksonJaxbJsonProvider();
    }

    @Bean
    public JAXBElementProvider jaxbElementProvider() {
        return new JAXBElementProvider();
    }

    @Bean
    public MyController dummyProcedure() {
        return new MyController();
    }
}

Вопрос 1 :

Я искал весь проект и не вижу экземпляров объекта CxfConfiguration и основан на определение @Configuration, я подозреваю, что эта аннотация автоматически загружает этот объект, но как он узнает, что вызывается подпрограмма rsServer() ?? Примеры, которые я видел, обычно помещают вызовы конфигурации в конструктор.

Вопрос 2 :

Если следующее закомментировано, оно не скомпилируется, поэтому ожидается, что он возвратит объект MyController.

@Bean
public MyController dummyProcedure() {
    return new MyController();
}

Но откуда он знает, что dummyProcedure () должен быть вызван?

Вопрос 3 :

Что общий поток для создания контроллера? Создайте объект Controller (или используйте @AutoWire), добавьте Controller в вызов setServiceBeans (), а затем создайте @Bean для возврата объекта. Это примерно так?

Вопрос 4 :

Что такое объект Bus и какова его цель?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...