1. 程式人生 > >springmvc(五)整合阿里 druid資料庫連線池和事務等配置,整合mybatis

springmvc(五)整合阿里 druid資料庫連線池和事務等配置,整合mybatis

感謝我們的小領導,他在研究,我們在套用,他走了以後再沒有完善過,一直沿用至今。如果看這裡的朋友有什麼需要整合進來的,不吝賜教,謝謝各位了。

<?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:aop="http://www.springframework.org/schema/aop"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
                        http://www.springframework.org/schema/beans/spring-beans.xsd
                        http://www.springframework.org/schema/aop
                        http://www.springframework.org/schema/aop/spring-aop.xsd
                        http://www.springframework.org/schema/context
                        http://www.springframework.org/schema/context/spring-context-4.0.xsd
                        http://www.springframework.org/schema/mvc
                        http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
                        http://www.springframework.org/schema/tx
                        http://www.springframework.org/schema/tx/spring-tx.xsd
                        ">
    <!-- 如下配置中,如果配置了include-filter type=annotation 那麼只有在其中配置的註解會被掃描,前提是-->
    <context:component-scan base-package="com.net"></context:component-scan>
    <bean
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/pages/"></property>
        <property name="suffix" value=""></property>
    </bean>
    <!-- 只有配置瞭如下標籤,@RequestMapping中的produces才會起作用,跟其註冊的訊息體轉換類有關 -->
    <mvc:annotation-driven>
        <mvc:message-converters register-defaults="true">
            <bean
                class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
                <property name="supportedMediaTypes" value="application/json" />
            </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>
    <mvc:default-servlet-handler />
    <!-- location中的內容可以寫多個地址,比如可以這麼寫location="/,/**"前一個表示在根目錄查詢 -->
    <mvc:resources mapping="/upload/**" location="/upload/,/CKEditorUploadImage/" />
    <mvc:resources mapping="/images/**" location="/WEB-INF/images/" />
    <mvc:resources mapping="/css/**" location="/WEB-INF/css/" />
    <mvc:resources mapping="/plugins/**" location="/WEB-INF/plugins/" />
    <mvc:resources mapping="/js/**" location="/WEB-INF/js/" />
    <mvc:resources mapping="/*.html" location="/WEB-INF/static_pages/" />
    <mvc:resources mapping="/*.xml" location="/WEB-INF/" />
    <mvc:interceptors>
        <bean class="com.net.intercpter.MyInterceptor"></bean>
    </mvc:interceptors>
    
    <bean name="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">   
        <property name="dataSource" ref="dataSource"></property>
     </bean>
    <!-- 99框架賦值寫法有問題,web請求可以注入屬性檔案的值,程式碼測試無法注入,導致junit測試Dao層報載入配置檔案出錯 -->
    <bean id="propertyConfigurer"
        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
            <list>
                <value>classpath:dbconfig.properties</value>
            </list>
        </property>
    </bean>
    <!-- 阿里 druid資料庫連線池 -->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
        destroy-method="close">
        <!-- 資料庫基本資訊配置 -->
        <property name="url" value="${url}" />
        <property name="username" value="${username}" />
        <property name="password" value="${password}" />
        <property name="driverClassName" value="${driverClassName}" />
        <property name="filters" value="${filters}" />
        <!-- 最大併發連線數 -->
        <property name="maxActive" value="${maxActive}" />
        <!-- 初始化連線數量 -->
        <property name="initialSize" value="${initialSize}" />
        <!-- 配置獲取連線等待超時的時間 -->
        <property name="maxWait" value="${maxWait}" />
        <!-- 最小空閒連線數 -->
        <property name="minIdle" value="${minIdle}" />
        <!-- 配置間隔多久才進行一次檢測,檢測需要關閉的空閒連線,單位是毫秒 -->
        <property name="timeBetweenEvictionRunsMillis" value="${timeBetweenEvictionRunsMillis}" />
        <!-- 配置一個連線在池中最小生存的時間,單位是毫秒 -->
        <property name="minEvictableIdleTimeMillis" value="${minEvictableIdleTimeMillis}" />
        <property name="validationQuery" value="${validationQuery}" />
        <property name="testWhileIdle" value="${testWhileIdle}" />
        <property name="testOnBorrow" value="${testOnBorrow}" />
        <property name="testOnReturn" value="${testOnReturn}" />
        <property name="maxOpenPreparedStatements" value="${maxOpenPreparedStatements}" />
        <!-- 開啟removeAbandoned功能 -->
        <property name="removeAbandoned" value="${removeAbandoned}" />
        <!-- 1800秒,也就是30分鐘 -->
        <property name="removeAbandonedTimeout" value="${removeAbandonedTimeout}" />
        <!-- 關閉abanded連線時輸出錯誤日誌 -->
        <property name="logAbandoned" value="${logAbandoned}" />
    </bean>
    
    <tx:advice id="txAdvice" transaction-manager="transactionManager">
        <tx:attributes>
            <tx:method name="delete*" propagation="REQUIRED" read-only="false"
                       rollback-for="java.lang.Exception"/>
            <tx:method name="insert*" propagation="REQUIRED" read-only="false"
                       rollback-for="java.lang.Exception" />
            <tx:method name="update*" propagation="REQUIRED" read-only="false"
                       rollback-for="java.lang.Exception" />
            <tx:method name="save*" propagation="REQUIRED" read-only="false"
                       rollback-for="java.lang.Exception" />
        </tx:attributes>
    </tx:advice>
    
    <aop:aspectj-autoproxy proxy-target-class="true"/>
    
    <!-- 事物處理 -->
    <aop:config>
        <aop:pointcut id="pc" expression="execution(* com.net.crud.service..*(..))" />   <!--目錄結構,該目錄下類註解:@Service("xxxService")-->
        <aop:advisor pointcut-ref="pc" advice-ref="txAdvice" />
    </aop:config>
    
    <!-- mybatis配置 -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="configLocation" value="classpath:mybatis/mybatis-config.xml"></property>
        <!-- mapper掃描 -->
        <property name="mapperLocations" value="classpath:mybatis/*/*.xml"></property>
    </bean>
    
    <bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
        <constructor-arg ref="sqlSessionFactory" />
    </bean>
    
    <!-- 自定義上傳攔截,如最大上傳值及最小上傳值 單個檔案4M,解決原始檔案上傳和spring上傳request被解析的問題-->
        <!-- url中帶有excludeUrls的http請求就不會被multipartResolver先解析-->
    <bean id="multipartResolver" class="com.net.resolver.MyMultipartResolver">
        <property name="excludeUrls">
            <list>
                <value>ckupload</value>
                <value>UEditorConfig</value>
                <!--
                    使用springmvc的檔案上傳實現了,所有暫時不需要轉換request,
                    疑問是不知道百度編輯器的jar中是否有檔案上傳的程式碼,因為看到
                    有檔案上傳需要的jar包,而且也沒有得到config.json中配置的檔案格式名稱
                -->
                <!--                <value>UEditorUploadImage</value>-->
            </list>
        </property>
        <!-- 指定所上傳檔案的總大小不能超過16MB。注意maxUploadSize屬性的限制不是針對單個檔案,而是所有檔案的容量之和 -->
        <property name="maxUploadSize">
            <value>647772160</value>
        </property>
        <property name="maxInMemorySize">
            <value>4096</value>
        </property>
        <property name="defaultEncoding">
            <value>utf-8</value>
        </property>
    </bean>
    

</beans>

檔案結構:

mybatis配置

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD SQL Map Config 3.0//EN"  
    "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

    <!-- 配置實體類的別名,在實體類對應的mapper.xml中返回的型別就可以寫類名,而不需要全類名了 -->
    <typeAliases>
        <package name="com.net.crud.modal" />
    </typeAliases>
</configuration>


相關推薦

springmvc整合阿里 druid資料庫連線事務配置整合mybatis

感謝我們的小領導,他在研究,我們在套用,他走了以後再沒有完善過,一直沿用至今。如果看這裡的朋友有什麼需要整合進來的,不吝賜教,謝謝各位了。 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http:

springboot 整合阿里 Druid 資料庫連線

一,Druid是什麼? Druid是Java語言中最好的資料庫連線池。Druid能夠提供強大的監控和擴充套件功能。 二, 在哪裡下載druid 三, 怎麼獲取Druid的原始碼 Druid是一個開源專案,原始碼託管在github上,原始碼倉庫

springBoot(八)整合整合阿里druid資料庫連線

         當時是基於C3P0處理資料庫,然後偶發性出現連線超時,然後加上需要檢視連線次數以及訪問次數,我就想到採用druid資料庫連線池,話不多說,先上程式碼 其實下面的部分出於演示,用硬編碼,其實完全可以通過配置屬性,來進行動態改變,至於SpringCloud

Spring Boot 整合 Mybatisdruid 資料庫連線 以及 分頁配置

MyBatis 是一款優秀的持久層框架,它支援定製化 SQL、儲存過程以及高階對映,目前很大一部分網際網路、軟體公司都在使用這套框架 下來來之後,我們主要關注幾個檔案 配置檔案:generator.properties 主要是資料庫的相關配置,以及檔案生成的根路徑 generator.jdbc.drive

Spring學習總結21——Spring整合阿里巴巴資料庫連線DruidDataSource配置及其常見問題彙總

一、參考配置如下    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-          

阿里Druid資料庫連線配置解釋

#阿里資料庫連線池Druid配置 # 初始化連線大小 spring.datasource.druid.initial-size=20 # 最小空閒連線數 spring.datasource.druid.minIdle=20 # 最大連線數 spring.datasource.druid.maxAct

阿里DRUID資料庫連線配置

DRUID介紹     Druid是阿里實現的一個開源資料庫連線池,在功能、效能、擴充套件性方面,都超過其他資料庫連線池,包括DBCP、C3P0、BoneCP、Proxool、JBoss DataSource。同時Druid還提供了封裝的sql監控,u

引入阿里Druid資料庫連線(maven ssm框架)

Druid Druid是阿里巴巴開源平臺上的一個專案,整個專案由資料庫連線池、外掛框架和SQL解析器組成。該專案主要是為了擴充套件JDBC的一些限制,可以讓程式設計師實現一些特殊的需求,比如向金鑰服務請求憑證、統計SQL資訊、SQL效能收集、SQL注入檢查、S

Druid資料庫連線Druid內建監控系統簡單介紹

Druid簡介 Druid是阿里巴巴的一個開源資料庫連線池,基於Apache 2.0協議,可以免費自由使用。但它不僅僅是一個數據庫連線池,它還包含一個ProxyDriver,一系列內建的JDBC元件庫,一個SQL Parser。Druid能夠提供強大的監控和擴充套件功能。但D

封裝一個數據庫連線工具類(connection與threadlocal與資料庫連線事務)

package com.itheima.utils; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.St

SpringMVC資料驗證

SpringMVC(五)資料驗證 引數轉換出來後,緊跟著往往是需要驗證引數的合法性,因此SpringMVC也提供餓了驗證引數的機制。一方面,SpringMVC支援JSR-303註解驗證,在預設情況看下Spring Boot會引入關於Hibernate Validator機制來支援JS

CentOS 基本指令——安裝部署MySQL資料庫 & root使用者密碼重置

首先使用wget命令下載MySQL rpm 包,使用如下命令進行解壓,安裝MySQL。 wget http://repo.mysql.com/mysql80-community-release-el7-1.noarch.rpm rpm -ivh mysql80-com

Net Core 學習入門----------使用EF連結資料庫

由於netcore2.0集成了Ef,所以我們使用Ef的時候配置一下就行了。1,配置資料庫連結appsetting.json{ "Logging": { "IncludeScopes": false, "LogLevel": {

JVM調優系列:JVM常用調試參數工具

框架 break 統計 進程 -i 內存 文件的 /etc/ action 轉自:http://blog.csdn.net/opensure/article/details/46715769 JVM常用調試參數: –verbose:gc在虛擬機發生內存

星雲鏈智能合約開發:安裝Chrome錢包插件web錢包及其使用

星雲鏈智能合約開發 安裝星雲鏈Chrome錢包插件 安裝星雲鏈web錢包 安裝Chrome瀏覽器錢包插件 下載地址:https://github.com/ChengOrangeJu/WebExtensionWallet 第一步:clone項目或者下載zip包到本地 第二步:安裝 打開Chrom

資料庫連線學習筆記:原理介紹+常用連線介紹

什麼是連線池 資料庫連線池負責分配、管理和釋放資料庫連線,它允許應用程式重複使用一個現有的資料庫連線,而不是再重新建立一個。 為什麼要使用連線池  資料庫連線是一種關鍵的有限的昂貴的資源,這一點在多使用者的網頁應用程式中體現得尤為突出。  一個數據庫連線物件均對應

深度學習方法:卷積神經網路CNN經典模型整理LenetAlexnetGooglenetVGGDeep Residual Learning

歡迎轉載,轉載請註明:本文出自Bin的專欄blog.csdn.net/xbinworld。  技術交流QQ群:433250724,歡迎對演算法、技術感興趣的同學加入。 關於卷積神經網路CNN,網路和文獻中有非常多的資料,我在工作/研究中也用了好一段時間各種常見的model了,就想著

JAVA虛擬機器垃圾收集器與物件分配回收策略

可達性分析演算法的效率 可達性分析中從GC Roots節點找引用鏈,可作為GC Roots的節點主要在全域性性的引用(常量或類靜態屬性)與執行上下文(棧幀中的本地變量表),如果要逐個檢查,必然會消耗很多時間。 另外,可達性分析對執行時間的敏感還體現在GC停頓上,

springcloud專案搭建----使用Spring aop完成統一日誌異常管理

專案地址:https://gitee.com/lwydyby/springcloud-adplatform 注:由於專案初期搭建,暫未使用springcloud-sleuth進行追蹤分析,而是使用AOP進行統一的日誌記錄 1.編寫切面類 1).Disa

Speex手冊——Speex編解碼器API(2)語音處理API(1)

5.4  模式查詢         Speex模式查詢類似於speex_encoder_ctl和speex_decoder_ctl函式呼叫。因為模式是隻讀的,所以僅能獲取一個特別模式的資訊。函式呼叫如下:                 void speex_mode_qu