Webプロジェクトの開発プロセスは、一般的に春のMVCをMVC(モデル - ビュー - コントローラ)パターン、以前のStruts2のを使用している、現在の春ブーツに、同様の考えています
道路。以上で春ブーツ(会社はまだ春のMVCを使用したが)本当にSSMまたはSSHフレームワークを戻りたいが、それのSpring MVCの内容のための独自のレビューも、このエッセイを書きました。
ワークフロー
コンフィギュレーションのDispatchServlet
1、web.xmlの
2、サーブレットコンテナ内に配置されることにより(Tomcat7 +版)
/ ** * AbstractAnnotationConfigDispatcherServletInitializer拡張クラスと自動的DispatchServlet設定 *春のApplicationContext(アプリケーションのコンテキスト内のサーブレット・コンテキストは、アプリケーションである) * / パブリック クラス SpittrWebAppInitializer 延びAbstractAnnotationConfigDispatcherServletInitializer { / ** * @Configuration使用アノテーションを持つクラスを返すをContextLoaderListenerアプリケーションコンテキストビーンで作成定義 * @return * / @Override 保護 <?>クラス[] getRootConfigClasses(){ 戻り 新しい新しいクラス[] {RootConfig。クラス}; } / ** *戻り@Configurationで注釈このクラスは、Beanで作成したアプリケーションのコンテキストを定義するために使用されDispatchServlet * @Return * / @Override 保護 <?>クラス[] getServletConfigClassesは(){ 戻り 新しい新しいクラス[] {のWebConfig。クラス}; } / ** * 1つ以上のパスDispatchServletにマッピング。"/"は、デフォルトのアプリケーション・サーブレットを示し、すべての要求を管理する * @return * / @Overrideが 保護{)文字列[] getServletMappingsを( 戻り 新しい新しい文字列を[] { "/" ;} } }
パブリック クラスは、 WebConfigの 延びWebMvcConfigurerAdapter { //は一般パーサ構成図含ん // 静的リソース処理を // 。。。。。 }
DispatchServlet起動、作成されたSpringアプリケーションコンテキストがロードされた声明豆、春のWebアプリケーションは、通常、別のアプリケーション・コンテキストがあります
作成のContextLoaderListener
DispatchServlet:ロード豆は、コントローラ、ビューリゾルバ、マッピングプロセッサとしてWebコンポーネントが含まれ
ContextLoaderListener:ローディングアプリケーション他のビーンは、後輪駆動のアプリケーションは、一般的に、中間層とデータ層のアセンブリであります
共通アノテーション
1は、EnableWebMvc @:ウェブMVCの構成でオープンクラス構成のサポート、ノートを使用していないいくつかのViewResolverまたはMessageConverter、として、書き換える必要があり
SpringMVCを構成するための方法のWebMvcConfigurerAdapter。
2、RequestParam @ます。http:// host:port /パスID = 1001?
公共の文字列TEST1(@RequestParam( "ID")文字列ID)
3、PathVariable @ます。http:// host:port /パス/ 1001
公共の文字列TEST2(@PathVariable( "ID")文字列ID)
図4に示すように、フォームの検証:javax.validation.constraints内のすべてのパケット
public class Login { @NotNull @IsMobile private String mobile; @NotNull @Length(min=32) private String password; }
public Result<String> doLogin(HttpServletResponse response, @Valid LoginVo loginVo) { log.info(loginVo.toString()); //登录 String token = userService.login(response, loginVo); return Result.success(token); }
5、@ResponseBody:支持将返回值放在response内,而不是一个页面,通常用户返回json数据
@ResponseBody public String test3() { return "id";//这时候返回到页面的是String,而不是解析到id.html等类似的页面 }
6、@RequestBody:允许request的参数在request体中,而不是在直接连接在地址后面。
7、@RestController:该注解为一个组合注解,相当于@Controller和@ResponseBody的组合,注解在类上,该Controller的所有方法都默认加上了@ResponseBody。
@Controller @ResponseBody public @interface RestController { String value() default ""; }
8、@ModelAttribute:绑定键值对到Model里
先写到这,同学来了,去喝酒了。。。。