1、applicationContext.xml
1、开启扫描注解 context:component-scan
<!-- 开启注解扫描,希望处理service和dao ,controller不需要spring处理-->
<context:component-scan base-package="com.yzq">
<!-- 配置哪些注解不扫描-->
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
2、spring整合mybatis
配置连接池
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="com.mysql.cj.jdbc.Driver" />
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/java_frame?serverTimezone=UTC" />
<property name="user" value="root" />
<property name="password" value="yangzhi" />
</bean>
配置SqlSessionFactory工厂 得到代理对象
配置SqlSessionFactory工厂,这就相当于IOC容器中有了工厂,就可以去创建SqlSession,进而通过SqlSession拿到代理对象
<bean id="SqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
</bean>
配置映射文件所在包 AccountDao 生成哪些接口的代理对象
工厂有了,SqlSession也有了,那代理谁呢,所以我们要配置IAccountdao接口所在包,告诉SqlSession去代理接口所在包中的代理,从而存到IOC容器中
<bean id="MapperScanner" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.yzq.dao"/>
</bean>
3、 spring整合mybatis框架配置事务(Spring的声明式事务管理)
在applicationContext.xml中配置Spring框架声明式事务管理
<!--配置spring框架声明式事务管理 -->
<!-- 配置事务管理器-->
<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="find*" read-only="true"/>
<tx:method name="*" isolation="DEFAULT" />
</tx:attributes>
</tx:advice>
<!-- 配置AOP增强-->
<aop:config>
<aop:advisor advice-ref="txadvice" pointcut="execution(* com.yzq.service.impl.*ServiceImpl.*(..))"/>
</aop:config>
2、springmvc.xml配置
1、开启注解扫描,只扫描controller注解
<!-- 开启注解扫描 只扫描Controller注解-->
<context:component-scan base-package="com.yzq">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
2、配置视图解析器对象
<!-- 配置视图解析器对象-->
<bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/pages/" />
<property name="suffix" value=".jsp"/>
</bean>
3、过滤静态资源
<!-- 过滤静态资源 -->
<mvc:resources location="/css/" mapping="/css/**" />
<mvc:resources location="/images/" mapping="/images/**" />
<mvc:resources location="/js/" mapping="/js/**" />
4、开启springmvc注解的支持
<!-- 开启springmvc注解的支持 -->
<mvc:annotation-driven />
3、web.xml
1、配置前端控制器
<!-- 配置前端控制器 -->
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 加载springmvc.xml配置文件-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<!-- 启动服务器,创建该servlet-->
<load-on-startup>1</load-on-startup>
<async-supported>true</async-supported>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
2、解决中文乱码的过滤器
<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>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
3、配置spring的监听器 —启动服务器时就加载spring配置文件
<!-- 配置spring的监听器 默认只加载WEB-INF目录下的applicationContext.xml配置文件-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!--监听器会监听指定位置的文件,如何去指定特定目录下的配置文件呢? 解决-->
<!-- 设置配置文件路径-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>