後端-框架-SSM框架整合

1. 導入jar包

  1. commons
  2. apache-log4j-1.2.17
  3. mysql-connector-java-5.1.46
  4. mybatis-3.4.6+mybatis-spring-1.3.2
  5. spring-framework-5.1.1

2. 配置文件(/rescources)

  1. web.xml
<?xml version="1.0" encoding="UTF-8" ?>
<web-app>
  <display-name>springMVC</display-name>
  <welcome-file-list>
    <welcome-file>/WEB-INF/jsp/login.jsp</welcome-file>
  </welcome-file-list>
  
  <!-- 讀取spring配置文件 -->
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext-*.xml</param-value>
  </context-param>
  
  <!-- 使用spring框架解決編碼問題 -->
  <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>
  
  <!-- 使用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:springmvc-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>
  
  <!-- 使用log4j記錄日誌信息 -->
  <context-param>
    <param-name>log4jConfigLocation</param-name>
    <param-value>classpath:log4j.properties</param-value>
  </context-param>
  
  <!-- 使用${SMBMS_C11_01.root }動態獲取項目根目錄 -->
  <context-param>
    <param-name>webAppRootKey</param-name>
    <param-value>SMBMS_C11_01.root</param-value>
  </context-param>
  
  <!-- Web容器啓動時自動裝配log4j的配置信息 -->
  <listener>
    <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
  </listener>
  
  <!-- Web容器啓動時自動裝配Spring applicationContext.xml的配置信息 -->
  <listener>
</web-app>
  1. database.properties+log4j.properties
  2. mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
	<settings>
		<setting name="lazyLoadingEnabled" value="false" />
	</settings>
	<typeAliases>
		<package name="cn.smbms.pojo" />
	</typeAliases>
</configuration>
  1. applicationContext-mybatis.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans>
    <!-- 通過設置包名掃描包 -->
    <context:component-scan base-package="cn.smbms.service"/> 
    <context:component-scan base-package="cn.smbms.dao"/>  
    
    <!-- 讀取數據庫配置文件 -->
    <context:property-placeholder location="classpath:database.properties"/>
    
    <!-- JNDI獲取數據源(使用dbcp連接池) -->  
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" scope="singleton">
    		<property name="driverClassName" value="${driver}" />  
			<property name="url" value="${url}" />  
			<property name="username" value="${user}" />  
			<property name="password" value="${password}" />
			<property name="initialSize" value="${initialSize}"/>
			<property name="maxActive" value="${maxActive}"/>
			<property name="maxIdle" value="${maxIdle}"/>
			<property name="minIdle" value="${minIdle}"/>
			<property name="maxWait" value="${maxWait}"/>
			<property name="removeAbandonedTimeout" value="${removeAbandonedTimeout}"/>
			<property name="removeAbandoned" value="${removeAbandoned}"/>
			<!-- sql 心跳 -->
			<property name= "testWhileIdle" value="true"/>
			<property name= "testOnBorrow" value="false"/>
			<property name= "testOnReturn" value="false"/>
			<property name= "validationQuery" value="select 1"/>
			<property name= "timeBetweenEvictionRunsMillis" value="60000"/>
			<property name= "numTestsPerEvictionRun" value="${maxActive}"/>
    </bean>
    
    <!-- 事務管理 -->
   	<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
   		<property name="dataSource" ref="dataSource"/>
   	</bean> 
   	
   	<!-- 配置mybitas SqlSessionFactoryBean-->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    	<property name="dataSource" ref="dataSource"/>
    	<property name="configLocation" value="classpath:mybatis-config.xml"/>
    </bean>
    
   	<!-- AOP 事務處理 開始 -->    
	<aop:aspectj-autoproxy />
	<aop:config  proxy-target-class="true">
		<aop:pointcut expression="execution(* *cn.smbms.service..*(..))" id="transService"/>
		<aop:advisor pointcut-ref="transService" advice-ref="txAdvice" />
	</aop:config> 
	<tx:advice id="txAdvice" transaction-manager="transactionManager">  
	    <tx:attributes>  
	       <tx:method name="smbms*"  propagation="REQUIRED" rollback-for="Exception"  />
	    </tx:attributes>  
	</tx:advice> 
	<!-- AOP 事務處理 結束 -->
	
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">  
         <property name="basePackage" value="cn.smbms.dao" />  
    </bean>
</beans>
  1. springmvc-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans>
        
	<context:component-scan base-package="cn.smbms.controller"/>  
	
	<!-- 進行日期格式轉換 -->
	<bean id="myConvertionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
		<property name="converters">
			<list>
				<bean class="cn.smbms.tools.StringToDateFormat">
					<constructor-arg type="java.lang.String" value="yyyy-MM-dd"/>
				</bean>
			</list>
		</property>
	</bean>
	  
    <mvc:annotation-driven conversion-service="myConvertionService">
    	<mvc:message-converters>
    		<bean class="org.springframework.http.converter.StringHttpMessageConverter">
    			<property name="supportedMediaTypes">
    				<list>
    					<value>application/json;charset=UTF-8</value>
    				</list>
    			</property>
    		</bean>
    		<bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
    			<property name="supportedMediaTypes">
    				<list>
    					<value>text/html;charset=UTF-8</value>
    					<value>application/json</value>
    				</list>
    			</property>
				<property name="features">
    				<list>
    					<value>WriteDateUseDateFormat</value>
    				</list>
    			</property>
    		</bean>
    	</mvc:message-converters>
    </mvc:annotation-driven>
    
    <mvc:resources mapping="/statics/**" location="/statics/" />
    
    <!-- 設置攔截器 -->
    <mvc:interceptors>
    	<mvc:interceptor>
    		<mvc:mapping path="/sys/**"/><!-- 只要是/sys/**的請求,使用攔截器進行攔截 -->
    		<bean class="cn.smbms.interceptor.SysInterceptor"></bean>
    	</mvc:interceptor>
    </mvc:interceptors>
	
	<!-- 多視圖解析器 -->
	<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
		<property name="favorParameter" value="true"/>
		<property name="mediaTypes">
			<map>
				<entry key="html" value="text/html;charset=UTF-8"/>
				<entry key="json" value="application/json;charset=UTF-8"/>
				<entry key="xml" value="application/xml;charset=UTF-8"/>
			</map>
		</property>
		<property name="viewResolvers">
			<list>
				<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" >
					<property name="prefix" value="/WEB-INF/jsp/"/>
					<property name="suffix" value=".jsp"/>
				</bean>
			</list>
		</property>
	</bean>
	
	<!--  全局異常處理 -->
	<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
		<property name="exceptionMappings">
			<props>
				<prop key="java.lang.RuntimeException">error</prop>
			</props>
		</property>
	</bean>
	
	<!-- 實現文件上傳 -->
	<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
		<property name="maxUploadSize" value="5000000"></property>
		<property name="defaultEncoding" value="UTF-8"></property>
	</bean>
	
</beans>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章