Spring整合(Mybatis和Web)

一、Spring整合Mybatis

1.所需依赖

spring-context spring核心依赖
spring-jdbc 把事务控制相关交给spring管理
mybatis-spring mybatis整合spring依赖
mybatis mybatis框架所需依赖
mysql 操作数据库所需依赖

        
            org.springframework
            spring-context
            5.3.16
        
        
        
        
            org.springframework
            spring-jdbc
            5.3.16
        
        
        
            org.mybatis
            mybatis-spring
            2.0.7
        
        
            org.mybatis
            mybatis
            3.5.9
        
        
            mysql
            mysql-connector-java
            8.0.28
        

2. Spring配置文件

        applicationContext.xml

1.配置数据源(即连接池)

        1.属性注入 数据库驱动

        2.属性注入 url

        3.属性注入 用户名

        4.属性注入 密码

        以上可以单独写个jdbc.properties(key —value),在将其引入,用${}取值

2.将sqlSessionFactoryBean交给Spring管理 底层调用方法可以获得sqlSessionFactory

        1.属性注入 使用的连接池

        2.属性注入 实体类定义别名

3.将接口扫描,绑定的接口交给spring管理

        1.属性注入 接口所在包

        2.属性注入  接口类对象所需要交给的sqlSessionFactory


    
        
        
        
        
    

    

        
        
    

    
        
        
        
        
    

二、Spring整合Web

1.所需依赖

spring-context spring框架核心依赖
spring-web spring集成web所需依赖
servlet 控制层所需依赖
jsp 使用jsp页面所需,Html页面不需要
 
        
            org.springframework
            spring-context
            5.3.16
        
        
        
            org.springframework
            spring-web
            5.3.16
        
        
            javax.servlet
            javax.servlet-api
            4.0.1
            provided
        
        
            javax.servlet.jsp
            javax.servlet.jsp-api
            2.3.3
            provided
        

2.所需插件

        
            
            
                org.apache.tomcat.maven
                tomcat7-maven-plugin
                2.2
                
                    /
                    80
                    UTF-8
                
            
        

3.配置监听器

目的:

在web.xml中配置监听器,让web项目启动时自动创建Spring容器对象(WebApplicationContext)

 配置文件web.xml中

        上下文参数名param-name的值是固定的contextConfigLocation。这个值是监听器需要获取的值。

        上下文参数值param-name需要带有classpath,表示加载类路径内容。target/classes目录内容。 classpath*:表示当前项目依赖的jar中资源也会寻找。



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

4.测试

配置好后我们就可以通过WebApplicationContextUtils工具类获得Spring容器

需要传入一个参数:servletContext 。即把创建好的容器放入哪个对象中,

通过getServletContext()可以获得servletContext对象,属于应用域对象可以在整个应用程序中共享数据和资源。ServletContext对象是在应用程序启动时创建的(tomcat启动是创建,关闭时销毁)。

@WebServlet("/Login")
public class LoginServlet extends HttpServlet {
    WebApplicationContext webApplicationContext;
    @Override
    public void init() throws ServletException {
         webApplicationContext =  WebApplicationContextUtils.getWebApplicationContext(getServletContext());
    }

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setContentType("text/plain;charset=utf-8");
        String username = req.getParameter("username");
        String password = req.getParameter("password");
        int i = Integer.parseInt(password);
        System.out.println(username);
        System.out.println(password);
        //接口肯定是无法创建实例的,所以这儿传接口的类对象,spring会自动去容器里找其实现类的对象
        UserService userService = webApplicationContext.getBean(UserService.class);
        User user = userService.login(username, i);
        if (user !=null){
            resp.getWriter().print("ok登录成功");
        }else{
            resp.getWriter().print("error登录失败哦");
        }
    }

}

 

你可能感兴趣的:(spring,mybatis,前端)