Springmvc的执行流程和mybatis执行流程

来源:互联网 发布:张曼玉演技 知乎 编辑:程序博客网 时间:2024/06/05 19:47

Springmvc的执行流程

1.页面发送请求到前端控制器在web.xml中配置的servlet(DispatcherServlet);

2.由springmvc.xml中配置的映射器去寻找handler(按照注解的路径寻找)并将结果返回给前端控制器

3.前端控制器在调用适配器执行handeler , 并将处理的结果和逻辑路径返回给前端控制器

4.前端控制器将数据发送到视图解析器进行渲染 , 视图解析器将渲染后的视图发送回前端控制器 , 前台控制器将结果展示到页面


配置:

其中springmvc中<mvc:annotation-driven/>的标签 ;1映射器,寻找handler(处理着); 2适配器,执行handler

视图解析器:InternalResourceViewResolver内部资源视图解析器,将逻辑的访问路径转为服务器的实际访问路径


mybatis

            <!-- 配置mybatis接口开发模式 -->使用JDK基于接口的动态代理的模式
            <bean  class="org.mybatis.spring.mapper.MapperScannerConfigurer">
                <!-- 配置扫描的包 -->
                <property name="basePackage" value="cn.itcast.dao"></property>
                <!-- 将sqlSessionFactory加入 -->
                <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
            </bean>

然后在service的实现类中使用@Service , 在属性上@Resource将mapper接口注入


SSM的全流程


ItemsController中

    @RequestMapping("findAllItems")
    //1.请求通过前端控制器dispatcherServlet调用映射器寻找handler,映射器通过这个路径寻找
    public String findAllItems(Model model){
        //2.将servcie注入调用service中的findAllItems方法
        List<Items> itemsList = ItemsService.findAllItems();
        //把集合放入到model中进行回显
        model.addAttribute(itemsList);
        return "itemsList";
    }


ItemsServiceImpl中

public List<Items> findAllItems(){
        //3.service中注入Mapper的接口调用其中查询所有订单的方法
        List<Items> findAllItems = itemsMapper.findAllItems();
        return findAllItems;
    }


ItemsMapper中
    /*
     * 4.采用mybatis中接口开发 的方式
     * 需要在applicationContext中配置映射扫描器配置类(MapperScannerConfigurer)
     * 并需要遵守约定
     * 1.接口和其的配置文件必须在同一个包下
     * 2.他们的名字相同
     * 3.接口的配置文件的nameSpace需要和接口的全限定名相同;便于生成接口的代理

     */
    List<Items> findAllItems();


ItemsMapper.xml中

  <!-- 5.在接口的映射文件中执行映射查询数据库的方法 -->
  <select id="findAllItems" resultMap="BaseResultMap">
          select * from items
  </select>


ItemsController中

    @RequestMapping("findAllItems")
    //1.请求通过前端控制器dispatcherServlet调用映射器寻找handler,映射器通过这个路径寻找
    public String findAllItems(Model model){
        //2.将servcie注入调用service中的findAllItems方法
        List<Items> itemsList = ItemsService.findAllItems();
        //把集合放入到model中进行回显
        model.addAttribute(itemsList);
        //6.返回逻辑视图到内部资源视图解析器中拼接真正的访问jsp路径
        return "itemsList";
    }

0 0
原创粉丝点击