1 web.xml 配置
1.配置一个监听器contextloaderlistener,让项目一启动就加载spring容器
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
2.配置Spring MVC 的前端控制器dispatcherservlet。
<!-- 需要指定contextConfigLocation内容为Spring MVC配置文件的值。也可以选择不配置,那么需要把servlet-name改名为dispatcherServlet,并在同级目录下建立同名文件dispatcherServlet-servlet.xml。命名规则 当前servlet-name +“-servlet.xml”-->
<servlet><servlet-name>springDispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>location</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springDispatcherServlet</servlet-name>
<url-pattern>url</url-pattern><!-- 选择拦截哪些url-->
</servlet-mapping>
3.配置字符过滤器CharacterEncodingFilter,请求类型过滤器HiddenHttpMethodFilter
<filter><!--字符过滤器一定要放在其他过滤器前面-->
<filter-name>CharacterEncodingFilter</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>
<init-param>
<param-name>forceRequestEncoding</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>forceResponseEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-name>CharacterEncodingFilter</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>
<init-param>
<param-name>forceRequestEncoding</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>forceResponseEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter><!--将页面普通的post请求转为指定的delect或put请求-->
<filter-name>HiddenHttpMethodFilter</filter-name>
<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>HiddenHttpMethodFilter</filter-name>
<url-pattern>/</url-pattern>
</filter-mapping>
<!--这里不多讲,照搬就可以了-->
2. Spring MVC配置文件 dispatcherServlet-servlet.xml 的配置
<!--这个文件主要进行与网站、跳转逻辑相关的配置-->
1.扫描所以业务逻辑组件 要禁用掉默认的use-default-filters属性设置为false
<context:component-scan base-package="com.atguigu" use-default-filters="false">
<!-- 只扫控制器 -->
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
<!-- 只扫控制器 -->
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
2.配置视图扫描器
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
<property name="prefix" value="/WEB-INF/views/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
3.<!-- 两个标准配置 -->
<!-- 将springmvc不能处理的请求交给tomcat --><mvc:default-servlet-handler/>
<!-- 能支持springMVC更高级的一些功能 -->
<mvc:annotation-driven />
3.Spring 配置文件 applicationContext.xml的配置
1.加载类路径下的 dbconfig.propertise文件,这是数据库的配置文件
<context:property-placeholder location="classpath:dbconfig.propertise"/>2.配置扫描器 exclude:排除 这个自动扫描器只不扫描Controller类,其他都扫描
<context:component-scan base-package="com.atguigu">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
3.配置数据源,可以使用c3p0 ComboPooledDataSource类
<bean id="pooledDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>
<property name="driverClass" value="${jdbc.driverClass}"></property>
<property name="user" value="${jdbc.user}"></property>
<property name="password" value="${jdbc.password}"></property>
</bean>
<property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>
<property name="driverClass" value="${jdbc.driverClass}"></property>
<property name="user" value="${jdbc.user}"></property>
<property name="password" value="${jdbc.password}"></property>
</bean>
4.配置和mybatis的整合,他能帮我们创建sqlSessionFactory
<bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 指定全局配置文件 -->
<property name="configLocation" value="classpath:mybatis-config.xml"></property>
<!-- 指定数据源,引用配置好的bean -->
<property name="dataSource" ref="pooledDataSource"></property>
<!-- 指定端口映射文件位置 -->
<property name="mapperLocations" value="classpath:mapper/*.xml"></property>
</bean>
<!-- 指定全局配置文件 -->
<property name="configLocation" value="classpath:mybatis-config.xml"></property>
<!-- 指定数据源,引用配置好的bean -->
<property name="dataSource" ref="pooledDataSource"></property>
<!-- 指定端口映射文件位置 -->
<property name="mapperLocations" value="classpath:mapper/*.xml"></property>
</bean>
5.配置扫描器 ,将mybatis接口的事现加入到ioc容器中
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.atguigu.crud.dao"></property>
</bean>
6.事务控制相关
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="pooledDataSource"></property>
</bean>
<aop:config>
<aop:pointcut expression="execution(* com.atguigu.crud.service..*(..))" id="txPoint"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="txPoint"/>
</aop:config>
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="*"/>
<tx:method name="get*" read-only="true"/>
</tx:attributes>
</tx:advice>
<bean id="SqlSession" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg name="sqlSessionFactory" ref="sqlSessionFactoryBean"></constructor-arg>
<constructor-arg name="executorType" value="BATCH"> </constructor-arg>
</bean>
<property name="dataSource" ref="pooledDataSource"></property>
</bean>
<aop:config>
<aop:pointcut expression="execution(* com.atguigu.crud.service..*(..))" id="txPoint"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="txPoint"/>
</aop:config>
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="*"/>
<tx:method name="get*" read-only="true"/>
</tx:attributes>
</tx:advice>
<bean id="SqlSession" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg name="sqlSessionFactory" ref="sqlSessionFactoryBean"></constructor-arg>
<constructor-arg name="executorType" value="BATCH"> </constructor-arg>
</bean>