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"); } }
일반 구성 외에 , struts.objectFactory라는 상수를 추가하고 값을 spring로 설정하여 Action이 Spring에 의해 생성되었음을 나타내야 합니다. 그런 다음
<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>
Java 프레임워크에서 Spring 프레임워크의 장점
Java에서 SpringAop에 대한 자세한 설명
Spring 부트를 사용하여 mysql 데이터베이스를 작동하는 방법
위 내용은 Spring의 WEB 모듈 구성에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!