1、在web.xml中增加spring监听
<!-- 加载spring配置文件 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-context.xml</param-value> </context-param>
然后是spring MVC
注解在项目中运用是很方便,大大减少了开发的难度:
<!-- spring MVC 配置 --> <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:dispatcher-servlet.xml</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping>
2、创建spring配置文件:spring-context.xml
在二者整合中spring配置文件中有两项是必须的:datasource(数据源)和sqlsessionfactory(事务工厂类)。
当然,用*.propertities文件来储存数据源是个不错的选择。
<!-- =================================加载*.properties文件================================= --> <context:property-placeholder ignore-resource-not-found="false" ignore-unresolvable="false" location="classpath:config.properties"/> <!-- =================================设置数据源,这是必须的================================= --> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="${driver}"></property> <property name="url" value="${url}"></property> <property name="username" value="${username}"></property> <property name="password" value="${password}"></property> </bean> <!-- =========================设置sqlsessionfactorybean,这是必须的========================= --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"></property> <!-- 用mybatis的配置文件生成sqlSessionFactory --> <property name="configLocation" value="classpath:mybatis-config.xml"></property> </bean>
开启spring MVC注解功能
<!-- 事务管理开启注解 --> <tx:annotation-driven transaction-manager="transactionManager"/> <!-- 开启自动注入注解 --> <bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>
配置spring aop切面编程,引进service层
<!-- ==============================设置spring事务管理,这个是可选的=========================== --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"></property> </bean> <!-- ===============================创建切面编程的方法命名标准================================ --> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="add*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception" no-rollback-for="java.lang.RuntimeException"/> <tx:method name="insert*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception" no-rollback-for="java.lang.RuntimeException"/> <tx:method name="save*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception" no-rollback-for="java.lang.RuntimeException"/> <tx:method name="delete*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception" no-rollback-for="java.lang.RuntimeException"/> <tx:method name="update*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception"/> <tx:method name="motify*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception"/> <tx:method name="query*" propagation="REQUIRED"/> <tx:method name="select*" propagation="REQUIRED"/> <tx:method name="find*" propagation="REQUIRED"/> </tx:attributes> </tx:advice> <!-- ====================================定义切面编程======================================== --> <aop:config> <aop:pointcut expression="execution(* org.system.service.*.*(..))" id="servicePoint"/> <aop:advisor advice-ref="txAdvice" pointcut-ref="servicePoint"/> </aop:config>
扫描你所写的mapper接口,在这里我仍以dao来命名
<!-- ==============================扫描有所Mapper,为其创建Sqlsession======================== --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="org.system.dao" /> </bean>
注入serviceImpl中sessionFactory
<!-- =====================================注入Service======================================= --> <bean id="userService" class="org.system.service.impl.UserServiceImpl"></bean>
3、创建mybatis-config.xml 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> <setting name="cacheEnabled" value="true" /> <setting name="lazyLoadingEnabled" value="true" /> <setting name="multipleResultSetsEnabled" value="true" /> <setting name="useColumnLabel" value="true" /> <setting name="useGeneratedKeys" value="true" /> <setting name="defaultExecutorType" value="SIMPLE" /> <setting name="defaultStatementTimeout" value="25000" /> </settings> <typeAliases> <typeAlias alias="user" type="org.system.entities.User" /> </typeAliases> <mappers> <mapper resource="mapper/UserMapper.xml" /> </mappers> </configuration>
4、创建spring mvc的拦截配置文件dispatcher-servler.xml文件
<!-- View Resolver for JSPs --> <bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="requestContextAttribute" value="rc" /> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" /> <property name="prefix" value="/WEB-INF/view/" /> <property name="suffix" value=".jsp" /> <property name="order" value="2"></property> </bean>
我的目录结构如下:
dao:定义mapper接口
entities:中是与数据库相对应的实体类
service:服务层,用于处理业务
impl:service的实现类,调用dao中的mapper接口
mapper:中是dao中接口对应的mapper.xml sql映射文件
dispatcher-servlet:spring mvc拦截配置文件
mybatis-config:mybatis配置文件
spring-context:spring配置文件
基本做到以上就完成了。