ホームページ > Java > &#&チュートリアル > SpringのWEBモジュール構成を詳しく解説

SpringのWEBモジュール構成を詳しく解説

小云云
リリース: 2017-12-05 11:34:35
オリジナル
2115 人が閲覧しました

Spring は、ビジネス ロジック層と他の層の間の疎結合の問題を解決するオープンソースの設計レベルのフレームワークであり、システム アプリケーション全体にわたってインターフェイス指向のプログラミングのアイデアを統合します。 Spring は、2003 年に登場し、Rod Johnson によって作成された軽量の Java 開発フレームワークです。簡単に言えば、Spring は階層化された JavaSE/EE フルスタック (ワンストップ) 軽量オープンソース フレームワークです。この記事では、Spring の WEB モジュール構成の詳細な説明を主に紹介し、その継承方法、プロキシ方法、および関連する詳細な構成コードを簡単に紹介します。一定の参考値があり、必要な友人はそれについて学ぶことができます。

Spring フレームワークの 7 つの主要モジュールの簡単な紹介

Spring の MVC モジュール コードの詳細な説明

Spring の WEB モジュールは、Struts1、Struts2、JSF などの Web フレームワークを統合するために使用されます.

Struts1の統合

継承メソッド

Springフレームワークは、Struts1 ActionをサポートするActionSupportクラスを提供します。 ActionSupportを継承した後、SpringのBeanFactoryを取得し、各種Springコンテナ内の各種リソースを取得することができます

import org.springframework.web.struts.ActionSupport; 
  
public class CatAction extends ActionSupport{ 
   public ICatService getCarService(){ 
       return (ICatService) getWebApplicationContext().getBean("catService"); 
   } 
   public ActionForward execute(ActionMappingmapping,ActionForm form,HttpServletRequest request,HttpServletResponseresponse){ 
       CatForm catForm = (CatForm) form; 
       if("list".equals(catForm.getAction())){ 
          returnthis.list(mapping,form,request,response); 
       } 
   } 
  
   public ActionForward list(ActionMappingmapping,ActionForm form,HttpServletRequest request,HttpServletResponseresponse){ 
       CatForm catForm = (CatForm) form; 
       ICatService catService =getCatService(); 
       List<Cat> catList =catService.listCats(); 
       request.setAttribute("carList",catList); 
  
       return mapping.find("list"); 
   } 
}
ログイン後にコピー

Web上でのSpringの設定は、セッションスコープをJSP層まで拡張するためにweb.xmlにOpenSessionInViewFilterフィルターを追加する必要があります。 Spring は結合されており、Action は Spring によって管理されないため、プロキシ メソッドを使用するとこれらの欠陥を回避できます

<context-param><!-- Spring配置文件的位置--> 
   <param-name>contextConfigLocation</param-name> 
   <param-value>/WEB-INF/classes/applicationContext.xml</param-value> 
</context-param> 
  
<listener><!-- 使用Listener加载Spring配置文件--> 
   <listener-class> 
       org.springframework.web.context.ContextLoaderListener 
   </listener-class> 
</listener> 
  
<filter><!-- 使用Spring自带的字符过滤器--> 
   <filter-name>CharacterEncodingFilter</filter-name> 
   <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> 
   <init-param> 
       <param-name>encoding</param-name> 
       <param-value>UTF-8</param-value> 
   </init-param> 
   <init-param> 
       <param-name>forceEncoding</param-name> 
       <param-value>true</param-value> 
   </init-param> 
</filter> 
<filter-mapping> 
   <filter-name>CharacterEncodingFilter</filter-name> 
   <url-pattern>/*</url-pattern> 
</filter-mapping>
ログイン後にコピー

この Action は機能しません。 Spring と組み合わせると、ICatService 属性が Spring によって挿入されます。

<filter> 
   <filter-name>hibernateFilter</filter-name> 
   <filter-class>org.springframework.orm.hibernate3.support. OpenSessionInViewFilter</filter-class> 
</filter> 
<filter-mapping> 
   <filter-name> hibernateFilter</filter-name> 
   <url-pattern>*.do</url-pattern><!-- 对Struts 1的Action启用--> 
</filter-mapping>
ログイン後にコピー

たとえば、pre-method インターセプターと post-return の設定です。 CatAction のインターセプター

public class CatAction extends Action{ //此处继承的Struts 1的Action 
   private ICatService catService; 
   //setter、getter略 
  
   public ActionForward execute(ActionMappingmapping,ActionForm form,HttpServletRequest request,HttpServletResponseresponse){ 
       CatForm catForm = (CatForm) form; 
       if("list".equals(catForm.getAction())){ 
          returnthis.list(mapping,form,request,response); 
       } 
   } 
  
   public ActionForward list(ActionMappingmapping,ActionForm form,HttpServletRequest request,HttpServletResponseresponse){ 
       CatForm catForm = (CatForm) form; 
       ICatService catService =getCatService(); 
       List<Cat> catList =catService.listCats(); 
       request.setAttribute("carList",catList); 
  
       return mapping.find("list"); 
   } 
}
ログイン後にコピー

Integrate Struts 2

Spring には struts2-spring-2.011.jar パッケージ

<form-beans> 
   <form-bean name="catForm" type="com.clf.spring.CatForm"> 
</form-beans> 
  
<action-mappings> 
   <action name=" catForm" path="/cat" type="com.clf.spring.CatAction"> 
       <forward name="list" path="/jsp/listCat.jsp"></forward> 
   </action> 
</action-mappings> 
  
<!-- 最核心的配置,该配置把Struts的Action交给Spring代理--> 
<controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor" /> 
  
<!-- controller配置生效后,Action的type属性就是去作用了,Struts不会用type属性指定的类来创建CatAction,而是到Spring配置中寻找,因此Spring中必须配置CatAction --> 
<!-- Spring中配置Action使用的是name属性而不是id,Spring会截获"/cat.do"的请求,将catService通过setter方法注入到CatAction中,并调用execute()方法--> 
<bean name="/cat" class=" com.clf.spring.CatAction"> 
   <property name="catService" ref="catService" /> 
</bean>
ログイン後にコピー

xml 構成が必要です。

通常の構成に加えて、また、 struts.objectFactory という名前の定数を追加し、値を spring に設定して、アクションが Spring によって生成されることを示す必要があります。次に、 の class 属性を catAction に変更します。Struts2 は Spring で catAction という名前の Bean を探します

<bean id="catBeforeInterceptor" class="org.springframework.aop.support.NameMatchMethodPointcutAdvodor"> 
   <property name="advice"> 
       <bean class="com.clf.spring.MethodBeforeInterceptor" /> 
   </property> 
   <property name="mappedName" value="*"></property> 
</bean> 
  
<bean id="catAfterInterceptor" class="org.springframework.aop.support.NameMatchMethodPointcutAdvodor"> 
   <property name="advice"> 
       <bean class="com.clf.spring.MethodAfterInterceptor" /> 
   </property> 
   <property name="mappedName" value="*"></property> 
</bean> 
  
<bean name="/cat" class="org.springframework.aop.framework.ProxyFactoryBean"> 
   <property name="interceptorNames"> 
       <list> 
          <value> catBeforeInterceptor</value> 
          <value> catAfterInterceptor</value> 
       </list> 
   </property> 
   <property name="target"> 
       <bean class="com.clf.spring.CatAction"> 
          <property name="catService" ref="catService"></property> 
       </bean> 
   </property> 
</bean>
ログイン後にコピー

上記の内容は Spring の WEB モジュール構成の詳細な説明であると思います。みんなを助けることができる。

関連する推奨事項:

JavaフレームワークにおけるSpring Frameworkの利点

JavaにおけるSpringAopの詳細な説明

Spring Bootを使用してmysqlデータベースを操作する方法

以上がSpringのWEBモジュール構成を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート