[SPRING] Spring : get 메소드 호출마다 Bean의 새로운 인스턴스를 생성한다.
SPRINGSpring : get 메소드 호출마다 Bean의 새로운 인스턴스를 생성한다.
나는 다음 상황이있다 : 연결 관리자는 ConnectionServer의 한 객체와 DataBean의 새 객체를 매번 가져야합니다. 그래서, 나는이 콩을 만들어 봄 xml을 구성했습니다.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<bean id="dataBena" class="com.test.DataBean" scope="prototype"/>
<bean id="servCon" class="com.test.ServerCon"/>
<!--<bean id="test" class="com.test.Test"/>-->
<context:component-scan base-package="com.test"/>
</beans>
DataBean의 범위 프로토 타입 추가
이 후 간단한 Test라는 유틸리티 / 컴포넌트 클래스를 만들었습니다.
@Component
public class Test {
@Autowired
private DataBean bean;
@Autowired
private ServerCon server;
public DataBean getBean() {
return bean.clone();
}
public ServerCon getServer() {
return server;
}
}
하지만, getBean () 메소드를 호출 할 때마다이 빈을 복제하고 있는데, 이것이 나에게 문제이다. 복제 방법을 사용하지 않고도 스프링 구성에서이 작업을 수행 할 수 있습니까? 감사.
해결법
-
==============================
1.Spring에서 lookup 메소드 기능을 찾고있다. 아이디어는 다음과 같은 추상 메소드를 제공한다는 것입니다.
Spring에서 lookup 메소드 기능을 찾고있다. 아이디어는 다음과 같은 추상 메소드를 제공한다는 것입니다.
@Component public abstract class Test { public abstract DataBean getBean(); }
그리고 실행시 Spring을 구현해야한다고 Spring에 알려주십시오.
<bean id="test" class="com.test.Test"> <lookup-method name="getBean" bean="dataBean"/> </bean>
이제 Test.getBean을 호출 할 때마다 Spring에서 생성 된 메소드를 실제로 호출 할 것이다. 이 메소드는 ApplicationContext에 DataBean 인스턴스를 요청합니다. 이 bean이 프로토 타입 범위 인 경우 호출 할 때마다 새 인스턴스가 생성됩니다.
여기에이 기능에 대해 썼습니다.
from https://stackoverflow.com/questions/7010323/spring-create-new-instance-of-bean-for-each-call-of-get-method by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Typesafe Config로 지원되는 Spring 환경 (0) | 2019.03.25 |
---|---|
[SPRING] 필자는 FasterXML \ Jackson에서 부울 값을 Int로 serialize / De-serialize 할 수 있습니까? (0) | 2019.03.25 |
[SPRING] 하나의 스프링 부트 컨테이너에서 여러 웹 앱 실행 (0) | 2019.03.25 |
[SPRING] Spring Pageable 인터페이스에 대한 Swagger 문서 (0) | 2019.03.25 |
[SPRING] REST에서 성공적인 DELETE 문의 HTTP 상태 리턴 코드는 무엇입니까? (0) | 2019.03.25 |