>

@ConfigurationProperties 를 사용하려고합니다   key-value 를로드하려면   application.properties 에서 쌍  파일.

application.properties

soap.action.segalRead=Segal/SegalRead
soap.action.mantilUpdate=Mantil/MantilUpdate

SoapUri.java

@ConfigurationProperties(prefix = "soap.action")
public class SoapUri {
    @NotNull
    private String segalRead;
    @NotNull
    private String mantilUpdate;
    //getters and setters
}

SoapUriTests.java

@RunWith(SpringRunner.class)
@SpringBootTest
public class SoapUriTests {
    @Autowired 
    private SoapUri soapUri;
    @Test
    public void testSoapUri_returnsSoapAction() {
        assertThat(soapUri.getSegalRead()).isEqualTo("Segal/SegalRead");
        assertThat(soapUri.getMantilUpdate()).isEqualTo("Mantil/MantilUpdate");
    }
}

위의 단위 테스트는 훌륭합니다.

그러나 pyzwyz를 사용해야합니다  실제 코드에서. 다음 코드를 고려하십시오 :

SoapUri

위에 대해 불평 : "생성자를 명시 적으로 호출하는 동안 soapUri 인스턴스 필드를 참조 할 수 없습니다"

누구든지 public class MantilUpdateReadVO extends RequestClientVO { @Autowired private SoapUri soapUri; public MantilUpdateReadVO(final MantilUpdate mantilUpdate) { super(mantilUpdate, soapUri.getMantilUpdate(), MantilUpdateResponse.class); } } public class RequestClientVO { private Object readRequest; private String serviceName; private Class<?> unmarshalTargetclass; public MwsRequestClientVO(Object readRequest, String serviceName, Class<?> unmarshalTargetclass) { super(); this.readRequest = readRequest; this.serviceName = serviceName; this.unmarshalTargetclass = unmarshalTargetclass; } //getters and setters } 주사에 대한 해결 방법을 알고 있습니까  그리고 segalRead  와이즈 비즈  와이즈 비츠

mantilUpdate

  • 답변 # 1

    필드 인젝션을 사용하고 있는데, 이는 좋은 생각이 아닙니다. 자세한 내용은 Oliver Gierke의 필드 주입이 악한 이유를 참조하십시오.

    인스턴스가 구성 될 때까지 필드를 삽입 할 수 없습니다. 따라서 건설 중에는 주입 된 필드를 사용할 수 없습니다.

    다음과 같이 코드를 변경하십시오 :

       @Autowired
        public MantilUpdateReadVO(final SoapUri soapUri, final MantilUpdate mantilUpdate) {
            super(mantilUpdate, soapUri.getMantilUpdate(), MantilUpdateResponse.class);
        }
    
    

    또한 MantilUpdateReadVO 를 확인해야합니다  Spring Bean입니다. @Component 를 추가해야 할 수도 있습니다 .

    행운을 빕니다!

관련 자료

  • 이전 excel - vba - like 연산자를 값 목록에 사용하는 방법은 무엇입니까?
  • 다음 xml - 네임 스페이스 URI를 xslt로 바꾸는 방법