1. 程式人生 > >基於SSM的Maven項目(Redis和Mysql)配置文件整合

基於SSM的Maven項目(Redis和Mysql)配置文件整合

data- ide directory lease dispatch spring容器 servle apach work

src/main/resources

1. db 文件夾

1.1 db.properties

jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://192.168.175.102:3306/zy_video2?userSSL=false
jdbc.user=ZY103
[email protected]


redis.host=192.168.175.102
redis.port=6379
redis.pass=123456
redis.maxTotal=30
redis.maxIdle=5

1.2 db.sql

2. mybatis 文件夾

2.1 mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
	<!-- 開啟下劃線轉駝峰  -->
	<settings>
		<setting name="mapUnderscoreToCamelCase" value="true" />
	</settings>
</configuration>

2.2 dao對應生成的Mapper文件 

3. spring 文件夾

3.1 spring-dao.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:context="http://www.springframework.org/schema/context"
	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 ">

<!-- 掃描並識別Spring 相關的註解: @service @Componnent @Repository...-->
<context:component-scan base-package="com.zhiyou100" /> 

<!-- 加載 db.properties-->
<context:property-placeholder location="classpath:db/db.properties"/>
	<!-- c3p0  -->
	<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
		<property name="driverClass" value="${jdbc.driverClass}"/>
		<property name="jdbcUrl" value="${jdbc.url}"/>
		<property name="user" value="${jdbc.user}"/>
		<property name="password" value="${jdbc.password}"/>
	</bean>
 
 <!-- 配置sqlSessionFactory的相關配置 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
	<!-- 註入數據源 -->
	<property name="dataSource" ref="dataSource"></property>
	
	<!-- 設置Mybatis配置文件的路徑  -->
	<property name="configLocation" value="classpath:mybatis/mybatis-config.xml"></property>
	
	<!-- 開啟起別名,默認為首字母小寫 -->
	<property name="typeAliasesPackage" value="com.zhiyou100.model"></property>
	
	<!-- 設置mapper 文件路徑 -->
	<property name="mapperLocations" value="classpath:mybatis/*Mapper.xml"></property>
</bean>

<!-- 把dao 接口的實現類註入到Spring容器中,用過名字或者類型獲取對象 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
	<!-- 把dao包下的Interface 的實現類註入到spring容器中 -->
	<property name="basePackage" value="com.zhiyou100.dao"></property>
</bean>

</beans>

3.2 spring-redis.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:context="http://www.springframework.org/schema/context"
	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/context
	 http://www.springframework.org/schema/context/spring-context.xsd
	  http://www.springframework.org/schema/tx
	 http://www.springframework.org/schema/tx/spring-tx.xsd ">
	 
	<!-- 讀取配置文件的內容 -->
	 <context:property-placeholder location="classpath:db/db.properties"/>
	 
	 <!-- 配置jpc JedisPoolConfig , 用來合理預估配置-->
	 <bean id="jpc" class="redis.clients.jedis.JedisPoolConfig">
	 	<property name="maxTotal" value="${redis.maxTotal}"></property>
	 	<property name="maxIdle" value="${redis.maxIdle}"></property>
	 </bean>
	 
	 <!-- 配置jcf , 鏈接工廠 , 用來生成redis鏈接對象  JedisConnectionFactory-->
	 <bean id="jcf" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
	 	<property name="hostName" value="${redis.host}"></property>
	 	<property name="port" value="${redis.port}"></property>
	 	<property name="password" value="${redis.pass}"></property>
	 	<property name="poolConfig" ref="jpc"></property>
	 </bean>
	 
	<!--  RedisTemplate 對象來進行對redis的各種操作  -->
	 <bean  id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
	 	<property name="connectionFactory" ref="jcf"></property>
	 	
	 	<!-- 設置編碼格式為UTF-8 -->
	 	<property name="keySerializer">
			<bean class="org.springframework.data.redis.serializer.StringRedisSerializer"/>
		</property>
	 </bean>
</beans>

3.3 sprinf-service.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:context="http://www.springframework.org/schema/context"
	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/context
	 http://www.springframework.org/schema/context/spring-context.xsd
	  http://www.springframework.org/schema/tx
	 http://www.springframework.org/schema/tx/spring-tx.xsd ">

	<!-- 針對Service層的Spring配置 -->
	<!-- 1.包掃描 @service -->
	<context:component-scan base-package="com.zhiyou100.service"></context:component-scan>

	<!-- 2. 為方法提供事務支持 -->
	<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<!-- 註入數據庫連接池,事務是數據庫中的 -->
		<property name="dataSource" ref="dataSource"></property>
	</bean>
	
	<!-- 使用最簡單的聲明式事務操作,通過註解來完成 -->
	<tx:annotation-driven transaction-manager="transactionManager"/>

</beans>

3.4 spring-web.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:context="http://www.springframework.org/schema/context"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	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/mvc
	 http://www.springframework.org/schema/mvc/spring-mvc.xsd">

	<!-- 包掃描  -->
	<context:component-scan base-package="com.zhiyou100.controller" />

	<!-- 開啟註解 -->
	<mvc:annotation-driven/>
	
	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<!-- 返回的jsp文件的路徑前綴 -->
		<!-- 放在WEB-INF下的.jsp別人不能通過url訪問,可以提高數據的安全性 -->
	 	<property name="prefix" value="/WEB-INF/view/"></property>
	 	<!-- 返回的jsp文件的路徑後綴 -->
	 	<property name="suffix" value=".jsp"></property>
	</bean>

	<!-- 使用默認的handler ,支持靜態的訪問 -->
	<mvc:default-servlet-handler/>



</beans>

4.web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://xmlns.jcp.org/xml/ns/javaee"
	xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
	id="WebApp_ID" version="3.1">
	<display-name>VideoAdmin</display-name>
	<welcome-file-list>
		<welcome-file>index.html</welcome-file>
		<welcome-file>index.htm</welcome-file>
		<welcome-file>index.jsp</welcome-file>
		<welcome-file>default.html</welcome-file>
		<welcome-file>default.htm</welcome-file>
		<welcome-file>default.jsp</welcome-file>
	</welcome-file-list>


	<!-- 對Spring的配置 -->
	<!-- 在服務器啟動的時候去加載和解析Spring配置文件 -->
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>

	<!-- 指定Spring的文件路徑 -->
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath:spring/spring-*.xml</param-value>
	</context-param>

	<!-- 配置字符編碼 -->
	<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>

	</filter>

	<filter-mapping>
		<filter-name>encodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

	<servlet>
		<servlet-name>dispatcherServlet</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath:spring/spring-mvc.xml</param-value>
		</init-param>
	</servlet>

	<servlet-mapping>
		<servlet-name>dispatcherServlet</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>

</web-app>

5. pom.xml

<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">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.zhiyou100</groupId>
	<artifactId>RedisTest3</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>war</packaging>

	<dependencies>
		<!-- mybatis 的jar -->
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>3.4.5</version>
		</dependency>

		<!-- c3p0 -->
		<dependency>
			<groupId>com.mchange</groupId>
			<artifactId>c3p0</artifactId>
			<version>0.9.5.2</version>
		</dependency>

		<!-- mysql 的驅動 -->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.43</version>
		</dependency>

		<!-- mybatis 和Spring 集成的jar -->
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis-spring</artifactId>
			<version>1.3.1</version>
		</dependency>

		<!-- 自動導入依賴的 -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
			<version>4.3.10.RELEASE</version>
		</dependency>

		<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-jdbc</artifactId>
			<version>4.3.10.RELEASE</version>
		</dependency>

		<!-- spring事務 -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-tx</artifactId>
			<version>4.3.10.RELEASE</version>
		</dependency>

		<!-- servlet-api -->
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<version>3.1.0</version>
			<scope>provided</scope>
		</dependency>

		<!-- jackson 的jar包 -->
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-core</artifactId>
			<version>2.9.1</version>
		</dependency>

		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-databind</artifactId>
			<version>2.9.1</version>
		</dependency>

		<!-- redis -->
		<dependency>
			<groupId>org.springframework.data</groupId>
			<artifactId>spring-data-redis</artifactId>
			<version>1.8.7.RELEASE</version>
		</dependency>

		<dependency>
			<groupId>redis.clients</groupId>
			<artifactId>jedis</artifactId>
			<version>2.9.0</version>
		</dependency>

	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.tomcat.maven</groupId>
				<artifactId>tomcat7-maven-plugin</artifactId>
				<version>2.2</version>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-war-plugin</artifactId>
				<configuration>
					<webResource>
						<!-- 不打包 test 目錄下的文件 -->
						<resource>
							<directory>src/test</directory>
							<excludes>
								<exclude>*</exclude>
							</excludes>
						</resource>
					</webResource>
				</configuration>
			</plugin>
		</plugins>
		
	</build>

</project>

基於SSM的Maven項目(Redis和Mysql)配置文件整合