1

私は、Spring MVC アプリケーションで構成パラダイムを介して grails の規則を模倣しようとしてきましたが、ハンドラー マッピングを自動化するのが難しいと感じています。

基本的に私はこのようなコントローラーを持っています。

@Controller
@RequestMapping(value = {"/", "/contact"})
public class ContactController {

    @Autowired
    private ContactService contactService;

    @RequestMapping(value = {"/","/index"})
    public String listContacts(Map<String, Object> map){
        map.put("contact", new Contact());
        map.put("contactList", contactService.listContact());
        return "contact";
    }

    @RequestMapping(value = "/add", method = RequestMethod.POST)
    public String addContact(@ModelAttribute("contact")Contact contact, BindingResult result){

        contactService.addContact(contact);

        return "redirect:/contact/index";
    }

    @RequestMapping(value = "/delete/{contactId}", method = RequestMethod.GET)
    public String removeContact(@PathVariable("contactId")Long contactId){
        contactService.removeContact(contactId);
        return "redirect:/contact/index";
    }
}

今、「ControllerClassNameHandlerMapping」を試してみましたが、3つの部分のURLに制限があるようです。

基本的に、 @RequestMapping を使用せずに、すべてのリクエストを適切なコントローラーとアクションに自動的にマップしたい

どんなポインタでも大きな助けになります

4

2 に答える 2

0

アップデート

あなたの場合、 ASM を介してAST 変換を行うことは、おそらく最速の方法です。コンパイル後のステップでしょうか?

それが役に立てば幸い


それほど単純ではありませんが、次のことを実行する可能性があります。

  • コントローラの注釈と一致するクラスを収集するために、注釈プロセッサを作成します(クラスローダーからクラスパスをスキャンします)
  • Spring mvc API にフックして、規則に基づいてリクエスト マッピングを挿入します。
  • 次に、pathVariables などを自動注入するためのメソッド パラメータを収集する必要もあります。

Spring MVC が、Controller アノテーションが見つかるとすぐに RequestMapping アノテーションを操作することを期待していない場合 (またはデフォルトで何かが設定されている場合) は、問題ありません (Post Bean Definition プロセッサまたは同様のメカニズム)...

それほど単純ではありませんが、間違いなく可能です...

于 2013-05-07T22:09:47.677 に答える