ssj整合

1. 三大框架整合

ssj: springmvc+spring+jpa
(1)先整合 spring和jpa

  1. 导入依赖包
  2. 配置
    配置文件applicationContext.xml

​jdbc.properties --》

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql:///ssj
jdbc.username=root
jdbc.password=123

dataSource(连接池)–》

 
 连接池
  
        
        
        
        
    

EntityManagerFactory–》



    
    
    
    
    
    
        
            
            
            
            
            
        
    

EntityManager -->事务



    




上面两个配置后就可以用注解创建事务

@Transactional(propagation = Propagation.SUPPORTS ,readOnly = true)
//事务传播机制 如果下面的方法 有事务 ,就使用事务运行 如果没有事务 就用非事务运行
//没有事务EntityManager不能运行

public class IProductDirServiceImpl implements IProductDirService {
    @Autowired
    private IProductDirDao ProductDirDao;
    @Transactional //这事务就新创建事务
    public void save(ProductDir ProductDir) {
        ProductDirDao.save(ProductDir);
    }

(2)在整合 spring和springmvc

​ a)导包

​ b)配置 web.xml和applicationContext-mvc.xml里面配置

配置在web.xml中和原来springmvc多出来的配置
当抓取策略选择懒加载时查询数据的时候会出问题
原因是会发送两次sql数据第一次发送完后事务会关闭所以会报错
配置之后会延迟事务的关闭


    openEntityManagerInViewFilter
    org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter


    openEntityManagerInViewFilter
    /*

//懒加载是返回json数据会多出个handler这个注解是忽略它不然会报错
    @JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
    private ProductDir dir;

你可能感兴趣的:(ssj整合)