Работа с сервисом 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 и какова его цель?