SSM项目spring配置文件详细步骤(分门别类、灵巧记忆)
spring-dao.xml文件
1.配置外部db.property文件:
<context:property-placeholder location="classpath:jdbc.properties"/>
或者
<context:property-overdide location="classpath:db.property">
区别在于:
property-override标签的作用是为xml配置文件中的bean的属性指定最终结果;而property-placeholder标签的作用是把xml配置文件中bean 的<property>标签的value值替换成正真的值。一般情况下都是可以通用的。
2.配置数据源DataSource,最常用的就是c3p0:
需要使用value="${jdbc.driverClass}"
这样的格式。
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="${jdbc.driverClass}"/> <property name="jdbcUrl" value="${jdbc.jdbcUrl}"/> <property name="user" value="${jdbc.user}"/> <property name="password" value="${jdbc.password}"/> </bean>
3.配置sqlSessionFactory,该bean是mybatis社区开发用于整合spring的bean:
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!--注入数据库连接池--> <property name="dataSource" ref="dataSource"/> <!--配置mybatis全局配置文件:mybatis-config.xml--> <property name="configLocation" value="classpath:mybatis-config.xml"/> <!--扫描entity包,使用别名,多个用;隔开-->
设置这个,那么在Mapper文件里面就可以直接写对应的类名 而不用写全路径名了 <property name="typeAliasesPackage" value="org.seckill.entity"/> <!--扫描sql配置文件:mapper需要的xml文件--> <property name="mapperLocations" value="classpath:mapper/*.xml"/> </bean>
或者用p标签声明数据源:
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean" p:dataSource-ref="dataSource"/>
其中的mybatis的全局配置文件可以不配,使用默认的mybatis配置。另外,要使用xml配置mapper,需要配置mapperlocations,否则直接用注解配置mapper的话就不需要,仅仅需要第四部即可。
4.配置自动扫描dao接口包,动态实现dao接口,注入到spring容器。可以用完整的配置,如下:
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <!--注入SqlSessionFactory--> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/> <!-- 给出需要扫描的Dao接口--> <property name="basePackage" value="org.seckill.dao"/> </bean>
也可以使用简化版配置:
<mybatis:scan base-package="com.imqsl.dao"/>
spring-service.xml文件
该配置文件主要是配置一下JDBC事务以及扫描service包。具体如下:
1.扫描service包下所有使用注解的类型
<context:component-scan base-package="org.seckill.service"/>
2.配置事务管理器
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <!--注入数据库连接池--> <property name="dataSource" ref="dataSource"/> </bean>
3.配置基于注解的声明式事务
<tx:annotation-driven transaction-manager="transactionManager"/>
spring-web.xml文件
1.开启springMVC注解,简化配置
主要提供了以下功能:
(1)自动注册DefautAnnotationHandlerMapping,AnnotationMethodHandlerAdapter
(2) 提供一系列:数据绑定,数字和日期的format @NumberFormat,@DataTimeFormat,
xml,json默认读写支持
<mvc:annotation-driven/>
2.静态资源默认servlet配置
主要提供了以下功能:
(1):加入对静态资源的处理:js,gif,png
(2):允许使用"/"做整体映射
<mvc:default-servlet-handler/>
3.配置jsp 显示viewResolver
配置前缀后缀与jstl支持
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean>
4.自动扫描
<context:component-scan base-package="com.imqsl.controller"/>
此外,mybatis的配置文件(可配可不配,根据需求)
<?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> <!--使用jdbc的getGeneratedKeys 获取数据库的自增主键值--> <setting name="useGeneratedKeys" value="true"/> <!--使用别名替换列名 默认true select name as title from table --> <setting name="useColumnLabel" value="true"/> <!--开启驼峰命名转换--> <setting name="mapUnderscoreToCamelCase" value="true"/> </settings> </configuration>
web.xml配置文件的一般格式:
<servlet>
<!--定义springmvc的前端控制器-->
<servlet-name>seckill-dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param>
<!--contextConfigLocation参数用来指定spring的配置文件--> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring/spring-*.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>seckill-dispatcher</servlet-name> <!--默认匹配所有的请求--> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>