Ich habe eine Spring-Konfigurationsklasse, die ich aus der Eigenschaftendatei lesen und die Beans erstellen.Spring-Konfigurationsklasse, um Bean als Eigenschaft zu injizieren
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
@Configuration
@PropertySource("classpath:conf.properties")
public class ApplicationConfiguration {
@Value("${name}")
private String username;
@Value("${password}")
private String password;
@Value("${ethnicity}")
private String ethnicity;
@Bean
public Employee employee(){
Employee emp = new Employee();
ConfigParam configParam = new ConfigParam();
configParam.setEthnicity(ethnicity);
emp.setConfigParam(configParam);
return emp;
}
}
Innerhalb der XML-Datei
<property name="configParam">
<bean class="com.test.config.ConfigParam">
<property name="ethnicity" value="indian" />
</bean>
</property>
ich in der Lage bin, die username
und password
Eigenschaften festlegen, aber nicht in der Lage das configParam
Attribut employee
zu setzen, da wir die ConfigParam
und seine ein bean
injizieren müssen. Bitte lassen Sie mich wissen, wie man eine Bohne in die employee
Methode einspritzt.
Wo wird die 'ConfigParam' Bean definiert? Normalerweise würden Sie es als Parameter der 'employee()' Methode hinzufügen, aber ich kann das nicht sehen, also nicht sicher, ob das die richtige Lösung ist. –
Was funktioniert nicht? Scheint, dass Sie Ihre ethnische Zugehörigkeit zu ConfigParam und ConfigParam auf Ihre Mitarbeiter-Bean festlegen. Was willst du noch? Sie könnten ConfigParam als Bean erstellen und natürlich direkt dort die Ethnizität injizieren, aber das Endergebnis wäre wahrscheinlich das gleiche ... Wenn Sie nicht auf ConfigParam als Bean zugreifen müssen, warum sollten Sie es als einen erstellen? –
Danke. Ich habe meinen Code aktualisiert. Ich überprüfe einfach, ob wir in der XML-Datei ein 'config' definieren können und injiziere die Bean innerhalb der' employee' Funktion in 'emp'. – zilcuanu