SSM框架的整合详解(SpringMVC + Spring + MyBatis)

使用SSM框架编写了这么久项目,想为大家分享一点具体SSM框架中具体的详细配置流程和注意事项,希望大家在我的讲解完毕以后,大家在配置整个流程中遇到得到问题迎刃而解,不会让配置框架运行成为大家前进的绊脚石!接下来大家请看SSM框架整合配置详解:

(一)SpringMVC和Spring框架的整合

(1) 先要配置SpringMVC框架的总控制器(DispatcherServlet),用来分发请求以及 URL 与其对应控制器中的相应方法进行请求的处理;


  
    springmvc
    org.springframework.web.servlet.DispatcherServlet
    1	
  	
  
    springmvc
    /	
  


(2) 配置组件扫描,配置完在SpringIoC容器创建后,会立即扫描该包下的所有类,凡是使用了注解的类都会通过bean的形式注入到SpringIoC容器当中;


        
        



(3) SpringMVC和Spring共用一个SpringIoC容器,需要配置相应的处理器映射以及处理器适配器映射,分别负责将请求 URL 映射到某个处理器和帮助定位到请求处理方法和参数装载等;


	
	 
	
	

可以使用注解驱动来代替上面两个映射器的配置:(可以替换映射器的配置)

【示例】:



(4) 若要访问静态资源,静态请求将由 Tomcat 服务器中默认的 Servlet 处理,将其对应的URL 映射到请求的静态资源;


        
        
        


可以使用Tomcat服务器中的配置来将静态资源映射到jsp页面上:(可以替换配置)

【示例】:


(5) 若要进行多部分请求,例如:文件上传,需要配置具体的多部分表单解析器(可选配置,若有文件上传,就必须要配置多部分请求解析器);


        
        	
				
				
        


(6) 需配置视图解析器(默认为内部资源视图解析器InternalResourceViewResolver,控制器中某方法执行完请求,返回的逻辑视图名是否存在,都会返回一个内部资源视图对象InternalResourceView对象);


   		
   			
   			
   			
   		



(二) Spring和MyBatis框架的整合

(1) Spring和MyBatis框架使用同一个数据源;(可以是 dbcp数据源,也可以是C3p0的数据源);

  
           
        
        	
		   	
		   	
		   	
		   	
		    
		    
        


(2) 配置事务管理器,具体事务操作,开启事务,事务提交,事务回滚,具体交给谁管理;(需要配置数据源,事务管理中需要数据库连接对象,数据库连接对象在其数据库中获取); 


       
       		
        	
       


(3) 配置事务增强,具体是哪些方法需要设置事务处理,需要配置何种事务(只读事务read-only="true",加入事务REQUIRED)并且交给事务管理器进行相应的管理操作;(需要配置相应的事务管理器);

  
        
        		
        		
        		
        		
        		
        	
        



(4) 配置AOP切面,具体业务逻辑层中哪些类及其子类中的哪些方法需要织入事务处理(需要配置切点,需要织入事务的一系列连接点;通知器配置,需要织入的是什么事务类型);


        
        	
        	
        	
        	
        


(5) 配置SqlSessionFactory的bean配置,需要配置(数据源、映射数据库访问层接口的xml文件、类型别名包);SqlSessionFactory实例是重量级对象,应用程序中只包含一个,用来创建SqlSession对象,然后根据SqlSession对象创建出对应数据库访问层接口实现类对象,进行数据库操作(SQL语句的执行);

 
        
        	
        	
        	
        	
        	
        	
        		classpath:com/xupt/ttms/dao/*Dao.xml
        	
        


(6) 配置实现Dao层接口的所有bean的实例,需要配置(SqlSessionFactory对象,用来创建SqlSession对象;basePackage用来指定要实例化对象所在的包,一一实例,实例化的对象名称为该包下类名的简化名称);


   		
	   		
	     	
	     	
	     	
   		


附加知识点(了解即可):配置实现Dao层接口的所有bean的实例,需要配置(SqlSessionFactory对象,用来创建SqlSession对象,若业务逻辑层接口只有一个,也可以这样配置,一次只能配置一个实现某个数据库访问层接口实现类,名称可以随意起,但是多个数据库访问层接口,就需要多次这样的配置,较繁琐);


      
     	
     	
     	
     	
     


注意:一般项目中有多个数据库访问层接口实现类,使用MappSacnnerConfigurer进行一次性配置,名称即为该接口的简化名;若为测试数据,只有一个数据库访问层接口实现类,可以使用MapperFactoryBean类即可,名称可以随意起;(建议一般使用MappingScannerConfigurer进行配置,简介简单明了)




你可能感兴趣的:(java后台学习)