>Java >java지도 시간 >Spring의 WEB 모듈 구성에 대한 자세한 설명

Spring의 WEB 모듈 구성에 대한 자세한 설명

小云云
小云云원래의
2017-12-05 11:34:352137검색

Spring은 비즈니스 로직 계층과 다른 계층 간의 느슨한 결합 문제를 해결하는 오픈 소스 디자인 수준 프레임워크이므로 전체 시스템 애플리케이션 전반에 걸쳐 인터페이스 지향 프로그래밍 아이디어를 통합합니다. Spring은 2003년에 등장하여 Rod Johnson이 만든 경량 Java 개발 프레임워크입니다. 간단히 말해서 Spring은 계층화된 JavaSE/EE풀 스택(원스톱) 경량 오픈 소스 프레임워크입니다. 이 기사에서는 주로 Spring의 WEB 모듈 구성에 대한 자세한 설명을 소개하고 Spring의 상속 방법, 프록시 방법 및 관련 세부 구성 코드를 간략하게 소개합니다. 여기에는 특정 참조 값이 있으며 필요한 친구가 이에 대해 배울 수 있습니다.

Spring 프레임워크의 7가지 주요 모듈에 대한 간략한 소개

Spring의 MVC 모듈 코드에 대한 자세한 설명

Spring의 WEB 모듈은 Struts1, Struts2, JSF 등과 같은 웹 프레임워크를 통합하는 데 사용됩니다. .

Integrate Struts1

Inheritance method

Spring 프레임워크는 Struts1 Action을 지원하기 위해 ActionSupport 클래스를 제공합니다. ActionSupport를 상속받은 후 Spring의 BeanFactory를 얻을 수 있으며 다양한 Spring 컨테이너에서 다양한 리소스를 얻을 수 있습니다. 지연 로딩 예외가 발생하는 것을 방지하기 위해 Spring이 결합되어 있으며 Action은 Spring에서 관리되지 않으므로 Spring의 AOP 및 IoC 기능을 사용할 수 없습니다. 이러한 결함을 피할 수 있습니다

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"); 
   } 
}

Spring과 결합하면 ICatService 속성이 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>

예를 들어, 사전 메서드 인터셉터와 사후 반환을 구성합니다. CatAction

<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>

Integrate Struts 2

Spring용 인터셉터에는 struts2-spring-2.011.jar 패키지

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"); 
   } 
}

strut xml 구성

이 필요합니다.

일반 구성 외에 , struts.objectFactory라는 상수를 추가하고 값을 spring로 설정하여 Action이 Spring에 의해 생성되었음을 나타내야 합니다. 그런 다음 7e799be3545522a0b5d454493d321d80의 클래스 속성을 catAction으로 변경합니다. Struts2는 Spring에서 catAction이라는 Bean을 찾습니다.

<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>

위 내용은 Spring의 WEB 모듈 구성에 대한 자세한 설명입니다. 모두에게 도움이 될 수 있습니다.

관련 권장 사항:

Java 프레임워크에서 Spring 프레임워크의 장점

Java에서 SpringAop에 대한 자세한 설명

Spring 부트를 사용하여 mysql 데이터베이스를 작동하는 방법

위 내용은 Spring의 WEB 모듈 구성에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.