SSM集成

spring+springMVC+MyBatis集成

一、创建Java项目

SSM集成_第1张图片

二、修改tomcat设置

SSM集成_第2张图片
1.启动服务器测试能否运行tomcat

2.在WEB-INF中创建lib文件夹,放入jar包
在这里插入图片描述
SSM集成_第3张图片
3.右键设置为library
在这里插入图片描述4.创建文件夹resources,上色,设置为资源文件夹
SSM集成_第4张图片

5.创建applicationContext.xml资源文件
Spring官方文档中找到配置文件
SSM集成_第5张图片6.拷贝到applicationContext中进行修改,创建测试bean,Data类的注入



    

7.测试spring环境是否成功,新建测试包,上色
SSM集成_第6张图片8.要改为spring的测试环境,先导junit的测试包,再导入spring的测试

RunWith:运行spring的测试
ContextConfiguration:读取核心配置文件中配置的bean
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class SpringTest {
    @Autowired
    private Date date;
    @Test
    public void test() throws Exception {
        //测试。。。
        System.out.println(date);
    }
}

9.注入成功说明spring运行环境可以使用
在这里插入图片描述抽取测试类,BaseTest,以后的测试类直接继承
SSM集成_第7张图片Spring的环境就搭建完成

三、继续搭建spring-MVC

1.导入jar包
SSM集成_第8张图片
2.配置web.xml

Spring和springmvc都有自己的容器context,形成子从上下文
SSM集成_第9张图片
3.配置监听器,监听context


    org.springframework.web.context.ContextLoaderListener

读取:applicationContext.xml spring容器初始化


    transformWsdlLocation
    classpath:applicationContext.xml
	

4.读取:applicationContext-mvc.xml 文件



    springmvc
    org.springframework.web.servlet.DispatcherServlet
    
        contextConfigLocation
        classpath:applicationContext-mvc.xml
    
    
    1


    springmvc
    
    
    /

5.设置字符编码过滤器



    EncodingFilter
    org.springframework.web.filter.CharacterEncodingFilter
    
        encoding
        utf-8
    


    EncodingFilter
    /*

6.完整web.xml配置




    
    
    
        org.springframework.web.context.ContextLoaderListener
    
    
    
        contextConfigLocation
        classpath:applicationContext.xml
    

    
    
        springmvc
        org.springframework.web.servlet.DispatcherServlet
        
            contextConfigLocation
            classpath:applicationContext-mvc.xml
        
        1
    
    
        springmvc
        
        
        /
    

    
    
        EncodingFilter
        org.springframework.web.filter.CharacterEncodingFilter
        
            encoding
            utf-8
        
    
    
        EncodingFilter
        /*
    

在tomcat8以前的版本需要设置get请求
在tomcat的xml文件中
在这里插入图片描述
以上都是web.xml的配置细节
下面配置applicationContext-mvc.xml

7.配置applicationContext-mvc.xml



    
    
    
    
    
    
    
    
        
        
    

Spring和spring-mvc集成就完成了

四、集成mybatis

mybatis
SSM集成_第10张图片
spring+mybatis+事务
在这里插入图片描述
other
在这里插入图片描述
1.配置applicationContext.xml






2.配置连接池






    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

3.要集成mybatis必须配置配置sqlSessionFactory
就相当于取代了MyBatis-Config.xml文件的作用,读取资源文件,创建sqlSessionFactory
原本要引入到MyBatis-Config.xml中的mapper.xml就注入到sqlSessionFactory中
Mapper应该是一个集合
使用Mapper接口时处理数据库数据,直接注入接口,mybatis自动实现,然后调用方法,sqlSessionFactory已经自动实现了



    
    
    
    
    
    



    

4.开启事务



    



5.完整applicationContext.xml



    
    
    
    
    
    

    
    
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
    

    
    
        
        
        
        
        
        
    
    
    
        
    

    
    
        
    
    
    

6.创建mapper.xml映射文件




   
    

    
        INSERT into t_dept(name) values(#{name})
    

映射数据库的sql,运行时applicationContext.xml中的sqlsessionFactory会找到映射文件
然后找到映射文件里面命名空间中命名的mapper接口,然后自动实现接口

7.创建相应的结构
SSM集成_第11张图片
8.按照规范
XxMapper接口需要与XxMapper.xml放在同一个mapper包下面
现在将XxMapper.xml放在资源文件夹中com/lr/ssm/mapper中,文件在编译时会编译到一起
保证结构正确
SSM集成_第12张图片

编译过后

SSM集成_第13张图片
完成结构

SSM集成_第14张图片
9.使用部门表测试

创建实体类
public class Dept {
    private Long id;
    private String name;
}

10.创建mapper接口

public interface DeptMapper {
    //查询所有
    List loadAll();
    //添加一个
    void save(Dept dept);
}

11.创建service层接口

public interface IDeptService {
    //查询所有
    List loadAll();
    //添加一个
    void save(Dept dept);
}

12.创建service实现,并且调用接口方法


@Service
public class DeptServiceImpl implements IDeptService{
    //直接注入自动实现
    @Autowired
    DeptMapper deptMapper;
    //卧槽。。注意单词错误。。
    @Override
    public List loadAll() {
        List depts = deptMapper.loadAll();
        return depts;
    }
    //注意开启事务
    @Override
    public void save(Dept dept) {
        deptMapper.save(dept);
    }
}

13.Controller层测试

@RequestMapping("/loadAll")
@ResponseBody
public List loadAll(){
    System.out.println("=-----------===============");
    List list = iDeptService.loadAll();
    //System.out.println("=-----------===============");
    return list;
}

14.Service层开启注解事务
失败回滚

@Service
@Transactional(readOnly = true,propagation = Propagation.SUPPORTS)
public class DeptServiceImpl implements IDeptService{
    //直接注入自动实现
    @Autowired
    DeptMapper deptMapper;

    //卧槽。。注意单词错误。。
    @Override
    public List loadAll() {
        List depts = deptMapper.loadAll();
        return depts;
    }
    //注意开启事务

    @Override
    @Transactional
    public void save(Dept dept) {
        deptMapper.save(dept);
    }
}

15.浏览器测试能拿到数据库数据
SSM集成_第15张图片

集成完成

你可能感兴趣的:(SSM集成)