文章目录

  • 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 中