先来了解一些基本概念:
1.spring
spring 是一个开源框架,是于2003年兴起的一个轻量级的java开发框架,它是为了解决企业应用开发的复杂行而创建的。框架的主要优势之一是其分层架构,分层架构允许使用者选择使用哪一种组件,同时为j2ee应用程序开发提供集成的框架。Spring使用基本的javaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何java应用都可以从spring中受益,简单来说,spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架。
2.springMVC
springMVC属于SpringFramework的后续产品,已经融合在spring web Flow里面。Spring框架提供了构建web应用程序的全功能MVC模块。使用Spring可插入的MVC架构,可以选择是使用内置的Spring Web框架,还可以是Struts这样的web框架。 Spring MVC设计围绕DispatcherServlet展开的,DispatcherServlet负责将请求派发到特定的handler。通过可配置的handler mappings、view resolution、locale以及theme resolution来处理请求并且转到对应的视图.
下面通过一个实例来介绍Spring和SpringMVC的集成
第一步:引入相关jar包
Spring和SpringMVC本是同一家族虽然说在jar包的结构上发生了很大的变化,但是springMVC的jar包spring是适用的。
第二步:配置文件
1.springAnnotation-core.xml:通过bean注入要调用的接口实现类
<beans> <bean id="springManager" class="com.tgb.web.controller.annotation.SpringManager"></bean> </beans>
<!-- 注解扫描包 --> <context:component-scan base-package="com.tgb.web.controller.annotation" /> <!-- 开启注解 --> <mvc:annotation-driven/> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/"></property> <property name="suffix" value=".jsp"></property> </bean> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="defaultEncoding" value="utf-8" /> <property name="maxUploadSize" value="10485760000" /> <property name="maxInMemorySize" value="40960" /> </bean>
<pre name="code" class="html"><!-- 配置Spring --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath*:config/springAnnotation-servlet.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- 配置SpringMVC --> <servlet> <servlet-name>springMVC</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath*:config/springAnnotation-servlet.xml</param-value> </init-param> --> <!-- <load-on-startup>1</load-on-startup> --> </servlet> <servlet-mapping> <servlet-name>springMVC</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <!-- 设置字符集 --> <filter> <filter-name>encodingFilter</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>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
第三步:实现
1.创建ISpring接口:
package com.tgb.web.controller.annotation; public interface ISpring { public String get(); }
package com.tgb.web.controller.annotation; public class SpringManager implements ISpring { @Override public String get() { System.out.println("------I am springManager----"); return "I am getMethod"; } }
package com.tgb.web.controller.annotation; import javax.annotation.Resource; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class SpringController { @Resource(name="springManager") private ISpring springManager; @RequestMapping("/spring/get") public String get(){ System.out.println(springManager.get()); return "/success"; } }
@controller标记,表示定义一个控制器类,当控制器类接收到一个请求时,会在自己内部寻找一个合适的处理方法类处理请求。
@RequestMapping注解,表示将方法映射到一些请求上,以便让该方法处理那些请求。
总结:
在学习框架的路上,总觉得应该先要丰富自己的理论知识,在理论的基础上多多实践,明白其中的原理之后才能有自己的思想。