Springのソースコードを修正することによって、String MVC 0の配置はまた一歩進んだ.


「Spring mvc除去@Request Mappingコメント」がやってみようとしたことで、Springのソースコードを修正してやっとこの構成を削除しました.自分で作った枠組みの中で、「慣習の約束は配置より優れている」ということを追求してきました.Spring MVCでよく見られるやり方は以下の通りです.
@Controller
@RequestMapping("/User")
public class UserAction {

	@Resource
	private UserBo userBo;	
	
	@RequestMapping("/list/{pageSize}/{pageNo}")
	public String list(@PathVariable int pageSize, @PathVariable  int pageNo) {
		//      ,  
	}
}
 
私の命名習慣によってUserActionはデフォルトでは「/User」、listメソッドはデフォルトでは「/list」、パラメータもパラメータ順に書くべきです.だから、@Request Mappingの声明はまったく余分です.
 
どのように配置ファイルを通じて自動マッピングを実現するのか見つけられません.Springのソースコードを見て、やっと解決方法を見つけました.二つの種類を修正しました.修正後のコードは添付ファイルを参照してください.
クラスのコードを追加:
package org.springframework.util;

import java.lang.annotation.Annotation;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

public class RequestMappingImpl implements RequestMapping {

	private final String[] headers;

	private final String[] params;

	private final RequestMethod[] method;

	private final String[] value;

	public RequestMappingImpl(String vlaue) {
		params = headers = new String[0];
		method = new RequestMethod[0];
		this.value = new String[] { vlaue };
	}

	public RequestMappingImpl(String vlaue, RequestMapping requestMapping) {
		params = requestMapping.params();
		headers = requestMapping.headers();
		method = requestMapping.method();
		this.value = new String[] { vlaue };
	}

	@Override
	public String[] headers() {
		return headers;
	}

	@Override
	public RequestMethod[] method() {
		return method;
	}

	@Override
	public String[] params() {
		return params;
	}

	@Override
	public String[] value() {
		return value;
	}

	@Override
	public Class<? extends Annotation> annotationType() {
		return RequestMapping.class;
	}

}