现在主流的JavaWeb应用几乎都会用到Spring,以下是Spring的配置,以及结合Web的SpringMVC配置的汇总。
jar包的引入与Web项目集成Spring配置文件SpringMVC配置文件集成Mybatis使用maven引入(pom.xml)
<properties> <!-- 统一指定版本 --> <spring.version>4.1.7.RELEASE</spring.version> </properties> <!-- 依赖 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <!-- SpringMVC 需要添加如下依赖 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <!-- sqlserver 驱动 --> <dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>sqljdbc4</artifactId> <version>4.0</version> </dependency> <!-- c3p0 连接池支持--> <dependency> <groupId>com.mchange</groupId> <artifactId>c3p0</artifactId> <version>0.9.5.2</version> </dependency>配置在web.xml文件中
<!-- Spring配置 --> <context-param> <param-name>contextConfigLocation</param-name> <!-- 指定spring配置文件(classpath*: 包括jar包中配置) --> <param-value>classpath*:spring/spring-*.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- SpringMVC配置 --> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath*:spring/springmvc.xml</param-value> </init-param> <!-- 服务器启动时启动 --> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>Spring配置文件路径:classpath:spring/spring-context.xml
<!-- 指定扫描的包 --> <context:component-scan base-package="com.menng.service.impl"/> <!--(根据需要配置)以下是连接池配置,使用c3p0--> <!-- 引入数据库配置 --> <context:property-placeholder location="classpath:jdbc.properties"/> <!-- 数据源 --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <property name="driverClass" value="${jdbc.sqlserver.driver}"/> <property name="jdbcUrl" value="${jdbc.url}"/> <property name="user" value="${jdbc.user}"/> <property name="password" value="${jdbc.password}"/> <!-- 连接池初始化连接数 --> <property name="initialPoolSize" value="${jdbc.initialPoolSize}" /> <!-- 连接池中保留的最小连接数。--> <property name="minPoolSize" value="${jdbc.minPoolSize}" /> <!-- 连接池中保留的最大连接数。Default: 15 --> <property name="maxPoolSize" value="${jdbc.maxPoolSize}" /> <!-- 连接被断开的时间,Default:0 即永不过期 --> <property name="maxIdleTime" value="${jdbc.maxIdleTime}" /> <!-- 当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 --> <property name="acquireIncrement" value="${jdbc.acquireIncrement}" /> <!-- 最大statements数量 --> <property name="maxStatements" value="${jdbc.maxStatements}" /> <!-- 定义在从数据库获取新连接失败后重复尝试的次数。Default: 30--> <property name="acquireRetryAttempts" value="${jdbc.acquireRetryAttempts}" /> <!-- 每120秒检查所有连接池中的空闲连接。Default: 0--> <property name="idleConnectionTestPeriod" value="${jdbc.idleConnectionTestPeriod}" /> <property name="breakAfterAcquireFailure" value="true" /> </bean>jdbc配置文件:classpath:jdbc.properties
jdbc.sqlserver.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver jdbc.url=jdbc:sqlserver://127.0.0.1:1433;DatabaseName=test jdbc.user=root jdbc.password=123456 jdbc.initialPoolSize=20 jdbc.minPoolSize=20 jdbc.maxPoolSize=120 jdbc.maxIdleTime=600 jdbc.acquireIncrement=10 jdbc.maxStatements=20 jdbc.acquireRetryAttempts=3 jdbc.idleConnectionTestPeriod=120SpringMVC配置文件路径:classpath:spring/springmvc.xml
<!-- 注解驱动 --> <mvc:annotation-driven/> <!-- 指定扫描的包 --> <context:component-scan base-package="com.menng.controller"/> <!-- (根据需要配置)静态资源处理 --> <mvc:resources location="/js/" mapping="/js/**"/> <mvc:resources location="/images/" mapping="/images/**"/> <mvc:resources location="/css/" mapping="/css/**"/> <!-- (根据需要配置)使用容器默认servlet处理没有映射的资源(配置了这个就不用配置 静态资源处理了) --> <mvc:default-servlet-handler/>