1、web.xml
a:配置spring监听,使web容器在启动时加载spring的applicationContext.xml
<listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>
b:配置contextConfigLocation指定applicationContext的位置,同时可以修改其名称
<context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-mybatis.xml</param-value> </context-param>
c:配置springmvc的拦截器DispatcherServlet,同时可以修改其位置和名称
<servlet> <servlet-name>Spring_MVC</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-mvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet>
d:配置springmvc的拦截路径
<!-- 配置拦截器拦截URL: 1、(/):这种拦截方式会导致静态文件请求无法通过,但可以通过配置defaultServlet进行弥补 2、(/*):错误的拦截方式,可以访问controller,但是无法访问JSP --> <servlet-mapping> <servlet-name>Spring_MVC</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <!-- 弥补rest风格的拦截路径配置 --> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.jpg</url-pattern> </servlet-mapping>
2、applicationContext.xml
a:自动扫描指定包下的注解(建议专门查一下这个标签)
<context:component-scan base-package="com" />
b:引入外部的properties文件(可选)
<bean id="propertityConfigure" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location" value="classpath:jdbc.properties"/> </bean>
c:配置数据连接池
<bean id="datasource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="${driver}" /> <property name="url" value="${url}" /> <property name="username" value="${username}" /> <property name="password" value="${password}" /> </bean>
d:spring和mybatis整合(配置sqlSessionFactory)
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!-- 必须的属性:dataSource --> <property name="dataSource" ref="datasource"/> <!-- 必须属性:加载mybatis配置文件() --> <property name="configLocation" value="classpath:mybatis-config.xml"></property> <!-- 自动扫描mapper.xml文件并进行注册,可以省略不写,不写的话需要在mybatis配置文件中通过mappers标签进行指定 --> <property name="mapperLocations" value="classpath:com/mapper/*.xml"/> </bean>
e:自动扫描DAO接口并进行sqlSessionFactory的注入和bean的创建
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.dao"/> <!-- 此属性可以不进行配置,不配置的情况下spring自动装配 --> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/> </bean>
f:事务管理(结合AOP进行切点织入的方式)
<!-- 配置事务管理器 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="datasource"/> </bean> <!-- 指定管理的方法以及传播属性和隔离级别等等 --> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="save*" propagation="REQUIRED" rollback-for="java.lang.Exception"/> </tx:attributes> </tx:advice> <!-- 使用AOP管理事务管理使用时机 --> <aop:config> <aop:pointcut id="serviceCut" expression="execution(* com.service.*.*(..))"/> <aop:advisor advice-ref="txAdvice" pointcut-ref="serviceCut"/> </aop:config>
3、spring-mvc.xml
a:注册DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter两个bean,这是使用@Controller及@requestBody和@responseBody等注解的前提
<mvc:annotation-driven/>
b:扫描Controller
<context:component-scan base-package="com.controller"/>
c:配置视图解析器
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- 前缀 --> <property name="prefix"> <value>/WEB-INF/jsp/</value> </property> <!-- 后缀 --> <property name="suffix"> <value>.jsp</value> </property> </bean>
4: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> </configuration>
时间: 2024-10-23 03:10:00