나는 봄 콩을 가지고있다.프로그래밍 방식으로 스프링 빈에 값을 전달 하시겠습니까?
public class Employee2 {
private int id;
private String name;
private double salary;
public Employee2(int id, String name, double salary) {
this.id = id;
this.name = name;
this.salary = salary;
}
// some logic to call database using above values
}
이제 스프링 구성 파일에 다음과 같은 설정이 있습니다.
<bean id="emp2" class="com.basic.Employee2">
<constructor-arg name="id" value="" />
<constructor-arg name="name" value="" />
<constructor-arg name="salary" value="" />
</bean>
동적이기 때문에 위의 설정 값을 하드 코딩 할 수 없습니다.
이제 스프링 빈을 프로그래밍 방식으로 아래 코드를 사용하여 가져옵니다.
Employee2 emp = (Employee2)applicationContext.getBean("emp2");
지금 어떻게 Employee2 생성자에 값을 전달할 수 있습니다?
감사합니다.
당신은 스프링 컨텍스트의 개념을 검토 할 필요가있다. 빈은 컨텍스트 로딩 중에 Spring에 의해 생성자가 호출된다는 것을 의미하는 봄 컨텍스트에서 시작되고 저장 될 것입니다. 클래스 인스턴스의 생성자가 이미 생성 되었기 때문에 생성자를 호출 할 수 없습니다. – Jaiwo99
인스턴스는 지연로드로 나중에 생성 할 수 있습니다. 여기서 \t getBean (String name, Object ... args)을보십시오. http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/beans/factory/BeanFactory.html – pasha701
파샤, 어떤 exmple을 주시겠습니까? – user755806