2014-11-13 2 views
0

다양한 튜토리얼을보고 몇 가지 독서를하고 봄에 생성자 인수를 사용하는 방법을 이해했다. 거기에 문제 없어. 내 문제는 누군가가 설명하고 설명하는 자료를 설명 할 수 있습니다. 무슨 의미인지는 분명히 다음과 같은 문법을 가지고 있습니다 : <constructor-arg value="threading"></constructor-arg>, 하드 코딩 된 값은 가난한 연습입니까? 나는 그것을하는 방법에 관하여 봄에 어떤 기사를 원한다. 하드 코딩이 겉으로보기에는 괜찮은지 아니면 더 나은 솔루션인지를 설명하는 간단한 대답이 필요합니다. 나는 그런 <property name="answer" ref="answer"></property> 같은 라인의 필요성을 없애 가져옵니다 @Resource 주석의 알고 있지만 나는 항상 하드 코딩이 나쁜 생각이며, 예를 들어 DB에서 당기는 더 나은 솔루션봄 콩에서 생성자 args의 개념을 확신 할 수 없다.

<bean id="questions" class="main.Questions"> 
     <constructor-arg value="0000"></constructor-arg> 
     <constructor-arg value="What is the question?"></constructor-arg> 
     <constructor-arg value="threading"></constructor-arg> 
     <property name="correctAnswer" value="deadlock"></property> 

</bean> 
+1

아마도'Beans.xml' 파일 **은 ** DB입니까? 아니면 그런 식으로 생각해야합니까? 나는 잘 모르겠다 (나는 봄 초보자 다.). – ajb

답변

0

에게이되지 않는 것입니다 해왔 던 는 XML에 리터럴로 생성자/속성 주입 값을 제공하여

http://en.wikipedia.org/wiki/Hard_coding

당신은 하드 코딩되지 않습니다 하드 ... 코딩 그것은 당신이 무엇을 의미하는지 알아 내야하지만,이 위키 문서를 체크 아웃하는 나에게 조금했다 왜냐하면 XML은 외부화 된 데이터 소스로 사용되기 때문입니다. 실질적으로 DB 어딘가에있는 필드의 값과 다르지 않습니다. XML에서 수정하면 코드를 다시 컴파일하여 작동시키지 않아도됩니다.

+0

좀 더 구체적으로 설명하겠습니다. 지금 내 질문을보고 내가 넣은 콩을 보아라. 생성자 args에는 값이 있습니다. 지금 내가 그들을 @Resource 주석으로 대체하기를 원한다면 어디에 값을 넣을 것인가 ?? –

+0

나는 그것이 당신의 OP와 어떤 관련이 있는지 이해하지 못합니다. 종속성 삽입의 다른 유형을 사용하는 것은 외부화 된 데이터 소스가되는 XML과 관련이 없으므로 하드 코딩이 아닙니다. XML 생성자 args의 요점은 XML의 값을 변경하고 Bean을 다시로드하거나 (다시 시작하거나 다른 방법을 통해) 코드를 다시 컴파일하지 않아도된다는 것입니다. @Resource 주석을 사용하기 위해이 코드를 변경하면 코드가 변경됩니다. 정렬, 사과 및 오렌지입니다. –

+0

@RedBaron 값에 대해 SpEL 표현식을 사용하십시오. – chrylis

관련 문제