美文网首页
使用Spring 简化MyBatis

使用Spring 简化MyBatis

作者: Yanl__ | 来源:发表于2019-12-10 16:08 被阅读0次

    步骤

    1. 导入mybatis 所有jar 和spring 基本包,spring-jdbc,spring-tx,spring-aop,spring-web,spring整合mybatis 的包等
    2. 配置web.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
             version="4.0">
        <!--    上下文参数-->
        <context-param>
            <param-name>contextConfigLocation</param-name>
            <!--        设置Spring配置文件-->
            <param-value>classpath:applicationContext.xml</param-value>
        </context-param>
    
        <!--    封装了一个监听器,帮助加载Spring的配置文件-->
        <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener>
    </web-app>
    
    1. 编写spring 配置文件applicationContext.xml
    2. 编写代码

    1 正常编写pojo
    2 编写mapper 包下时必须使用接口绑定方案或注解方案(必须有接口)
    3 正常编写Service 接口和Service 实现类
         3.1 需要在Service 实现类中声明Mapper 接口对象,并生成
    get/set 方法
    4 spring 无法管理Servlet,在service 中取出Servie 对象

    原因:servicrImpl service的实现类由Spring管理了,所以不能在servlet中new 一个serviceImpl类。
    所以要重Spring中把这个对象取出来

    @WebServlet("/show")
    public class AirportServlet extends HttpServlet {
        private AirportService airportService;
    
    // 在下面service方法执行之前会执行它
        @Override
        public void init() throws ServletException {
            // 对service实例化
            ApplicationContext ac = WebApplicationContextUtils.getRequiredWebApplicationContext(getServletContext());
            airportService = ac.getBean("airportService", AirportServiceImpl.class);
        }
    
        @Override
        protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            req.setAttribute("list", airportService.show());
            req.getRequestDispatcher("index.jsp").forward(req, resp);
        }
    }
    

    分析:
    tomcat启动时会自动加载web.xml这个配置文件,所以在web.xml中做下面步骤2的配置,让web.xml读取Spring的配置文件,所以当tomcat启动时,就会读取Spring的配置文件,将其放在WebApplicationContext容器中

    • 所以Spring和Web整合后所有信息都存放在WebApplicationContext中,通过下面代码将serviceImpl对象拿出来
    ApplicationContext ac = WebApplicationContextUtils.getRequiredWebApplicationContext(getServletContext());
    airportService = ac.getBean("airportService", AirportServiceImpl.class);
    

    相关文章

      网友评论

          本文标题:使用Spring 简化MyBatis

          本文链接:https://www.haomeiwen.com/subject/pjsggctx.html