2017-10-06 4 views
-1

다음과 같은 문제가 있습니다. 일부 쿼리 매개 변수를 보내서 나머지 컨트롤러 내부의 Java 함수 내부에서 데이터베이스로 보내야합니다. 그러나 API로 공개 된 메소드에 따라 동적으로 쿼리 개체를 업데이트해야합니다. 함수 API처럼 보이는 다음 : 내가하고 싶은 무엇함수 안에 생성 된 객체에 대한 참조를 얻을 수 있습니까?

@RequestMapping(value = "/getItems, method = { RequestMethod.POST }, produces = { "application/json" }) 
public List<Item> getItems(){ 
    QueryObject queryObject = new QueryObject(); 
    queryObject.setParam(param); 
    List<Item> items = dao.getItems(queryObject); 
} 

는에 단순히 노출 된 API 방법을 주석으로있는 내가 쿼리 개체의 농축을 원하는, 메커니즘의 일종을 만드는 것입니다 쿼리 매개 변수를 쿼리 개체에 추가합니다. 반사는 그걸 달성 할 수 없으며 봄의 AOP 기능도 아닙니다. 메서드 내에서 인스턴스화 된 객체에 대한 참조를 제공하는 메커니즘을 찾을 수 없었습니다. 당신은 그렇게 할 수

+0

그래로 변경하는 neeeds. 비록 당신이 어떻게 든 그것을 (예를 들어 반사를 통해) 할 수 있다고하더라도, 그것은 정말로 나쁜 설계 일 것입니다. 대신에 추가 매개 변수를 사용할 수 있도록 메소드를 작성하십시오. – Kayaman

답변

0

아마

@RequestMapping(value = "/getItems 
public List<Item> getItems(){ 

@RequestMapping(value = "/getItems/{param} 
public List<Item> getItems(@PathParam("param")Param param) { 
+0

내가 필요로하는 것은 아니지만, 어쨌든 덕분에, 내가 할 수있는 일은 할 수 없다. – Carolik

+0

이것이 궁금하다. https://meta.stackexchange.com/questions/66377/what-is-the-xy- 문제 실제 문제는 무엇입니까? – pirho

+0

여기에 XY 문제가 없다. Java가 개발자에게 제공하는 도구를 통해 (필자는 시도했지만) 내가 할 수있는 것은 불가능하다는 것이다. 이것이 내가 사람들이 무엇을 시도하지 않았는지에 대해 자세히 설명한 이유이다. 시도하고 그래서 시간을 잃고. 나는 다른 누군가가 내 생각보다 다른 생각을 갖고 있는지 궁금해하고 있었다. 그것은 내가 자바에서 할 수없는 질문을했기 때문에 아닙니다. XY 문제로 시간을 낭비해야한다고 생각한다면 질문은 완벽하게 유효하고 관련 연구이지만이 사실을 관리자에게 알릴 수 있습니다. Java가 내가 필요한 것을 허용하지 않는다는 것입니다. – Carolik

관련 문제