#java #spring #spring-framework-beans
#java #spring #spring-framework-beans
Вопрос:
Я очень смущен тем, что bean xml отключается для настройки параметров его конструктора. В настоящее время я использую следующую конфигурацию компонента:
<bean id="streamingService" class="com.christien.autowiring.StreamingService" autowire="byName">
<property name="serviceName" value="Twitch"></property>
</bean>
<!-- id must be spelled the same as variable in StreamingService class in order to work -->
<bean id="screenRecord" class="com.christien.autowiring.ScreenRecord" />
Класс для службы потоковой передачи выглядит следующим образом:
public class StreamingService {
private ScreenRecord screenRecorderX;
private String serviceName;
public ScreenRecord getScreenRecorder() {
return screenRecorderX;
}
public void setScreenRecord(ScreenRecord creenRecord) {
this.screenRecorderX = creenRecord;
}
public String getServiceName() {
return serviceName;
}
public void setServiceName(String serviceName) {
this.serviceName = serviceName;
}
public void startStream() {
System.out.println("Stream Starting in 3, 2, 1 ...");
screenRecorderX.beginRecording();
}
public void endStream() {
System.out.println("Stream ending now...");
screenRecorderX.stopRecording();
}
}
How does this work if there is no property named "screenRecord" in the StreamingService.java, unless I am completely misunderstanding what its supposed to be looking up for reference. Thanks!
Комментарии:
1. И вопрос в том? Я понятия не имею, какой вопрос лежит в этой прозе?
2. Как autowire узнает, как подключиться к этому конкретному классу, если I’d не соответствует имени свойства
3. Оно соответствует имени свойства, но не соответствует имени поля. Но имя поля не является именем свойства. Имена свойств являются производными от средства получения / установки, принадлежащего полю.
setScreenRecord
Таким образом, у вас есть свойство с именем, доступным для записиscreenRecord
. То, что он внутренне задает поле с именемthis.screenRecorderX
, не имеет значения. Внешне есть свойство с именемscreenRecorder
. Это указано в спецификации Java Beans .