SSM框架整合

文章目录

  • SSM 框架整合
    • 注解与配置文件的方式结合
      • 一、Spring 和 Mybatis 的整合。
        • 1、整合思路
        • 2、整合环境
        • 3、SqlSessionFactory
        • 4、原始Dao方式。
          • mapper.xml
          • Dao层
          • Dao接口实现类需要注入sqlSessionFactory,通过spring进行注入。
          • 测试程序
        • 5、mapper 代理的方式
          • UserMapper.java 是一个接口类,存放外部访问持久层的方法
          • UserMapper.xml 是一个编写Sql 的语句 ,里边存放访问数据库的sql。
          • 配置文件需要修改
      • 二、SpringMVC 与 Mybatis 整合
        • 所需要jar包:
          • 检查 SqlMapConfig.xml 文件
      • 三、需要注意几个配置。
        • web.xml 中的配置。
        • springmvc.xml 中的配置。

SSM 框架整合

我已经开始学习SpringBoot 的内容了。但是还是要复习一下之前的内容。先补救一下SSM注解式开发与配置文件式的开发。

注解与配置文件的方式结合

一、Spring 和 Mybatis 的整合。

第一步:整合Dao层。Mybatis+spring整 合
	使用mapper的扫描器自动扫描mapper接口在spring中进行注册。
第二层:管理service层。通过spring管理service接口
	使用配置方式 将serivce接口配置在spring配置文件中。
	实现事物控制。
第三步:整 合springMVC。
	由于springmvc是spring的子模块,所以不需要整合

1、整合思路

  1. 持久层的 mapper、dao 都需要由spring进行管理。
  2. 需要 spring 通过单例方式管理 sqlSessionFactory.
  3. Springmybatis 整合生成代理对象,使用sqlsessionFactory创建sqlsession.

2、整合环境

  • 创建一个新的 JAVA 工程。
  • Jar 包:
  1. Mybatis 的 Jar 包。
  2. Spring 的 Jar 包。
  3. Spring 和 Mybatis 的整合包。
  4. 数据库连接池的包。
  • 工程目录
    SSM框架整合_第1张图片

3、SqlSessionFactory

  • 在applicationContext.xml配置sqlSessionFactory和数据源。
  • sessionFactory在mybatis和spring的整合包下配置。
这里是 application.xml






        
        
        
        
        
        
        
        
        
        
        
        
        
        
    
    

	
	
	
	
	
	

还需要另外的配置文件。

// Mybatis 的配置文件 Sqlmapconfig.xml 
// Sqlmapconfig.xml 配置实体类别名与映射的xml文件。通用mapper与分页助手等Mybatis 的插件也配置在这个文件中。
  
  

	
	   
	
	
		
		
	

4、原始Dao方式。

mapper.xml





Dao层
userDao.java
public interface UserDao {
	//  根据ID查询用户信息
	public User findUserById()throws Exception;
}

编写 UserDaoImpl 实现类继承 SqlSessionDaoSupport 。

public class UserDaoImpl extends SqlSessionDaoSupport implements UserDao{
	@Override
	public User findUserById() throws Exception {
		//通过 工厂得到SqlSession
		SqlSession sqlSession=this.getSqlSession();
		//通过sqlSession操作数据库
		//第一个参数statementID (nameSpace+'.'+statementid   test.findUserById)
		//第二个参数指定和映射文件中所匹配的paramenterType类型的参数
		User user=sqlSession.selectOne("test.findUserById",1);
		return user;
	}
}
Dao接口实现类需要注入sqlSessionFactory,通过spring进行注入。
spring声明配置方法,配置dao的bean .完善 UserDao 中的注入内容。


	

测试程序
public static void testFindUserById() throws Exception{
		//得到spring容器
		ApplicationContext  applicationContext=new ClassPathXmlApplicationContext("classpath:spring/applicationContext.xml");
		UserDao userDao= (UserDao) applicationContext.getBean("userDao");
		User user=userDao.findUserById();
		if(user!=null){
			System.out.println(user.getUserName());
		}else{
			System.out.println("没有找到用户!");
		}
	}

5、mapper 代理的方式

  • 项目构建目录发生变化
    SSM框架整合_第2张图片
UserMapper.java 是一个接口类,存放外部访问持久层的方法
UserMapper.xml 是一个编写Sql 的语句 ,里边存放访问数据库的sql。

**通过一种特殊的动态代理的方式,通过接口的名字直接返回namespace+id,执行使用的sql 语句。
**

配置文件需要修改

    
    
    
    

二、SpringMVC 与 Mybatis 整合

这步完成,之后,整个SSM框架就等于整合完了。

所需要jar包:

  • 数据库驱动包:
  • Mybatis的jar包
  • Mybatis和spring的整合包
  • Log4j包
  • dbcp数据库连接池的包
  • Spring3.2所有jar包
  • Jstl包
检查 SqlMapConfig.xml 文件
主要进行setting 和 typeAliases 的配置。

 









除了上述改动之后,还需要配置很多内容
有些时候,我们将 application.xml 文件配置拆分为三个 application-dao.xml 配置 数据源、mapper扫描等配置,application-service.xml 配置扫描的@Service的内容、application-tran.xml 配置AOP切面编程、切面的内容。

// 1、Spring的数据源配置文件 applicationContext-dao.xml



    
    
    
    
        
        
        
        
        
        
    
    
    
        
        
    
    
    
        
    

//  2、Spring的配置文件applicationContext-service.xml 扫描@Service注解


    
    

 // 3、Spring的事物配置 applicationContext-trans.xml
 


    
    
        
        
    
    
    
        
            
            
            
            
            
            
            
            
            
            
        
    
    
    
        
    

  • 上述的内容是 Spring 的配置文件,还需要配置SpringMVC 的内容。由前段控制器拦截请求,查找映射并执行方法。
// 配置 springmvc的配置文件 springmvc.xml 。



    
    
    
        
        
    
    
    
    
    
    
    
        
        
        
        
    
 

使用逆向工程生成 mapper 和 entity 的内容,然后加上Service 与Controller层。
**那么怎么判断整合成功了呢?**可以通过访问页面,通过页面上的按钮访问Controller层,前端控制拦截器拦截,然后通过Controller层的代码访问Service进行业务处理,处理dao 层传来的数据。这样就成功了。

三、需要注意几个配置。

web.xml 中的配置。

  • Spring 的上下文配置。
  • SpringMVC 的前端控制器。

springmvc.xml 中的配置。

  • 手动配置的处理请求映射器和适配器

 




  • 自动配置的注解配置映射器和适配器

	- 标签自动注册处理器映射器和适配器。
	- 还支持数据绑定支持,默认配置代替手动配置。
// 告知Spring,我们启用注解驱动。然后Spring会自动为我们注册上面说到的(开启注解,注解配置映射器和注解配置适配器)Bean到工厂中,来处理我们的请求。
1、添加上述内容的时候,Spring会自动加载
xmlns:mvc="http://www.springframework.org/schema/cache"
应该为
xmlns:mvc="http://www.springframework.org/schema/mvc"
  • 配置注解扫描
标签是告诉Spring 来扫描指定包下的类,并注册被@Component,@Controller,@Service,@Repository等注解标记的组件。

你可能感兴趣的:(ssm)