ssm整合流程

1. web.xml配置文件

1.1配置前端控制器
配置DispatcherServlet,配置这个是拦截所有请求,都交给springmvc转发

拦截所有的请求,并加载所有的ssm配置文件(路径为classpath:---)

contextConfigLocation 不是必须配置的,不配置springmvc的配置文件默认在:WEB-INF/servlet的name+"-servlet.xml"
<!-- 配置前端控制器 -->
	<servlet>
		<servlet-name>springMVC</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<!-- 添加配置文件 -->
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<!-- 导入springMVC和spring配置文件 -->
			<param-value>classpath:/spring/applicationContext*.xml</param-value>
		</init-param>
		
		<!-- tomcat启动时加载spring容器和springMVC容器 -->
		<load-on-startup>1</load-on-startup>
	</servlet> 
<!-- 配置post乱码过滤器 -->
 	<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>
<!--关于路径的写法
	   前缀型和后缀型
	 aa.action  全路径
	 /aa      以aa开头的路径都要拦截
	 /        全部路径拦截
	 *.do	  拦截以.do结尾后缀型路径
	 
	 "/"的说明	拦截全部请求  静态资源(html/js/css)  后期通过配置放行静态资源 
	 写/满足 resultFUl结构
	  -->	
	<servlet-mapping>
		<servlet-name>springMVC</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>

2.applicationContext-mvc.xml配置文件

<!--开启MVC注解形式  -->
	<mvc:annotation-driven/>
	

	<!--配置视图解析器  userList -->
	<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<!--使用Set方法进行注入  -->
		<property name="prefix" value="/WEB-INF/views/"></property>
		<property name="suffix" value=".jsp"></property>
	</bean>
	
	<!--配置文件上传视图解析器  暂时没有配置-->
	
</beans>

3.applicationContext.xml配置文件

<!-- 包扫描com.jt下的全部子孙包 -->
	<context:component-scan base-package="com.jt" />

	<!-- 扫描外部的配置文件交给spring容器管理 问题:如果出现多个properties文件 如何处理 方案: 1.使用通配符处理*号 *.properties 
		2.使用bean的方式通过list标签方式进行管理 -->
	<!-- <context:property-placeholder location="classpath:/properties/jdbc.properties"/> -->

	<bean id="propertyPlaceholder"
		class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
		<property name="locations">
			<list>

				<value>classpath:/properties/jdbc.properties</value>
			</list>
		</property>
	</bean>

	<!-- 配置连接池 -->
	<bean id="dataSource" class="com.jolbox.bonecp.BoneCPDataSource"
		destroy-method="close">
		<!-- 数据库驱动 -->
		<property name="driverClass" value="${jdbc.driver}" />
		<!-- 相应驱动的jdbcUrl -->
		<property name="jdbcUrl" value="${jdbc.url}" />
		<!-- 数据库的用户名 -->
		<property name="username" value="${jdbc.username}" />
		<!-- 数据库的密码 -->
		<property name="password" value="${jdbc.password}" />
		<!-- 检查数据库连接池中空闲连接的间隔时间,单位是分,默认值:240,如果要取消则设置为0 -->
		<property name="idleConnectionTestPeriod" value="60" />
		<!-- 连接池中未使用的链接最大存活时间,单位是分,默认值:60,如果要永远存活设置为0 -->
		<property name="idleMaxAge" value="30" />
		<!-- 每个分区最大的连接数 -->
		<property name="maxConnectionsPerPartition" value="150" />
		<!-- 每个分区最小的连接数 -->
		<property name="minConnectionsPerPartition" value="5" />
	</bean>
	
	<!-- 开启spring的事务控制 -->
	<!-- <tx:annotation-driven/> -->

	<!-- 配置声明事务处理 -->
	<!-- 3.1配置事务管理器 -->
	<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
			<property name="dataSource" ref="dataSource"/>
	</bean>
	
	<!--3.2定义事务策略  
		propagation="REQUIRED" 必须添加事务. 事务传播属性的默认值
		propagation="SUPPORTS" 表示事务执行 如果原来有事务则使用原事务,
								如果之前没有事务,则吧添加事务
		read-only 只读
		
		注意事项:如果使用了声明事务处理则业务方法
		必须与方法名匹配,否则将不能正确操作数据库
	-->
	<tx:advice id="txAdvice" transaction-manager="transactionManager">
		<tx:attributes>
			<tx:method name="save*" propagation="REQUIRED"/>
			<tx:method name="delete*" propagation="REQUIRED"/>
			<tx:method name="update*" propagation="REQUIRED"/>
			<tx:method name="*" propagation="SUPPORTS" read-only="true"/>
		</tx:attributes>
	</tx:advice>
	
	<!-- 配置事务切面 -->
	<!-- <aop:scoped-proxy/> 
		execution(* com.jt.manage.service..*.*(..))"
	返回值类型任意的,在service包下的全部任意方法,都要被拦截
	-->	 
	<aop:config>
			<aop:pointcut expression="execution(* com.jt.manage.service..*.*(..))" id="pc"/>
		<aop:advisor advice-ref="txAdvice" pointcut-ref="pc"/>	
	</aop:config>
	
	
</beans>
4.applicationContext-mybatis.xml配置文件
<!-- spring 整合Mybatis 
		1.管理sqlSessionFactoryBean
			1.1添加数据源
			1.2整合mybatis核心配置文件
			1.3整合映射文件
		2.spring为mapper接口生成代理对象
		
		private Resource configLocation;
  		private Resource[] mapperLocations;
  		private DataSource dataSource;
	-->
	
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource"></property>
		<property name="configLocation" value="classpath:/mybatis/mybatis-config.xml"/>
		<property name="mapperLocations" value="classpath:/mybatis/mappers/*.xml"/>
	</bean>
	
	<!-- 为mapper接口生成代理对象 
	 包扫描属性   basePackage
	-->
	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<property name="basePackage" value="com.jt.manage.Mapper"/>
	</bean> 
	
</beans>
4.1  mybatis-config.xml配置文件
<!-- 
	    Mybatis说明:
	     	特点:实现自动的对象关系映射
	     	pojo实体对象与数据库中表一一对应
	     	使用resultMap可以实现自动的转化
	     	字段			对象
	     	user_id		userid
	     	resultType不能自动的映射,
	     	但是如果使用了驼峰规则的配置则可以实现自动映射
	     	
	     	在映射时自动的将字段的"_"去掉之后首字母大写
	
	Mybatis中的缓存介绍
			1.一级缓存
				级别:sqlSession
				说明:在sqlSession内实现数据共享
				默认:开启的


			2.二级缓存
				级别:sqlSessionFacotry级别
				说明:在同一个sqlSessionFactory中获取sqlSession实现
				数据共享.
				默认:关闭的
				缺点:mybatis二级缓存效率低.一般开发不用,
				使用Redis/mamerche
		    	
	 -->

	<settings>
		<!-- 开启驼峰自动映射 -->
		<setting name="mapUnderscoreToCamelCase" value="true" />
		<!-- 二级缓存的总开关,被redis替代 -->
		<setting name="cacheEnabled" value="false" />
	</settings>
	
</configuration>




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值