文章目录
- 1、SSM整合的配置文件
- 2、配置文件的相互依赖
1、SSM整合的配置文件
1、导入.property文件
<context:property-placeholder location="classpath:jdbc.properties"/>
2、配置数据库连接池(或数据源)
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<!--配置连接池属性-->
<property name="driverClass" value="${jdbc.driver}"/>
<property name="jdbcUrl" value="${jdbc.url}"/>
<property name="user" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
<!--c3p0私有属性-->
。。。。。。。。
</bean>
3、整合Mybatis
❤1、把SqlSessionFactory对象放入容器:
要通过set注入的属性:
dataSource:使用的数据源
configLocation属性指定mybatis主配置文件的路径
typeAliasesPackage属性给扫描包下的类器别名
mapperLocations扫描的映射文件的位置
(完全可以不使用mybatis的主配置文件,把属性设置到SqlSessionFactory对象上)
2、把生成的代理接口放入到容器中:
方法一:可以在创建一个impl包通过sqlsession得到相应的代理对象放入IOC
❤方法二:使用mapper扫描器MapperScannerConfigurer类:
指定使用的SqlSessionFactoryBeanName和要扫描的Dao接口位置,会把所有代理接口放入容器
<!--配置SqlSessionFactory对象-->
<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包 使用别名,可以在value中用分号放入多个位置 -->
<property name="typeAliasesPackage" value="com.example.entity"/>
<!-- 扫描sql配置文件:mapper文件扫描 -->
<property name="mapperLocations" value="classpath:mapper/*.xml"/>
</bean>
<!--配置扫描DAO接口包,动态实现DAO接口,并注入到Spring容器中-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- 注入sqlSessionFactory (适应beanname方式后处理,防止在注入之前就使用)-->
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
<!--给出扫描DAO 接口的包-->
<property name="basePackage" value="com.example.dao"/>
</bean>
4、扫描包:
一般来说,dao和service一块扫描,collection层在springmvc扫描
<context:component-scan base-package="com.zy">
<!-- 配置要忽略的注解,应为SpringMVC是用的@Conterller注解 -->
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
5、整合SpringMVC:
整合springmvc有两种方法:
❤方法一:
把springmvc配置归到一个配置文件中,在加载DispatcherServlet的时候,指定加载的文件为中文件
❤方法二:
springmvc配置文件单独配置,加载DispatcherServlet的时候只加载该文件,对于spring配置文件的
加载,使用spring提供的ServletContext容器的监听器,当该项目在Tomcat运行就加载改容器,该容器加载
就加载spring的配置文件
在web.xml文件中配置该监听器
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener> <!--设置配置文件的路径-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring.xml</param-value>
</context-param>
❤整合springmvc还需配置的对象:
1、在web.xml配置DispatchServlet对象以及乱码CharacterEncodingFilter过滤器
2、配置视图解析器:InternalResourceViewResolver
3、开启注解:<mvc:annotation-driven />
4、静态资源不拦截:<mvc:resources mapping="/css/" location="/css/**"/>
5、扫描collection<context:component-scan base-package="...."/>层等等
6、对spring还可以进行相配置:
1、配置业务层的声明式事务+开启事务的注解
2、AOP的处理
2、配置文件的相互依赖
问题:上面讲到,在整合springmvc的时候,可以把所有配置文件归位一个或者说配置文件的相互导入关系:
解决方法一:
可以把配置文件分开写成多个,通过<import resource=""/>导入到同一个文件中
解决方法二:
把所有的配置文件,配置为同一个上下文文件:项目模块-->项目-->spring 中