Spring配置文件(spring-base.xml或spring-mvc.xml)


1.啟用springMVC的注解配置和引入DispatcherServlet

2    <mvc:annotation-driven/>    <!-- 啟用控制層的注解配置模式 ,寫入這一個,idea會自動彈出幾個sping-mvc的命名空間供我們選擇,我們選擇以mvc結尾的命名空間即可--><!--啟用注解配置,啟用不啟用都可以-->
3    <mvc:default-servlet-handler/>  <!-- 使用之前配置的DispatcherServlet類處理請求 -->
4  

 2.引入ModelAndView類,並配置掃描前綴和掃描后綴

1 <!--定義此類即引入了Spring中的ModelAndView類, 定義一個頁面資源解析的處理類,該類的主要功能是匹配路徑的前綴與后綴 -->
2     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
3        <property name="prefix" value="/WEB-INF/pages" />
4         <property name="suffix" value=".jsp" />
5     </bean>

 3.引入aop相關的命名空間

1 xmlns:aop="http://www.springframework.org/schema/aop"
2 http://www.springframework.org/schema/aop
3 https://www.springframework.org/schema/aop/spring-aop.xsd">

4.為保存在WEB-INF下所有的靜態資源設置映射訪問路徑

1 <!-- 為保存在WEB-INF下所有的靜態資源設置映射訪問路徑 -->
2     <mvc:resources mapping="/mvcjs/**" location="/WEB-INF/js/"/>
3     <mvc:resources mapping="/mvccss/**" location="/WEB-INF/css/"/>
4     <mvc:resources mapping="/mvcimages/**" location="/WEB-INF/images/"/>
<!--舉個例子,如果/WEB-INF/js/photo.jpg,需要引用此圖片的時候直接用<img src="mvcjs/photo.jpg"即可>-->

5.加載資源文件的配置

1 假設文件目錄為src/main/resources/com.ytinf.message包下有兩個資源文件message.properties和pages.properties,配置方法如下
<!-- 進行所有要加載的“*.properties”配置文件的路徑定義,直接通過CLASSPATH加載 --> 2 <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"> 3 <property name="basenames"> 4 <array> <!-- basename是只包含有包名稱和文件名稱的組成,不包含有后綴 --> 5 <value>com.ytinf.message.message</value> 6 <value>com.ytinf.message.pages</value> 7 </array> 8 </property> 9 </bean>

6.進行上傳文件的設置

 1 <!-- 進行上傳文件組件的相關配置,配置的是上傳文件的解析處理類 -->
 2     <bean id="multipartResolver"
 3           class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
 4         <!-- 設置整體上傳文件的最大數據量,本次允許上傳最大文件量為5M,下面的單位都是字節(b) ,所以需要將其他單位的都轉換成字節-->
 5         <property name="maxUploadSize" value="5242880"/>
 6         <!-- 設置單個上傳文件的最大數據量,本次允許上傳最大文件量為2M -->
 7         <property name="maxUploadSizePerFile" value="253952"/>
 8         <!-- 允許占用的最大內存量,本次設置為10M -->
 9         <property name="maxInMemorySize" value="10485760"/>
10         <!-- 設置上傳文件的臨時保存目錄,該目錄的內容在每一次請求之后都需要清空 -->
11         <property name="uploadTempDir" value="/tmp"/>
12     </bean>
注1:對上傳組件設置完成之后應該在設置一個上傳失敗跳轉頁面,舉個例子設置上傳文件最大5M,結果用戶傳了一個6M的文件,這時就需要跳轉,下面是設置錯誤頁

  <!-- 定義一個全局的跳轉路徑配置 -->
  <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
    <property name="exceptionMappings"> <!-- 進行異常映射的處理配置 -->
      <props>
        <prop key="org.springframework.web.multipart.MaxUploadSizeExceededException">
          plugins/errors<!--再加上前面配置的WEB-INF/pages/前綴和.jsp后綴,這時會自動匹配到WEB-INF/pages/plugins/errors.jsp路徑上-->    

        </prop>
      </props>
    </property>
  </bean>

  注2:設置完成異常跳轉路徑之后,需要設置一個文件保存目錄,直接繼承老師上課講的那個類,然后調用其中的upload方法即可上傳。如果頁面需要展示此圖片,則在action方法中就需要將文件名稱傳遞過去,然后在jsp頁面中接收(img src=上傳目錄/文件名稱)。

  注3:設置完成上傳目錄之后,這時如果上傳文件過大會直接搞垮掉,此時的上傳控制實際上並沒有生效,這時Tomcat自身的設置問題,如果要想解決這個限制就必須修改tomcat的server.xml配置文件,在<Connector>標簽中加入maxSwallowSize="-1"即可。

強調:如果某個頁面需要上傳,則需要提供有輸入表單,則此表單一定要封裝 enctype="multipart/form-data"

7.(1)進行aop切入點的配置及相關處理類的配置*(這種配置方式有點麻煩)

1 <context:component-scan base-package="com.ytinf"/>
2     <bean id="serviceAdvice" class="com.ytinf.aop.ServiceAdvice"/>  <!-- 輔助處理類,用戶自定義的類,這個類中有五個方法分別為beforeHandle(),afterHandle(),returnHandle(),throwHandle()和aroundHandle()-->

  <aop:config> <!-- 進行AOP的具體配置 前置通知,后置通知,返回通知,異常通知,環繞通知-->
    <aop:pointcut id="commonPointcut" expression="execution(public * com.ytinf.service..*.*(..))"/>
    <aop:aspect ref="serviceAdvice"> <!-- 進行代碼的織入處理 -->
    <aop:before method="beforeHandle" arg-names="vo" pointcut="execution(public * com.ytinf.service..*.*(..)) and args(vo)"/>
    <aop:after method="afterHandle" pointcut-ref="commonPointcut"/>
    <aop:after-returning method="returnHandle" pointcut-ref="commonPointcut" returning="resval" arg-names="resval"/>
    <aop:after-throwing method="throwHandle" pointcut-ref="commonPointcut" throwing="e" arg-names="e"/>

    <aop:around method="aroundHandle" pointcut-ref="commonPointcut"/>
    </aop:aspect>
  </aop:config>

8.(2)基於Annotation實現AOP配置,要想使用Annotation配置,首先需要啟用注解支持(然后在ServiceAdvice類上面用@Aspect注解,在前置方法上用@Before(value="AspectJ表達式",argNames="參數名稱")注解,在后置上用@After注解,@AfterThrowing(value="AspectJ表達式",throwing="e",argNames="e),@AfterReturning(value="AspectJ表達式",returning="res",argNames="res"),@Around(value="AspectJ表達式"))

<!-- 進行掃描包的設置,如果要設置多個包,則可以使用“,”拆分 -->
    <context:component-scan base-package="com.ytinf"/>
    <aop:aspectj-autoproxy/>    <!-- 啟用Annotation注解支持 -->

9.配置掃描包時,千萬不能重復掃描(配置掃描包一共三種,在spring-mvc.xml文件中只配置控制層的掃描包,spring-base.xml文件中只配置業務層和數據層的掃描包)

1 <context:component-scan base-package="com.ytinf.action"/><!--設置控制層的掃描包-->

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM