一、新建一個Maven項目,建立父項目。html
二、建立子項目模塊java
三、建立javaWeb項目mysql
四、建立後的項目目錄結構web
五、Maven文件配置spring
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <!--聲明項目描述符遵循哪個POM模型版本。模型自己的版本不多改變,雖然如此,但它仍然是必不可少的,這是爲了當Maven引入了新的特性或者其餘模型變動的時候,確保穩定性。--> <modelVersion>4.0.0</modelVersion> <!--項目的全球惟一標識符,一般使用全限定的包名區分該項目和其餘項目。而且構建時生成的路徑也是由今生成, 如com.mycompany.app生成的相對路徑爲:/com/mycompany/app--> <groupId>com.lovo</groupId> <!-- 構件的標識符,它和group ID一塊兒惟一標識一個構件。換句話說,你不能有兩個不一樣的項目擁有一樣的artifact ID和groupID; 在某個 特定的group ID下,artifact ID也必須是惟一的。構件是項目產生的或使用的一個東西,Maven爲項目產生的構件包括:JARs,源 碼,二進制發佈和WARs等。--> <artifactId>parent</artifactId> <!--項目當前版本,格式爲:主版本.次版本.增量版本-限定版本號--> <version>0.0.1-SNAPSHOT</version> <!--項目產生的構件類型,例如jar、war、ear、pom。插件能夠建立他們本身的構件類型,因此前面列的不是所有構件類型--> <packaging>pom</packaging> <!--項目的名稱, Maven產生的文檔用--> <name>${project.artifactId}</name> <!-- 描述 --> <description>Spring SpringMVC Mybatis Project</description> <!-- compiler插件能解決: 1:maven 2.1默認用jdk 1.3來編譯,maven 3 貌似是用jdk 1.5,若是項目用的jdk 1.6也會有問題,compiler插件能夠指定JDK版本爲1.6。 2:windows默認使用GBK編碼,java項目常常編碼爲utf8,也須要在compiler插件中指出,不然中文亂碼可能會出現編譯錯誤。 --> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <!-- 設置JDK版本1.8 --> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build> <!--模塊(有時稱做子項目) 被構建成項目的一部分。列出的每一個模塊元素是指向該模塊的目錄的相對路徑--> <modules> <module>soncore</module> <module>sonstore</module> <module>sonutils</module> <module>admin</module> </modules> <properties> <!-- Maven 編譯使用的字符集編碼 --> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <!-- jar包版本 --> <slf4j.version>1.7.12</slf4j.version> </properties> <dependencies> <!-- slf4j日誌包 --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>${slf4j.version}</version> </dependency> </dependencies> </project>
<?xml version="1.0"?> <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <!--聲明項目描述符遵循哪個POM模型版本。模型自己的版本不多改變,雖然如此,但它仍然是必不可少的,這是爲了當Maven引入了新的特性或者其餘模型變動的時候,確保穩定性。--> <modelVersion>4.0.0</modelVersion> <!--父項目的座標。若是項目中沒有規定某個元素的值,那麼父項目中的對應值即爲項目的默認值。 座標包括group ID,artifact ID和 version。--> <parent> <!--被繼承的父項目的全球惟一標識符--> <groupId>com.lovo</groupId> <!--被繼承的父項目的構件標識符--> <artifactId>parent</artifactId> <!--項目當前版本,格式爲:主版本.次版本.增量版本-限定版本號--> <version>0.0.1-SNAPSHOT</version> </parent> <!-- 構件的標識符,它和group ID一塊兒惟一標識一個構件。換句話說,你不能有兩個不一樣的項目擁有一樣的artifact ID和groupID; 在某個 特定的group ID下,artifact ID也必須是惟一的。構件是項目產生的或使用的一個東西,Maven爲項目產生的構件包括:JARs,源 碼,二進制發佈和WARs等。--> <artifactId>soncore</artifactId> <!--項目的名稱, Maven產生的文檔用--> <name>${project.artifactId}</name> <!--被繼承的父項目的版本--> <version>${project.parent.version}</version> <!-- 描述 --> <description>parent project soncore code </description> <properties> <!-- Maven 編譯使用的字符集編碼 --> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <!-- jar包版本 --> <spring.version>4.2.6.RELEASE</spring.version> <aspectj.version>1.8.9</aspectj.version> <mybatis.version>3.4.0</mybatis.version> <mybatis-spring.version>1.3.0</mybatis-spring.version> <mysql.version>5.1.38</mysql.version> <fastjson.version>1.2.12</fastjson.version> <base64.version>2.3.9</base64.version> </properties> <!--構建項目須要的信息--> <build> <!--這個元素描述了項目相關的全部資源路徑列表,例如和項目相關的屬性文件,這些資源被包含在最終的打包文件裏。--> <!-- 加上這個能夠保證maven打包是把這些資源文件都打到war包中 --> <resources> <!--這個元素描述了項目相關或測試相關的全部資源路徑--> <resource> <!--描述存放資源的目錄,該路徑相對POM路徑--> <directory>src/main/java</directory> <!--包含的模式列表,例如**/*.xml.--> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> <!--是否使用參數值代替參數名。參數值取自properties元素或者文件裏配置的屬性,文件在filters元素裏列出。--> <filtering>true</filtering> </resource> </resources> </build> <dependencies> <!-- 必須的不解釋,面向切面編程jar包 --> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>${aspectj.version}</version> </dependency> <!-- Spring相關包 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-expression</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.19</version> </dependency> <!-- mybatis相關包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>${mybatis.version}</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>${mybatis-spring.version}</version> </dependency> <!-- mysql相關包 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>${mysql.version}</version> </dependency> <!-- fastjson相關包 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>${fastjson.version}</version> </dependency> <!-- Base64相關包 --> <dependency> <groupId>net.iharder</groupId> <artifactId>base64</artifactId> <version>${base64.version}</version> </dependency> </dependencies> </project>
<?xml version="1.0"?> <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <!--聲明項目描述符遵循哪個POM模型版本。模型自己的版本不多改變,雖然如此,但它仍然是必不可少的,這是爲了當Maven引入了新的特性或者其餘模型變動的時候,確保穩定性。--> <modelVersion>4.0.0</modelVersion> <!--父項目的座標。若是項目中沒有規定某個元素的值,那麼父項目中的對應值即爲項目的默認值。 座標包括group ID,artifact ID和 version。--> <parent> <!--被繼承的父項目的全球惟一標識符--> <groupId>com.lovo</groupId> <!--被繼承的父項目的構件標識符--> <artifactId>parent</artifactId> <!--項目當前版本,格式爲:主版本.次版本.增量版本-限定版本號--> <version>0.0.1-SNAPSHOT</version> </parent> <!-- 構件的標識符,它和group ID一塊兒惟一標識一個構件。換句話說,你不能有兩個不一樣的項目擁有一樣的artifact ID和groupID; 在某個 特定的group ID下,artifact ID也必須是惟一的。構件是項目產生的或使用的一個東西,Maven爲項目產生的構件包括:JARs,源 碼,二進制發佈和WARs等。--> <artifactId>sonutils</artifactId> <!--項目的名稱, Maven產生的文檔用--> <name>${project.artifactId}</name> <!-- 描述 --> <description>parent project sontils code</description> <!--被繼承的父項目的版本--> <version>${project.parent.version}</version> <!-- Maven 編譯使用的字符集編碼 --> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <!--項目引入插件所須要的額外依賴--> <dependencies> <!-- 依賴ssmcore --> <dependency> <groupId>com.lovo</groupId> <artifactId>soncore</artifactId> <version>${project.parent.version}</version> </dependency> <!-- HttpComponents 也就是之前的httpclient項目,能夠用來提供高效的、最新的、功能豐富的支持 HTTP 協議的客戶端/服務器編程工具包,而且它支持 HTTP 協議最新的版本和建議 --> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.2</version> </dependency> </dependencies> </project>
<?xml version="1.0"?> <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <!--聲明項目描述符遵循哪個POM模型版本。模型自己的版本不多改變,雖然如此,但它仍然是必不可少的,這是爲了當Maven引入了新的特性或者其餘模型變動的時候,確保穩定性。--> <modelVersion>4.0.0</modelVersion> <!--父項目的座標。若是項目中沒有規定某個元素的值,那麼父項目中的對應值即爲項目的默認值。 座標包括group ID,artifact ID和 version。--> <parent> <!--被繼承的父項目的全球惟一標識符--> <groupId>com.lovo</groupId> <!--被繼承的父項目的構件標識符--> <artifactId>parent</artifactId> <!--項目當前版本,格式爲:主版本.次版本.增量版本-限定版本號--> <version>0.0.1-SNAPSHOT</version> </parent> <!-- 構件的標識符,它和group ID一塊兒惟一標識一個構件。換句話說,你不能有兩個不一樣的項目擁有一樣的artifact ID和groupID; 在某個 特定的group ID下,artifact ID也必須是惟一的。構件是項目產生的或使用的一個東西,Maven爲項目產生的構件包括:JARs,源 碼,二進制發佈和WARs等。--> <artifactId>sonstore</artifactId> <!--項目的名稱, Maven產生的文檔用--> <name>soncore</name> <!-- 描述 --> <description>parent project sonstore code</description> <!--項目主頁的URL, Maven產生的文檔用--> <url>http://maven.apache.org</url> <!-- Maven 編譯使用的字符集編碼 --> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <!--項目引入插件所須要的額外依賴--> <dependencies> <!-- 依賴ssmutils --> <dependency> <groupId>com.lovo</groupId> <artifactId>sonutils</artifactId> <version>${project.parent.version}</version> </dependency> </dependencies> </project>
<?xml version="1.0"?> <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <!--聲明項目描述符遵循哪個POM模型版本。模型自己的版本不多改變,雖然如此,但它仍然是必不可少的,這是爲了當Maven引入了新的特性或者其餘模型變動的時候,確保穩定性。--> <modelVersion>4.0.0</modelVersion> <!--父項目的座標。若是項目中沒有規定某個元素的值,那麼父項目中的對應值即爲項目的默認值。 座標包括group ID,artifact ID和 version。--> <parent> <!--被繼承的父項目的全球惟一標識符--> <groupId>com.lovo</groupId> <!--被繼承的父項目的構件標識符--> <artifactId>parent</artifactId> <!--項目當前版本,格式爲:主版本.次版本.增量版本-限定版本號--> <version>0.0.1-SNAPSHOT</version> </parent> <!-- 構件的標識符,它和group ID一塊兒惟一標識一個構件。換句話說,你不能有兩個不一樣的項目擁有一樣的artifact ID和groupID; 在某個 特定的group ID下,artifact ID也必須是惟一的。構件是項目產生的或使用的一個東西,Maven爲項目產生的構件包括:JARs,源 碼,二進制發佈和WARs等。--> <artifactId>admin</artifactId> <!--項目產生的構件類型,例如jar、war、ear、pom。插件能夠建立他們本身的構件類型,因此前面列的不是所有構件類型--> <packaging>war</packaging> <name>admin Webapp</name> <url>http://maven.apache.org</url> <build> <!-- maven打包後的項目名 --> <finalName>admin</finalName> <!-- 加上這個能夠保證maven打包是把這些資源文件都打到war包中 --> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> <include>**/*.properties</include> </includes> <filtering>true</filtering> </resource> <resource> <directory>src/main/resources</directory> </resource> </resources> </build> <properties> <!-- jar包版本 --> <servlet.version>4.0.0-b01</servlet.version> <druid.version>1.0.20</druid.version> <commons-io.version>2.4</commons-io.version> <commons-fileupload.version>1.3.1</commons-fileupload.version> <jackson.version>2.7.4</jackson.version> <ehcache.version>2.10.2</ehcache.version> <validator.version>5.2.3.Final</validator.version> <ehcache.jgroupsreplication.version>1.7</ehcache.jgroupsreplication.version> </properties> <!-- 項目基礎依賴包配置 --> <dependencies> <!-- 系統其餘模塊 --> <dependency> <groupId>com.lovo</groupId> <artifactId>soncore</artifactId> <version>${project.parent.version}</version> </dependency> <dependency> <groupId>com.lovo</groupId> <artifactId>sonutils</artifactId> <version>${project.parent.version}</version> </dependency> <dependency> <groupId>com.lovo</groupId> <artifactId>sonstore</artifactId> <version>${project.parent.version}</version> </dependency> <!-- servlet --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>${servlet.version}</version> </dependency> <!-- druid相關包 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>${druid.version}</version> </dependency> <!-- commons-io --> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>${commons-io.version}</version> </dependency> <!-- commons-fileupload --> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>${commons-fileupload.version}</version> </dependency> <!-- ehcache --> <dependency> <groupId>net.sf.ehcache</groupId> <artifactId>ehcache</artifactId> <version>${ehcache.version}</version> </dependency> <!-- jackson --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>${jackson.version}</version> </dependency> <!-- 校驗 --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> <version>${validator.version}</version> </dependency> <!-- 集羣 --> <!--<dependency> <groupId>net.sf.ehcache</groupId> <artifactId>ehcache-jgroupsreplication</artifactId> <version>${ehcache.jgroupsreplication.version}</version> </dependency> --> </dependencies> </project>
六、Spring SpringMVC Mybatis框架文件配置sql
<?xml version="1.0" encoding="utf-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:p="http://www.springframework.org/schema/p" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 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:cache="http://www.springframework.org/schema/cache" xmlns:c="http://www.springframework.org/schema/c" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache-3.2.xsd"> <!-- 配置須要交給spring掃描管理的包,通常是包括整個項目的java文件的父包(由context提供) --> <context:component-scan base-package="org.system" /> <!-- 屬性文件讀入,用於加密數據庫配置文件 --> <bean id="propertyConfigurer" class="org.core.encrypt.DBConfigurer"> <property name="locations"> <list> <value>classpath:conf.properties</value> </list> </property> </bean> <!-- 配置須要交給spring掃描管理的文件,通常是項目的配置文件(由context提供) --> <context:property-placeholder location="classpath:conf.properties" /> <!-- 配置數據源 --> <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="initialSize" value="2"></property> <!-- 鏈接池最大數量 --> <property name="maxActive" value="20"></property> <!-- 鏈接池最大空閒 ,對象池中對象最大個數--> <!-- <property name="maxIdle" value="60000"></property> --> <!-- 鏈接池最小空閒,對象池中對象最小個數 --> <property name="minIdle" value="2"></property> <!-- 獲取鏈接最大等待時間,單位爲 ms, 超過期間會丟出錯誤信息 --> <property name="maxWait" value="60000"></property> <!-- 每多少毫秒檢測空閒鏈接超過10分鐘的鏈接; 失效檢查線程運行時間間隔,若是小於等於0,不會啓動檢查線程,默認-1--> <property name="timeBetweenEvictionRunsMillis" value="60000" /> <!-- 鏈接池中鏈接,在時間段內一直空閒, 被逐出鏈接池的時間 (默認爲30分鐘,能夠適當作調整,須要和後端服務端的策略配置相關) ; 大於0 ,進行鏈接空閒時間判斷,或爲0,對空閒的鏈接不進行驗證;默認30分鐘 --> <property name="minEvictableIdleTimeMillis" value="25200000" /> <!-- 超過期間限制,回收沒有用(廢棄)的鏈接(默認爲 300秒,調整爲180); --> <property name="removeAbandonedTimeout" value="1800" /> </bean> <!-- 配置sqlSessionFactory(由mybatis-spring.jar提供支持) --> <bean name="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!-- 配置數據源 --> <property name="dataSource" ref="dataSource" /> <property name="configLocation" value="classpath:configuration.xml" /> <!-- 配置攔截器用於Mybatis分頁和總數查詢,只實現Mysql --> <property name="plugins" ref="PaginationInterceptor" /> </bean> <!-- Mybatis分頁攔截器 --> <bean name="PaginationInterceptor" class="org.core.intercept.PaginationInterceptor" /> <!-- Mapper接口所在包名,Spring會自動查找其下的Mapper --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="org.system.mapper..*" /> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" /> </bean> <!-- 支持緩存註解 --> <cache:annotation-driven cache-manager="cacheManager" /> <!-- Spring提供的基於的Ehcache實現的緩存管理器 --> <bean id="ehcacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"> <property name="configLocation" value="classpath:ehcache.xml" /> </bean> <bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager"> <property name="cacheManager" ref="ehcacheManager" /> </bean> <!-- 支持註解事務模式 --> <tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true" /> <!-- 事務管理 --> <bean name="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean> <!-- 配置聲明式事務 --> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="insert*" propagation="REQUIRED" read-only="false" /> <tx:method name="delete*" propagation="REQUIRED" read-only="false" /> <tx:method name="update*" propagation="REQUIRED" read-only="false" /> <tx:method name="get*" propagation="SUPPORTS" /> </tx:attributes> </tx:advice> <!-- 配置該聲明式事務規則用於的切入點 步驟: 1.配置切入點 2.應用該聲明式事務規則 --> <aop:config proxy-target-class="true" expose-proxy="true"> <!-- 配置切入點 --> <aop:pointcut id="transaction_pointcut" expression="execution(* org.system.service.impl..*.*(..))" /> <!-- 應用該聲明式事務規則 --> <aop:advisor advice-ref="txAdvice" pointcut-ref="transaction_pointcut" /> </aop:config> <!-- 異常攔截器 --> <bean id="exceptionHandler" class="org.system.exception.MyExceptionResolver" /> </beans>
#數據庫鏈接
driver=com.mysql.jdbc.Driver
#本機鏈接
url=5BiJrAunhbp4C6R9HY+UQZca6/Y+XPBCNv95/EzYAmjeJzpWpDD3ac0D2WtX+4UbeHW7DCcv755VyGJfUylG1DZfbpB4tbaTpnYigXCccc9FefU
#數據庫帳號 密碼
username=Y0Z2wmLw+BM=
password=Y0Z2wmLw+BM=
#文件服務器配置
#file.publicKey=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDC1FOh0jnud2NK+z2gemMYlVb36LsAOnEMs855NUR4OZd9k5kiWdmaifL8li6DaVyP/pMpnVdK1fymt2UzSejtswCDG
#file.account=admin
#file.password=123456
#開發環境
#file.url=
#雲端環境
#file.url=
#HIS服務器配置
#his.publicKey=
#his.account=admin
#his.password=123456
#開發環境
#his.url=
#雲端環境
#his.url=
#語音服務器配置
#phone.publicKey=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDC1FOh0jnud2NK+z2
#phone.account=admin
#phone.password=123456
#phone.url=
#微信服務器配置
#測試
#wechat.url=
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.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.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!-- 掃描要自動管理的包,使SpringMVC認爲包下用了@Controller 註解的類是控制器 --> <context:component-scan base-package="org.system.controller" /> <!-- 添加註解驅動,擴充了註解驅動,能夠將請求參數綁定到控制器參數 --> <mvc:annotation-driven enable-matrix-variables="true" /> <!-- 靜態資源處理,靜態資源文件路徑設置 --> <mvc:resources location="/styles/" mapping="/styles/.**" /> <mvc:resources location="/images/" mapping="/images/.**" /> <mvc:resources location="/plugins/" mapping="/plugins/.**" /> <mvc:resources location="/scripts/" mapping="/scripts/.**" /> <mvc:resources location="/html/" mapping="/html/.**" /> <mvc:resources location="/index.html" mapping="/index.html" /> <!--避免IE執行AJAX時,返回JSON出現下載文件 --> <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> </list> </property> </bean> <!-- 啓動SpringMVC的註解功能,完成請求和註解POJO的映射 --> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <ref bean="mappingJacksonHttpMessageConverter" /> <!-- JSON轉換器 --> </list> </property> </bean> <!-- 配置文件上傳,若是沒有使用文件上傳能夠不用配置,固然若是不配,那麼配置文件中也沒必要引入上傳組件包 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 默認編碼 --> <property name="defaultEncoding" value="utf-8" /> <!-- 文件大小最大值 --> <property name="maxUploadSize" value="10485760000" /> <!-- 內存中的最大值 --> <property name="maxInMemorySize" value="40960" /> <!-- 啓用是爲了推遲文件解析,以便捕獲文件大小異常 --> <property name="resolveLazily" value="true"/> </bean> <!-- 定義跳轉的文件的先後綴 ,視圖模式配置--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- 這裏的配置個人理解是自動給後面action的方法return的字符串加上前綴和後綴,變成一個 可用的url地址 --> <property name="prefix" value="/" /> <property name="suffix" value=".html" /> </bean> <!-- 校驗攔截器 --> <bean id="validInterceptor" class="org.system.intercept.ValidInterceptor"></bean> <!-- 配置AOP切點 只攔截Controltroller --> <aop:config> <!--切入點 --> <aop:pointcut id="validPoint" expression="execution(public * org.system.controller.impl..*.*(..))" /> <!--在該切入點使用自定義攔截器 --> <aop:advisor pointcut-ref="validPoint" advice-ref="validInterceptor" /> </aop:config> <!-- 導入其餘配置文件 --> <import resource="/org/system/config/*.xml" /> </beans>
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD SQL MAP Config 3.1//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <settings> <setting name="callSettersOnNulls" value="true"/> </settings> </configuration>
#定義根級別
log4j.rootLogger = ERROR,info,warn,error,stdout
#定義項目輸出日誌級別
log4j.logger.org.system = DEBUG
log4j.logger.org.core = INFO
log4j.logger.org.utils = INFO
log4j.logger.org.springframework.web.servlet.mvc = WARN
#控制檯輸出 生成階段註釋
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = %-d{MM-dd HH:mm:ss}-[%p] [%c{3}] %m%n
###info級別輸出
#設置日誌輸出類型爲天天產生一個日誌文件
log4j.appender.info = org.apache.log4j.DailyRollingFileAppender
#指定輸出目錄
log4j.appender.info.File = ${catalina.home}/logs/${webapp.root}/admin/info.log
#默認值是true,即將消息追加到指定文件中,false指將消息覆蓋指定的文件內容。
log4j.appender.info.Append = true
#指定日誌消息的輸出最低級別,此處設置爲INFO,當程序出現錯誤日誌時也會輸出到此日誌文件中
log4j.appender.info.Threshold = INFO
#設置輸出端的佈局類型爲能夠靈活地指定佈局模式
log4j.appender.info.layout = org.apache.log4j.PatternLayout
#指定打印信息的具體格式
log4j.appender.info.layout.ConversionPattern = %-d{MM-dd HH:mm:ss}-[%p] [%c{3}] %m%n
#指定天天產生一個文件
log4j.appender.info.datePattern='.'yyyy-MM-dd
#定製過濾器 只過濾INFO級別
log4j.appender.info.filter.infoFilter = org.apache.log4j.varia.LevelRangeFilter
log4j.appender.info.filter.infoFilter.LevelMin=INFO
log4j.appender.info.filter.infoFilter.LevelMax=INFO
###warn級別輸出
log4j.appender.warn = org.apache.log4j.DailyRollingFileAppender
log4j.appender.warn.File = ${catalina.home}/logs/${webapp.root}/admin/warn.log
log4j.appender.warn.Append = true
log4j.appender.warn.Threshold = warn
log4j.appender.warn.layout = org.apache.log4j.PatternLayout
log4j.appender.warn.layout.ConversionPattern = %-d{MM-dd HH:mm:ss}-[%p] [%c{3}] %m%n
log4j.appender.warn.datePattern='.'yyyy-MM-dd
#定製過濾器 只過濾warn級別
log4j.appender.warn.filter.warnFilter = org.apache.log4j.varia.LevelRangeFilter
log4j.appender.warn.filter.warnFilter.LevelMin=WARN
log4j.appender.warn.filter.warnFilter.LevelMax=WARN
###error級別輸出
log4j.appender.error = org.apache.log4j.DailyRollingFileAppender
log4j.appender.error.File = ${catalina.home}/logs/${webapp.root}/admin/error.log
log4j.appender.error.Append = true
log4j.appender.error.Threshold = ERROR
log4j.appender.error.layout = org.apache.log4j.PatternLayout
log4j.appender.error.layout.ConversionPattern = %-d{MM-dd HH:mm:ss}-[%p] [%c{3}] %m%n
log4j.appender.error.datePattern='.'yyyy-MM-dd
#定製過濾器 只過濾ERROR級別
log4j.appender.error.filter.errorFilter=org.apache.log4j.varia.LevelRangeFilter
log4j.appender.error.filter.errorFilter.LevelMin=ERROR
log4j.appender.error.filter.errorFilter.LevelMax=ERROR
<?xml version="1.0" encoding="UTF-8"?> <ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd" updateCheck="false"> <!--timeToIdleSeconds 當緩存閒置n秒後銷燬 --> <!--timeToLiveSeconds 當緩存存活n秒後銷燬 --> <!-- 緩存配置 name:緩存名稱。 maxElementsInMemory:緩存最大個數。 eternal:對象是否永久有效,一但設置了,timeout將不起做用。 timeToIdleSeconds:設置對象在失效前的容許閒置時間(單位:秒)。僅當eternal=false對象不是永久有效時使用,可選屬性,默認值是0,也就是可閒置時間無窮大。 timeToLiveSeconds:設置對象在失效前容許存活時間(單位:秒)。最大時間介於建立時間和失效時間之間。僅當eternal=false對象不是永久有效時使用,默認是0.,也就是對象存活時間無窮大。 overflowToDisk:當內存中對象數量達到maxElementsInMemory時,Ehcache將會對象寫到磁盤中。 diskSpoolBufferSizeMB:這個參數設置DiskStore(磁盤緩存)的緩存區大小。默認是30MB。每一個Cache都應該有本身的一個緩衝區。 maxElementsOnDisk:硬盤最大緩存個數。 diskPersistent:是否緩存虛擬機重啓期數據 Whether the disk store persists between restarts of the Virtual Machine. The default value is false. diskExpiryThreadIntervalSeconds:磁盤失效線程運行時間間隔,默認是120秒。 memoryStoreEvictionPolicy:當達到maxElementsInMemory限制時,Ehcache將會根據指定的策略去清理內存。默認策略是LRU(最近最少使用)。你能夠設置爲FIFO(先進先出)或是LFU(較少使用)。 clearOnFlush:內存數量最大時是否清除。 --> <diskStore path="java.io.tmpdir" /> <!-- <cacheManagerPeerProviderFactory class="net.sf.ehcache.distribution.jgroups.JGroupsCacheManagerPeerProviderFactory" properties="connect=TCP(bind_port=50062): TCPPING(initial_hosts= 192.168.1.16[50061], 192.168.1.16[50062]; port_range=1;timeout=5000;num_initial_members=2) MERGE2(min_interval=3000;max_interval=5000): FD_ALL(interval=5000;timeout=20000): FD(timeout=3000;max_tries=3;): VERIFY_SUSPECT(timeout=1500): pbcast.NAKACK(retransmit_timeout=100,200,300,600,1200,2400,4800;discard_delivered_msgs=true): pbcast.STABLE(stability_delay=1000;desired_avg_gossip=20000;max_bytes=0): pbcast.GMS(print_local_addr=true;join_timeout=5000)" propertySeparator="::" /> --> <!-- 採用UDP多播方式集羣 <cacheManagerPeerProviderFactory class="net.sf.ehcache.distribution.jgroups.JGroupsCacheManagerPeerProviderFactory" properties="connect=UDP(mcast_addr=231.12.21.133;mcast_port=45566;):PING: MERGE2:FD_SOCK:VERIFY_SUSPECT:pbcast.NAKACK:UNICAST:pbcast.STABLE:FRAG:pbcast.GMS" propertySeparator="::" /> --> <!-- 默認緩存策略 --> <defaultCache eternal="false" maxElementsInMemory="1000" overflowToDisk="false" diskPersistent="false" timeToIdleSeconds="10" timeToLiveSeconds="10" memoryStoreEvictionPolicy="LFU"> </defaultCache> <!-- 用戶信息 --> <cache name="userCache" eternal="false" maxElementsInMemory="500" overflowToDisk="false" diskPersistent="false" timeToIdleSeconds="1800" timeToLiveSeconds="0" memoryStoreEvictionPolicy="LFU"> <!-- 若不配置此類服務器重啓後將不會同步緩存到本節點 <bootstrapCacheLoaderFactory class="net.sf.ehcache.distribution.jgroups.JGroupsBootstrapCacheLoaderFactory" properties="bootstrapAsynchronously=true" /> <cacheEventListenerFactory class="net.sf.ehcache.distribution.jgroups.JGroupsCacheReplicatorFactory"/> --> </cache> <!-- 醫生信息 --> <cache name="adminUserCache" eternal="false" maxElementsInMemory="500" overflowToDisk="false" diskPersistent="false" timeToIdleSeconds="1800" timeToLiveSeconds="0" memoryStoreEvictionPolicy="LFU"> <!-- 若不配置此類服務器重啓後將不會同步緩存到本節點 <bootstrapCacheLoaderFactory class="net.sf.ehcache.distribution.jgroups.JGroupsBootstrapCacheLoaderFactory" properties="bootstrapAsynchronously=true" /> <cacheEventListenerFactory class="net.sf.ehcache.distribution.jgroups.JGroupsCacheReplicatorFactory"/> --> </cache> <!-- 驗證碼信息 --> <cache name="codeCache" eternal="false" maxElementsInMemory="500" overflowToDisk="true" diskPersistent="false" timeToIdleSeconds="120" timeToLiveSeconds="1800" memoryStoreEvictionPolicy="LFU"> <!-- 若不配置此類服務器重啓後將不會同步緩存到本節點 <bootstrapCacheLoaderFactory class="net.sf.ehcache.distribution.jgroups.JGroupsBootstrapCacheLoaderFactory" properties="bootstrapAsynchronously=true" /> <cacheEventListenerFactory class="net.sf.ehcache.distribution.jgroups.JGroupsCacheReplicatorFactory"/> --> </cache> <!-- 權限信息 --> <cache name="permissionCache" eternal="true" maxElementsInMemory="500" overflowToDisk="true" diskPersistent="false" timeToIdleSeconds="0" timeToLiveSeconds="0" memoryStoreEvictionPolicy="LFU"> <!-- 若不配置此類服務器重啓後將不會同步緩存到本節點 <bootstrapCacheLoaderFactory class="net.sf.ehcache.distribution.jgroups.JGroupsBootstrapCacheLoaderFactory" properties="bootstrapAsynchronously=true" /> <cacheEventListenerFactory class="net.sf.ehcache.distribution.jgroups.JGroupsCacheReplicatorFactory"/> --> </cache> </ehcache>