SpringMVC +Spring+ SpringJDBC整合實例。文件結(jié)構(gòu):

SpringMVC +Spring+ SpringJDBC整合實例。文件結(jié)構(gòu):

1)web.xml的配置:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<display-name></display-name>
<welcome-file-list>
   <welcome-file>index.jsp</welcome-file>
</welcome-file-list>


<listener>
   <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
</listener>

<servlet>
   <servlet-name>spring</servlet-name>
   <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
   <init-param>
       <param-name>contextConfigLocation</param-name>
       <param-value>classpath:*applicationContext.xml</param-value>
   </init-param>
   <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
   <servlet-name>spring</servlet-name>
   <url-pattern>*.do</url-pattern>
</servlet-mapping>
<!-- 統(tǒng)一字符編碼為UTF-8 -->
<filter>
   <filter-name>setcharacter</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>
</filter>
<filter-mapping>
   <filter-name>setcharacter</filter-name>
</filter-mapping>
</web-app>

2)applicationContext.xml的配置:

<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans 
      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
      http://www.springframework.org/schema/context 
      http://www.springframework.org/schema/context/spring-context-3.0.xsd
      http://www.springframework.org/schema/tx 
      http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
      http://www.springframework.org/schema/mvc
      http://www.springframework.org/schema/mvc/spring-mvc.xsd
      http://www.springframework.org/schema/aop
      http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">

<context:property-placeholder location="classpath:jdbc.properties" />

<!-- 掃描類包,將標注Spring注解的類自動轉(zhuǎn)化Bean,同時完成Bean的注入 -->
<context:component-scan base-package="com.controller" />
<context:component-scan base-package="com.service" />
<context:component-scan base-package="com.dao" />

<!-- 配置數(shù)據(jù)源 destroy-method="close" -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
   <property name="driverClass">
       <value>${jdbc.driverClassName}</value>
   </property>
   <property name="jdbcUrl">
       <value>${jdbc.url}</value>
   </property>
   <property name="user">
       <value>${jdbc.username}</value>
   </property>
   <property name="password">
       <value>${jdbc.password}</value>
   </property>
   <!--連接池中保留的最小連接數(shù)。 -->
   <property name="minPoolSize">
       <value>5</value>
   </property>
   <!--連接池中保留的最大連接數(shù)。Default: 15 -->
   <property name="maxPoolSize">
       <value>30</value>
   </property>
   <!--初始化時獲取的連接數(shù),取值應(yīng)在minPoolSize與maxPoolSize之間。Default: 3 -->
   <property name="initialPoolSize">
       <value>10</value>
   </property>
   <!--最大空閑時間,60秒內(nèi)未使用則連接被丟棄。若為0則永不丟棄。Default: 0 -->
   <property name="maxIdleTime">
       <value>60</value>
   </property>
   <!--當連接池中的連接耗盡的時候c3p0一次同時獲取的連接數(shù)。Default: 3 -->
   <property name="acquireIncrement">
       <value>5</value>
   </property>
   <!--JDBC的標準參數(shù),用以控制數(shù)據(jù)源內(nèi)加載的PreparedStatements數(shù)量。但由于預(yù)緩存的statements 屬于單個connection而不是整個連接池。所以設(shè)置這個參數(shù)需要考慮到多方面的因素。 
   如果maxStatements與maxStatementsPerConnection均為0,則緩存被關(guān)閉。Default: 0 -->
   <property name="maxStatements">
       <value>0</value>
   </property>
   <!--每60秒檢查所有連接池中的空閑連接。Default: 0 -->
   <property name="idleConnectionTestPeriod">
       <value>60</value>
   </property>
   <!--定義在從數(shù)據(jù)庫獲取新連接失敗后重復(fù)嘗試的次數(shù)。Default: 30 -->
   <property name="acquireRetryAttempts">
       <value>30</value>
   </property>
   <!--獲取連接失敗將會引起所有等待連接池來獲取連接的線程拋出異常。但是數(shù)據(jù)源仍有效 保留,并在下次調(diào)用getConnection()的時候繼續(xù)嘗試獲取連接。如果設(shè)為true,那么在嘗試 
   獲取連接失敗后該數(shù)據(jù)源將申明已斷開并永久關(guān)閉。Default: false -->
   <property name="breakAfterAcquireFailure">
       <value>true</value>
   </property>
   <!--因性能消耗大請只在需要的時候使用它。如果設(shè)為true那么在每個connection提交的 時候都將校驗其有效性。建議使用idleConnectionTestPeriod或automaticTestTable 
   等方法來提升連接測試的性能。Default: false -->
   <property name="testConnectionOnCheckout">
       <value>false</value>
   </property>

   <property name="automaticTestTable">
       <value>true</value>
   </property>
</bean>

<!-- 配置Jdbc模板 -->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
   <property name="dataSource" ref="dataSource"></property>
</bean>

<!-- 配置事務(wù)管理器 -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager"
p:dataSource-ref="dataSource" />

<!-- 通過AOP配置提供事務(wù)增強,讓service包下所有Bean的所有方法擁有事務(wù) -->
<aop:config proxy-target-class="true">
   <aop:pointcut id="serviceMethod" expression=" execution(* com.service..*(..))" />
   <aop:advisor pointcut-ref="serviceMethod" advice-ref="txAdvice" />
</aop:config>
<tx:advice id="txAdvice" transaction-manager="transactionManager">
   <tx:attributes>
       <tx:method name="*" />
   </tx:attributes>
</tx:advice>

<!-- 啟動Spring MVC的注解功能,完成請求和注解POJO的映射 -->
<bean
class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />


<!-- 配置視圖解析器,將ModelAndView及字符串解析為具體的頁面 -->
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:viewClass="org.springframework.web.servlet.view.JstlView" p:prefix="/WEB-INF/user/"
p:suffix=".jsp" />

<!-- <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"> 
<property name="interceptors"> <list> <ref bean="loginInterceptor"/> </list> 
</property> </bean> <bean id="loginInterceptor" class="com.interceptor.LoginInterceptor"> 
</bean> -->
<!-- <mvc:interceptors> <bean class="com.interceptor.LoginInterceptor"> 
</bean> </mvc:interceptors> -->

</beans>

3)jdbc.properties的配置:

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/sssjdbc_test
jdbc.username=root
jdbc.password=123456

4)log4j.properties的配置:

root level

log4j.rootLogger=ERROR, stdout, A2
log4j.logger.gnnt=DEBUG
log4j.logger.org.springframework=WARN

console config

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%-5p] %d{HH:mm:ss} [%c{1}] - %m%n

file config

log4j.appender.A2=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A2.file=../logs/issue_mgr.log
log4j.appender.A2.DatePattern='.'yyyy-MM-dd
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=[%-5p] %d{HH:mm:ss} [%c{1}] - %m%n

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容