세 번째 옵션 인 구성 파일을 사용하겠습니다!
내가 작업하는 응용 프로그램 (Java에서 모든 예제는 Java + Spring 사용)의 경우 이러한 값은 일반적으로 구성 파일에 저장되고 응용 프로그램을 시작할 때 필요한 코드에 스프링을 통해 주입됩니다. 특성 파일에서 :
motorFramesString=412T, 413T, ...
스프링 설정에서 :
<bean="motorFrameManager" class="myCompany.MotorFrameManager" >
<property name="motorFrames" value="${motorFrames}"/>
</bean>
이것의 장점은 재 컴파일하지 않고도 이러한 대부분의 정적 값을 쉽게 쉽게 변경하거나 추가 할 수 있으며 (관계형) 데이터베이스를 참조 데이터로 채울 염려가 없다는 것입니다. 걱정할 수도 있고 어쨌든 모든 것이 데이터베이스에있을 필요 는 없습니다 ).
에 관해서는 왜 이 값 대신 참조 테이블의 설정 파일에 가야한다 : 당신이 주로 코드에서이 값을 사용할 계획, 또는 대부분의 데이터베이스에 있습니까? 이러한 값에 의존하는 기존 쿼리와보기 및 프로 시저가 많이있는 경우 구성 파일에서로드하고 모든 가능한 쿼리 /에 매개 변수로 전송하는 것이 더 쉬우므로 데이터베이스에 참조 데이터로 저장하는 것이 가장 좋습니다. 그것들을 참조하는보기 / 절차. 값이 주로 응용 프로그램 코드에서 사용되는 경우 구성 파일이 더 나은 선택 일 수 있습니다.
속성과 함께 또는 속성없이 연결하는 것과 같은 더 복잡한 예제도 수행 할 수 있습니다.
products.properties에서 :
productA.name=Product A 123
productA.hasMotor=true
productA.numFeet=1
productA.hasOutlet=true
productA.needsManual=true
productB.name=Product B 456
productB.hasMotor=false
productB.numFeet=1
productB.hasOutlet=true
productB.needsManual=true
스프링 설정 파일에서 :
<bean name="productA" class="com.mycompany.Product">
<property name="name" value="${productA.name}"/>
<property name="hasMotor" value="${productA.hasMotor}"/>
<!-- rest omitted for brevity -->
</bean>
<bean name="productB" class="com.mycompany.Product">
<property name="name" value="${productB.name}"/>
<property name="hasMotor" value="${productB.hasMotor}"/>
<!-- rest omitted for brevity -->
</bean>
<!-- configure as many beans as needed -->
<bean="motorFrameManager" class="myCompany.MotorFrameManager" >
<property name="motorFrames"> <!-- assumes that MotorFrameManager has a property motorFrames which is a List<Product> -->
<list>
<ref bean="productA"/>
<ref bean="productB"/>
</list>
</property>
</bean>
이것에 대한 좋은 점은 소스 데이터가 링크 된 질문과 같은 스프레드 시트 인 경우 Excel에서 매크로를 사용하여 속성 및 스프링 스 니펫을 자동으로 생성 할 수 있다는 것입니다.