介绍resources文件夹中的配置文件
该文件中的配置文件有五个,其中最重要的分别是:
- mybatis-config.xml(是mybatis的配置文件)
- spring.xml(spring框架的配置文件)
- springmvc.xml(springMVC的配置文件)
1.在ssm框架中,mybatis已经交由spring进行管理,所以它的配置文件并不需要添加太多的配置,但必须存在。
代码如下:
<?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="logImpl" value="STDOUT_LOGGING"/>
</settings>
</configuration>
2.spring.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-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<context:annotation-config/>
<!-- 加载配置文件 -->
<context:property-placeholder location="classpath:db.properties"/>
<!-- 数据库连接池 -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
destroy-method="close">
<property name="driverClassName" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.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}"/><!--从连接池取连接的最大等待时间,单位ms-->
<property name="timeBetweenEvictionRunsMillis" value="${timeBetweenEvictionRunsMillis}"/><!--每60秒运行一次空闲连接回收器-->
<property name="minEvictableIdleTimeMillis" value="${minEvictableIdleTimeMillis}"/><!--池中的连接空闲30分钟后被回收-->
<property name="validationQuery" value="${validationQuery}"/><!--验证使用的SQL语句-->
<property name="testWhileIdle" value="${testWhileIdle}"/><!--指明连接是否被空闲连接回收器(如果有)进行检验,如果检验失败,则连接将被从池中去除-->
<property name="testOnBorrow" value="${testOnBorrow}"/><!--借出连接时不要测试,否则很影响性能-->
<property name="testOnReturn" value="${testOnReturn}"/>
<property name="poolPreparedStatements" value="${poolPreparedStatements}"/>
<property name="maxPoolPreparedStatementPerConnectionSize" value="${maxPoolPreparedStatementPerConnectionSize}"/>
<property name="removeAbandoned" value="${removeAbandoned}"/><!--连接泄漏回收参数,当可用连接数少于3个小时才执行-->
<property name="removeAbandonedTimeout" value="${removeAbandonedTimeout}"/><!--连接泄漏回收参数,180秒,泄漏的连接可以被删除的超时值-->
</bean>
<!-- 让spring管理sqlsessionfactory 使用mybatis和spring整合包中的 -->
<bean class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 数据库连接池 -->
<property name="dataSource" ref="dataSource"/>
<property name="configLocation" value="classpath:mybatis-config.xml"/>
</bean>
<!--mybatis扫描-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.sun.mapper"/>
</bean>
<bean class="com.google.gson.Gson"/>
</beans>
其中使用了mybatis和spring的整合包,让mybatis在spring的管理下
为方便管理数据库,我将数据库的相关配置写在了db.properties中,这样在换数据的时候就不用改太多的代码了
jdbc.driver=org.postgresql.Driver
jdbc.url=jdbc:postgresql://127.0.0.1/bigdatavisualization?characterEncoding=utf-8
jdbc.username=admin
jdbc.password=admin
filters=stat
initialSize=2
maxActive=300
maxIdle=60
minIdle=5
maxWait=60000
timeBetweenEvictionRunsMillis=60000
minEvictableIdleTimeMillis=1800000
validationQuery=SELECT 1
testWhileIdle=true
testOnBorrow=false
testOnReturn=false
poolPreparedStatements=false
maxPoolPreparedStatementPerConnectionSize=200
removeAbandoned=true
removeAbandonedTimeout=180
3.springmvc.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:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-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/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd">
<!--注解驱动-->
<mvc:annotation-driven>
<mvc:message-converters register-defaults="true">
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="defaultCharset" value="UTF-8"/>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
<!--SpringMVC拦截器-->
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/*.net"/>
<bean class="com.sun.interceptor.userInterceptor"/>
</mvc:interceptor>
</mvc:interceptors>
<!-- 配置视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="WEB-INF/web/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
<!--全局异常处理器
只要实现了HandlerExceptionResolver接口,就是一个全局变量
-->
<bean class="com.sun.exception.CustomExceptionResolver"/>
<!--静态资源加载控制-->
<mvc:default-servlet-handler/>
<!--配置扫描包-->
<context:component-scan base-package="com.sun.controller,com.sun.service"/>
</beans>
可以在里面配置拦截器、视图解析器、全局异常处理器、包扫描等,管理静态资源,注解驱动,切面
4.log4j.properties
Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。
log4j.rootLogger=WARN, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.logger.com.ibatis=DEBUG
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
log4j.logger.org.mybatis=DEBUG
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
log4j.logger.java.sql.ResultSet=DEBUG