SpringMCV執行流程及整合spring
阿新 • • 發佈:2019-01-29
一、Spring整合SpringMVC
@Service用於標註業務層元件
@Controller用於標註控制層元件(如struts中的action)
@Repository用於標註資料訪問元件,即DAO元件
@Component泛指元件,當元件不好歸類的時候,我們可以使用這個註解進行標註。
問題: 若 Spring 的 IOC 容器和 SpringMVC 的 IOC 容器掃描的包有重合的部分, 就會導致有的 bean 會被建立 2 次.
解決:
1. 使 Spring 的 IOC 容器掃描的包和SpringMVC 的 IOC 容器掃描的包沒有重合的部分. (不推薦)
2. 使用 exclude-filter 和 include-filter 子節點來規定只能掃描的註解
在Spring.xml中,用use-default-filters="false" 來指定不按照預設的掃描,按照自己定義的哪些需要掃描的包。include-filter 表示要的包,exclude-filter 表示除了這個包 <context:component-scan base-package="com.atguigu.springmvc" use-default-filters="false"> <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/> <context:include-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice"/> </context:component-scan> 在beans.xml中, <context:component-scan base-package="com.atguigu.springmvc"> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/> <context:exclude-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice"/> </context:component-scan>
3.注:SpringMVC 的 IOC 容器中的 bean 可以來引用 Spring IOC 容器中的 bean,但是 Spring IOC 容器中的 bean 卻不能來引用 SpringMVC IOC 容器中的 bean。
二、springmvc執行流程