栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

springmvc第四天--SSM的整合(xml版)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

springmvc第四天--SSM的整合(xml版)

目录

一、spring的配置

1.导入依赖

2.相关配置

 3.测试ioc di aop

   3.1 测试ioc和di                 

  3.2 测试aop

        

  

二、springmvc的配置

1.导入依赖

2.配置前端控制器和post的中文乱码

3.springmvc的配置文件

4.编写请求类  进行测试 

三、mybatis的配置

 1.导入依赖

2.编写全局配置文件 

3.测试

四、mybatis-spring的整合

   ​编辑

 1.入门级解决方案  

 2.发现映射器

  2.1 方式1--spring bean配置

 2.2 mybatis的命名空间

 2.3 注解  @MapperScan(basePackage="")



遵循原则---单个进行测试,通过后才能进行下一个框架的整合

一、spring的配置

1.导入依赖
  • spring-context
  • spring-beans
  • spring-core
  • spring-expression
  • spring-jcl
  • log4j2-core
  • lig4j2-api
  • spring-aop
  • aspectweaver
  • aopaliance
  • spring-aspect
  • spring-text
  • junit
  • hamcrest

2.相关配置


        
        
        
        
        
        
        
        

 3.测试ioc di aop

   3.1 测试ioc和di
                 
package com.sofwin.pojo;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class User {
	@Value("2")
     private Integer id;
	@Value("zhangsan")
     private String userName;
 	
    public void add() {
    	System.out.println("add");
    }
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
	
	
}

 

 @Autowired
   private User user;
	
   //测试ioc   di
	@Test
	public void test01() {
		  System.out.println(user);
		  assertNotNull(user);
		  assertEquals("2", String.valueOf(user.getId()));
		  assertEquals("zhangsan",user.getUserName());
	}

3.2 测试aop

        
package com.sofwin.advice;

import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;

@Component
//声明是增强类
@Aspect
public class AdviceUser {
   
	@Pointcut(value = "execution(* com.sofwin.pojo.*.add(..))")
	public  void a() {
		
	}
	
//环绕增强
	@Around(value = "a()") 
	public  void arount(ProceedingJoinPoint joinPoint) throws Throwable {
		System.out.println("before");
		Object proceed = joinPoint.proceed();
		System.out.println("after");
	}
}

  
//测试aop
	@Test
	public void test02() {
		   user.add();
	}

二、springmvc的配置 1.导入依赖
  • spring-web
  • spring-webmvc
  • jackson-core
  • jackson-s   databind
  • jackson-annotation
  • commons-io
  • commons-fileupload
  • jstl

2.配置前端控制器和post的中文乱码


  ssm01
  
    index.html
    index.htm
    index.jsp
    default.html
    default.htm
    default.jsp
  
  
  
 
   
      ssm01
      org.springframework.web.servlet.DispatcherServlet
      
        contextConfigLocation
        classpath:applicationContext.xml
        ,classpath:applicationContext-mvc.xml,
        classpath:applicationContext-mybatis.xml,
         classpath:applicationContext-tx.xml
      
      1
   
   
     ssm01
     /
   
   
   
   
      MyCharEncoding
      org.springframework.web.filter.CharacterEncodingFilter
      
        encoding
        UTF-8
      
      
        forceRequestEncoding
        true
      
      
        forceResponseEncoding
        true
      
   
   
    
       MyCharEncoding 
       
       /*
    

注意:要将后面设置的所有配置文件都让前端控制器给我们创建

3.springmvc的配置文件


        
        
       
       
        
        
       
      
       
       
     
       
       
       
        
       
        

4.编写请求类  进行测试 
@Controller
public class UserController {
   
	//测试springmvc是否成功
	@ResponseBody
	@GetMapping("/test01")
	public User test01(User user) {
		return user;
	}

	@Autowired
	private User user;
	
	//测试spring和 springmvc是否整合成功
	@ResponseBody
	@GetMapping("/test02")
	public User test02() {
		return user;
	}
}
 

三、mybatis的配置

 1.导入依赖
  • mysql-connector-java
  • mybatis
  • pageHelper
  • jsqlParse

2.编写全局配置文件 


  
  	
  		
  			
  			
  				
  				
  				
  				
  			
  		
  	
  	
  		
  	
  

3.测试
package com.sofwin.dao;

public interface UserMapper {
     //查询数量
	int selectSumNum();
	
	int insertOne(Integer id);
	
	
}



      
      
      
        insert into  b_user(id) values(#{id})
      

 

//测试mybatis
			@Test
			public void test03() throws IOException {
				 SqlSessionFactoryBuilder  sessionFactoryBuilder=new SqlSessionFactoryBuilder();
				  //这里注意的是  是Resources   不是Resource
				 InputStream is =Resources.getResourceAsStream("config.xml");
				 System.out.println(is);
				 SqlSessionFactory factory = sessionFactoryBuilder.build(is);
				 SqlSession sqlSession = factory.openSession();
				 UserMapper mapper = sqlSession.getMapper(UserMapper.class);
				 int num = mapper.selectSumNum();
				 System.out.println(num);
			}
这里我们发现每次调用测试的时候,还是有new,是主动的创建对象
mybatis依旧需要程序来获取builder和mapper,因此可以将对象的创建交给spring管理

springframework整合mybatis 是在github 中mybatis-spring  

文档地址:mybatis-spring –

四、mybatis-spring的整合

MyBatis-Spring 会帮助你将 MyBatis 代码无缝地整合到 Spring 中。它将允许 MyBatis 参与到 Spring 的事务管理之中,创建映射器 mapper 和 SqlSession 并注入到 bean 中,以及将 Mybatis 的异常转换为 Spring 的 DataAccessException。 最终,可以做到应用代码不依赖于 MyBatis,Spring 或 MyBatis-Spring。

   mybatis-spring整合 主要解决了

  • mapper的创建
  • sqlSessionFactory的创建
  • mybatis的事务管理---使用spring的事务管理
  • myabtis的异常---使用spring的全局异常处理器 

   

 1.入门级解决方案  



             
        
      
        
       
          
           
            
             
       
       
       
       
          
          
          
          
         
          
           
              
       
       
     

  
       
       
       
              创建mapperfactory的工厂将Mapper交给spring管理
       
           
          
       
  
    
  

缺点:每个接口都需要手动去配置MapperFactoryBean 

2.发现映射器

可以通过配置扫描到mybatis的所有接口文件,并通过spring来自动为扫描到的接口文件创建代理对象

  2.1 方式1--spring bean配置

org.mybatis.spring.mapper.MapperScannerConfigurer 配置

MapperScannerConfigurer配置



             
        
      
        
       
          
           
            
             
       
       
       
       
          
          
          
          
         
          
           
              
       
       
     

 
    
    
	     
	        
	           
	           
	               手动设置sqlSessionFcotory工厂  
	                 设置名称 用value
	          
	           
	        
	       
        
	      

2.2 mybatis的命名空间

跟bean的差不多,但是命名空间无序配置sqlSessionFactoryBean了,会自动加入



             
        
      
        
       
          
           
            
             
       
       
       
       
          
          
          
          
         
          
           
              
       
       
     

 
    
	  
        
	        
	        
	        
	        
	        

 2.3 注解  @MapperScan(basePackage="")

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1024137.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号