В моем приложении Spring MVC с одним классом контроллера
@Controller
public class MyController {
@RequestMapping(method = RequestMethod.POST, value = "/*.htm")
public myMethod{@RequestBody final MyRequestBean myRequest}
}
Мой ввод в форме JSON, и я использую Джексона для преобразования его в объект Java.
Теперь, основываясь на свойстве объекта Java, я хочу отправить его в соответствующий класс обслуживания.
Если это так,
myRequest.value == "1" -> FirstService
myRequest.value == "2" -> SecondService
Все эти классы Service будут реализовывать базовый интерфейс.
Я не хочу делать это в моем Java-коде. Как я могу переместить это в файл конфигурации. Как я могу вводить эти объекты динамически на основе значений запроса. Обратите внимание, что я использую аннотации.
Я новичок в весне. Пожалуйста, сообщите
РЕДАКТИРОВАТЬ: включить мое решение
В моем dispatcher.xml,
`<util:map id="myMap">
<entry key="service1" value="com.service.MyService1" />
<entry key="service2" value="com.service.MyService1" />
</util:map>`
В моем контроллере,
@Resource private Map myMap;
и в методе внутри контроллера
MyService myService = (MyService) Class.forName((String)myMap.get(myRequest.getValue())).newInstance(); System.out.println("My value" + myService.doService());
Как видно, использовали отражение Java для получения экземпляра из строки, возвращенной из моего XML. Это правильный путь?