栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring &SpringMVC &Mybatis

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring &SpringMVC &Mybatis

文章目录

Spring

    ioc:

    Aop:

      

注入的方式:

         设计模式:

SpringMVC   

 1.工作流程:

  2.开发流程

            2.1 导入pom依赖       

            2.2web.xml中添加核心类配置,DispatcherServlet,指向框架        

            Springmvc.xml的配置文件     

            2.3配置Springmvc.xml      

            配置驱动包扫描  

               3.常用的注解

           4. springmvc怎么返回数据

  Mybatis

       Mybatis简介:

        MyBatis 的优点和缺点

优点:

缺点:

 关联关系的配置

        mapper.xml配置的常用标签

       Mybatis中的二级缓存默认关闭的

    重点:

总结


Spring

    ioc:


         控制反转、依赖注入
        由原来程序员手段创建对象的权利,转交给Spring容器;
        优点:代码的维护性提高了

      Aop:

       面向切面
        代理=目标+通知
        将核心业务与非核心分离,使程序员将精力都放在核心业务中;
        
        定义切面:* *..*.*service.*del(..)
        定义通知:@around


      

注入的方式:


        set注入
        构造注入:
        自动装配:byname,bytype
            @autowised @resource
            
    new xmlclasspathapplication("springContext.xml");
    

    设计模式:

        单例模式:Bean 默认为单例模式
        原型模式:用来解决代码重复的问题。比如. RestTemplate, JmsTemplate,  
        工厂模式:BeanFactory 就是简单工厂模式的体现,用来创建对象的实例;
        代理模式:Spring 的 AOP 功能用到了 JDK 的动态代理和 CGLIB 字节码生成技术;
      

SpringMVC
        1.工作流程:

 


    1.1.DispatcherServlet:接受到浏览器端发送的所有请求
    1.2.HandlerMapper处理器映射器:找到@requestMapping对应值
    1.3.HandlerAdapter处理器适配器:适配对应的方法调用执行
    1.4.modelAndView模型视图对象:方法的返回值
    1.5.viewResolver解析模型视图对象,得到view,返回给浏览器用户展示;
    

2.开发流程


         2.1 导入pom依赖
         2.2web.xml中添加核心类配置,DispatcherServlet,指向框架           Springmvc.xml的配置文件
          2.3配置Springmvc.xml
        配置驱动包扫描
  

     重点:配置本地资源视图解析器
      

  
        
            
            
            
            
        
        添加静态文件映射
         


  2.4controller层,正常开发即可
        要通过@controller标记当前类被spring所管理
        写方法:@requestMapping
        方法会有返回值:“bookList” --> /bookList.jsp
    
  

 3.常用的注解


 @controller @requestMapping

@getMapping @putMapping

@deleteMapping @postMapping 
@responseBody-返回json数据    @requestBody-接受json数据  

 @pathvariable   @requestParam
    
  

   4. springmvc怎么返回数据

    转发:"forword:/list"
    重定向:"redirect:/list"

Mybatis

       Mybatis简介:

ORM    Object reference Mapping,数据库层面的框架

     

        MyBatis 的优点和缺点

优点:
(1) 基于 SQL 语句编程,相当灵活,不会对应用程序或者数据库的现有设计造成任何影响,SQL 写在 XML 里,解除 sql 与程序代码的耦合,便于统一管理;提供 XML 标签,支持编写动态 SQL 语句,并可重 用。 (2) 与 JDBC 相比,减少了 50%以上的代码量,消除了 JDBC 大量冗余的代码,不需要手动开关连接; (3) 很好的与各种数据库兼容(因为 MyBatis 使用 JDBC 来连接数据库,所以只要 JDBC 支持的数据库 MyBatis 都支持)。 (4) 能够与 Spring 很好的集成; (5) 提供映射标签,支持对象与数据库的 ORM 字段关系映射;提供对象关系映射标签,支持对象关系 组件维护。

缺点:
(1) SQL 语句的编写工作量较大,尤其当字段多、关联表多时,对开发人员编写 SQL 语句的功底有一定 要求。 (2) SQL 语句依赖

 关联关系的配置

         一对一:association javatype
        一对多:Collection    oftype

        mapper.xml配置的常用标签

    if/for


             用于解决特殊字符转义的,没有CDATA的话,> < & 等会被当成HTML标签,而不是sql语句的组成部分;

Mybatis中的二级缓存默认关闭的

        二级缓存:Mapper级别的缓存,默认关闭
        一级缓存:session级别的缓存,默认就是开启的;

一级缓存:                       基于 PerpetualCache 的 HashMap 本地缓存,其存储作用域为 Session,当       Session flflush 或 close 之后,该 Session 中的所有 Cache 就将清空,默认打开一级缓        存。 二级缓存:                      二级缓存与一级缓存其机制相同,默认也是采用 PerpetualCache,HashMap 存储,不同在于其存储作用域为                     Mapper(Namespace),并且可自定义存储源,如 Ehcache。默认不打开二级缓存,要开启二级缓存,使用二级缓存属性类需要实现 Serializable 序列化接口(可用来保存对象的状态),可在它的映射 文件中配置 ;                    对于缓存数据更新机制,当某一个作用域(一级缓存 Session/二级缓存 Namespaces)的进行了 C/U/D 操作后,默认该作用域下所 有 select 中的缓存将被 clear 掉并重新更新,如果开启了二级缓存,则只根据配置判断是否刷新。

    重点:

        #{...}与${...}传参的区别

#{}是预编译处理,${}是字符串替换。 Mybatis 在处理#{}时,会将 sql 中的#{}替换为?号,调用 PreparedStatement 的 set 方法来赋值; Mybatis 在处理${}时,就是把${}替换成变量的值。 使用#{}可以有效的防止 SQL 注入,提高系统安全性。


        #传递参数会自带引号
        S不带引号:存在SQL注入的问题,但是也有优点,可以用来做动态列/动态SQL
        上述的不同,也就决定了$存在SQL注入的风险
        UserMapper.xml    前提uid是varchar

select * from user where uid = #{uid} uid='abc' or uid is not null
		select * from user where uid = ''abc' or uid is not null'
		select * from user where uid = ${uid}	uid='abc' or uid is not null
		select * from user where uid = 'abc' or uid is not null
		
		
		select * from user where uid = #{uid}
		
		
		
		
		
	
	UserMapper.execute("select * from book")

总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/956339.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号