精华内容
下载资源
问答
  • 映射规则
    2020-04-24 17:24:38

    nginx的映射规则

    1、【alias】——别名配置,和root一样用来访问文件系统,在匹配到location配置的URL路径后,替换成【alias】配置的路径:
    l

    location /demo/ 
    { 
        alias /wjf/test/; 
    }
    

    即:请求/demo/1.jpg(省略了协议与域名),将会返回文件/wjf/test/1.jpg(省略了协议与域名)。

    2、【root】——根路径配置,和alias一样用来访问文件系统,在匹配到location配置的URL路径后,指向【root】配置的路径,并把location配置路径附加到其后。如:
    location /demo/

    location /demo/ 
    { 
        root /wjf/test/;
    }
    

    即:请求/demo/1.jpg(省略了协议与域名),将会返回文件/wjf/test/demo/1.jpg,相较于alias,使用root会把/demo/附加到根目录之后。

    3、【proxy_pass】——反向代理配置,用于代理请求,可以将请求分发到不同的ip或端口,在匹配到location配置的URL路径后,转发请求到【proxy_pass】配置的URL,是否会附加location配置路径与【proxy_pass】配置的路径后是否有"/“有关,有”/"则不附加,如:

    location /demo/ 
    { 
        proxy_pass http://127.0.0.1:8080/; 
    }
    

    即:请求/demo/1.jpg(省略了协议与域名),将会被nginx转发请求到http://127.0.0.1:8080/1.jpg。

    location /demo/ 
    { 
        proxy_pass http://127.0.0.1:8080; 
    }
    

    即:请求/demo/1.jpg(省略了协议与域名),将会被nginx转发请求到http://127.0.0.1:8080/demo/1.jpg

    location /demo/ 
    { 
        proxy_pass http://127.0.0.1:8080/img; 
    }
    

    即:请求/demo/1.jpg(省略了协议与域名),将会被nginx转发请求到http://127.0.0.1:8080/img1.jpg

    更多相关内容
  • 参考自文章: https://blog.csdn.net/qq_51691366/article/details/120168716 https://blog.csdn.net/zhangxue1232/article/details/117200268 例题1: 例题2: 以上均为个人理解,如有错误还请指正!

    参考自文章:
    https://blog.csdn.net/qq_51691366/article/details/120168716
    https://blog.csdn.net/zhangxue1232/article/details/117200268
    请添加图片描述
    例题1:
    在这里插入图片描述
    例题2:
    请添加图片描述
    以上均为个人理解,如有错误还请指正!

    展开全文
  • MyBatis-Plus - 映射规则

    2022-06-10 18:30:47
    MyBatis-Plus - 映射规则 1. 表名映射 1.1 @Table(‘表名’) 可以在实体类上添加@Table注解,指定表名称,这种方式也是推荐使用的 2.2 设置全局配置参数 默认情况下,mp会把表名转驼峰命名的方式进行匹配,比如库表...

    MyBatis-Plus - 映射规则

    1. 表名映射

    1.1 @Table(‘表名’)

    可以在实体类上添加@Table注解,指定表名称,这种方式也是推荐使用的

    2.2 设置全局配置参数

    默认情况下,mp会把表名转驼峰命名的方式进行匹配,比如库表sys_user 对应实体SysUser
    也可以在Sprong boot的application.yml文件中添加全局表前缀mybatis-plus: global-config: db-config: table-prefix: sys_ 这样的话mp在扫描时会自动在表前面加上“sys_”标识

    2. 主键生成策略

    2.1 单独设置

    实体主键属性上使用注解@TableId

     /**
         * 用户ID
         */
        @TableId(value = "user_id",type = IdType.AUTO)
        private Long userId;
    

    AUTO:自增主键,仅在数据库设置主键自增的情况下有效
    INPUT:insert之前自己设置主键
    NONE:未设置主键类型,
    ASSIGN_ID(默认策略): 雪花算法,使用该策略主键类型为Long,String,可以保证分布式系统中主键不重复
    ASSIGN_UUID: 唯一 UUID

    2.2 全局设置

    在2.1中设置的策略是仅对某张表适用若我们要想设置全局的主键策略可以在Sprong boot的application.yml文件中添加以下配置

    # 主键类型
          # AUTO 自增 NONE 空 INPUT 用户输入 ASSIGN_ID 雪花 ASSIGN_UUID 唯一 UUID
          idType: ASSIGN_ID
    

    3.字段和列名的驼峰映射

    默认情况下mp是开启了字段和列名的驼峰转换的,经典数据库命名是下划线链接的即 A_COLUMN,经典java字段命名则是 aColumn,mp默认是开启了两者的转变的,如果不想开始驼峰转换可以在配置文件中这样设置, mapUnderscoreToCamelCase: false,但是开发过程中还是推荐经典的命名规则

    3.1 指定单独的字段映射

    在开发过程中或许个别的字段,不满足我们默认的驼峰命名映射规则,我们可以在字段上指定单独的映射,使用注解 @TableField,指定列名,此注解还有个属性 exist = false/true 会标记此字段是否是数据库的列

        @TableField(value = "dept_id")
        private Long deptId;
    
    展开全文
  • Mapstruct中类型的映射规则(二)

    千次阅读 2021-09-09 08:18:42
    这篇文章主要讲解Mapstruct的属性之间的映射规则,只有了解了这些规则之后,你才能更好地理解mapstruct如何做映射,才能按照你的想法进行对象属性之间的映射。 在属性映射方面,mapstruct相比于其他映射工具有: ...

            上一篇文章主要讲解了Mapstruct的介绍、Mapstruct的优缺点、MapStruct简单的映射示例以及和常见的映射工具做了性能上的对比。

            这篇文章主要讲解Mapstruct的属性之间的映射规则,只有了解了这些规则之后,你才能更好地理解mapstruct如何做映射,才能按照你的想法进行对象属性之间的映射。

    在属性映射方面,mapstruct相比于其他映射工具有:

    • 可以进行不同属性名之间的映射,使用@Mapping注解的source和target
    • 可以使用表达式进行设置,使用@Mapping注解中的expression
    • 可以设置默认值,使用@Mapping注解中的constant,
    • 可以进行不同类型之间的映射,并且更加安全
    • 可以进行自定义映射方法

    01

    mapstruct的映射文档


    1.可以参考mapstruct的doc的第五章了解完整的映射规则:这里

    02

    mapstruct的映射控制说明


    2.1 映射控制的作用:

            在源对象目标对象之间进行映射时,哪种映射方法将被考虑。即:只有在有这个控制条件下,才会执行对应的映射方法。

            所有属性之间的复制或者拷贝都将是依据以下映射控制来完成的。只有更好地理解这四种映射控制,才能按照我们的想法进行对象之间的拷贝。

    2.2 映射控制的种类:

    mapstruct一共有四种映射控制

    • MappingControl.Use.DIRECT

            直接映射:直接将源属性赋值到目标属性上,如果是对象的话,就是指针复制,也就是浅拷贝。这种方法有一个前提:目标属性是源属性的父类或者相同类型

    • MappingControl.Use.BUILT_IN_CONVERSION

            内置映射:将使用mapstruct内置的映射方法。有哪些内置映射方法:具体可参考文档第五章中第一节中。例如:日期和字符串、原生类型和对应的包装对象、字符串和枚举类型等等。

    • MappingControl.Use.MAPPING_METHOD

            映射方法:包含两类:可以是自定义的映射方法,也可以是系统自动生成的映射方法。注意:自定义映射方法比系统自动生成的映射方法的优先级更高。例如:深度拷贝就是使用这个映射控制。系统自动生成的映射方法:一般都是对象之间的映射。

    • MappingControl.Use.COMPLEX_MAPPING

            复合映射:是一种结合BUILT_IN_CONVERSIONMAPPING_METHOD的映射控制来完成对象属性之间的拷贝。当进行COMPLEX_MAPPING时:一共有三种形态:

                    a) target = method1( method2( source ) )

                    b) target = method( conversion( source ) )

                    c) target = conversion( method( source ) )

            其中method开头表示:自定义映射方法,conversion开头的表示:内置映射方法

            注意:复合映射中只能进行两次转化,不能多于两次,也不能少于两次。这三种形态不含两个内置映射方法来完成属性之间的拷贝。即:至少有一个自定义的映射方法的存在。

            注意:在没有某一中映射控制时,就不会采用这种方式完成属性映射,例如:没有MAPPING_METHOD就会不采用自定义的映射方法完成属性映射。

    2.3 映射控组组合

            四种映射控制可以组合使用,即同时使用两个及以上的映射控制,从而在这些映射控制中选择一种方式使用。那这就涉及到映射控制之间优先级

    2.4 mapstruct内置的映射控制组合

            在mapstruct中一共有三种内置的映射控制组合,以及自定义的映射组合。

    • @MappingControl注解类

              该注解使用了全部的映射控制:DIRECT、MAPPING_METHOD、 BUILT_IN_CONVERSION、COMPLEX_MAPPING。这也这是:默认使用映射控制。
    • @DeepClone注解类

             该注解只使用了:MAPPING_METHOD映射,当我们使用这个注解时,将不会采用其他的三种方式来完成属性之间的拷贝。
    • @NoComplexMapping注解类

             改注解使用了三种:DIRECT、MAPPING_METHOD、 BUILT_IN_CONVERSION,即将不会使用复合映射方法完成属性之间的拷贝
    • 自定义的映射组合

                    我们可以声明一个注解类,自定义只是用哪些映射控制,例如:只使用内置的映射方法

    package com.moxiao.mapstruct.annotation;
    
    import org.mapstruct.control.MappingControl;
    import java.lang.annotation.Retention;
    import java.lang.annotation.RetentionPolicy;
    
    /**
     * @author moxiao
     */
    @Retention(value = RetentionPolicy.CLASS)
    @MappingControl( MappingControl.Use.BUILT_IN_CONVERSION )
    public @interface BuildInConversionControl {
    }

    2.5 映射控制的使用

            mapstruct默认使用的是:@MappingControl注解类,即四种映射控制

            我们可以在@Mapper注解中的mappingControl属性中设置,他的属性值是一个注解类。在@Mapper注解中设置这个属性:将会应用到这个类中的所有方法的属性之间的拷贝

            我们也可以在@Mapping注解中的mappingControl属性中设置。在@Mapping注解中设置这个属性:将只会应用到指定属性上。

            @Mapping的优先级比@Mapper的高,即优先采用@Mapping,如果没有才会使用@Mapper进行属性之间的映射。

    03

    mapstruct的映射控制优先级


            在有多个映射控制使用时,例如在使用:@MappingControl注解,mapstruct将会如何进行属性之间的映射。这里就涉及到四种映射控制之间的优先级。

    3.1 四种映射控制的优先级,从高到低

    1. 在有MAPPING_METHOD控制下,并且包含有一个自定义的映射方法。这个自定义方法必须满足:输入参数源属性父级或者相同类型,这个映射方法的返回值目标属性的子类或相同类型。必须都满足这两个条件:这样在进行属性拷贝时,才会使用自定义的映射方法。不然则跳过。
    2. 在有DIRECT控制下,并且目标属性必须是源属性的父类或者相同类型。功能:直接将源属性的指针拷贝到目标属性下。必须满足这两个条件,才会使用指针拷贝,不然则跳过。
    3. 如果有BUILT_IN_CONVERSION的控制下,在源属性和目标属性之间拷贝时,mapstruct就会根据源属性类型和目标属性类型找到对应的内置映射方法使用,没有找到,就跳过。
    4. 如果有COMPLEX_MAPPING控制下,它又划分成三种类型:

                     如果存在两个自定义的方法,可以将源属性转化为目标属性,即: target = method1( method2( source ) ),优先使用。

                    如果有一个自定义方法,一个内置映射方法,可以将源属性转化为目标属性,就会使用其中一个target = method( conversion( source ) )或者target = conversion( method( source ) )。

         5. 如果有MAPPING_METHOD控制下,将自动生成一个映射方法,完成属性之间的映射。必须对象,属性不能是:8中基本类型和对应的包装类以及String

    3.2 注意事项:

            如果源属性是8种基本类型或者包装体,而目标属性是对应的类型(不能是不对应的),则会直接拷贝。就算有就不会走上面的优先级。例如:源属性为long,目标属性为Long,不管配置的什么,都会直接赋值。

    04

    mapstruct的映射控制的示例


    1.源对象

    public class MappingOrder {
    
        private String name;
    
        private Integer age;
    
        private LocalDateTime birthTime;
    
        private MapperOrderChild mapperOrderChild;
    
        private MappingOrderChildChild mapperOrderChild2;
        //省略其set/get方法
     }

    2.目标对象

    public class MappingOrderVO {
    
        private String name;
    
        private Number age;
    
        private String birthString;
    
        private MapperOrderChild mapperOrderChild;
    
        private MapperOrderChild2 mapperOrderChild2;
     }

    3.映射类(必须自己单独定义一个,mapstruct必须提供一个mapper接口或者抽象类)

    package com.moxiao.mapstruct.mapper;
    
    import com.moxiao.mapstruct.entity.MappingOrder;
    import com.moxiao.mapstruct.entity.MappingOrderVO;
    import org.mapstruct.Mapper;
    import org.mapstruct.Mapping;
    import org.mapstruct.control.DeepClone;
    
    /**
     * @author moxiao
     */
    @Mapper
    public interface MapperOrderMapper {
    
        @Mapping(source = "birthTime", target = "birthString", dateFormat = "yyyy-MM-dd HH:mm:ss")
        //这一行进行深度拷贝,注意最后一个参数很重要:mappingControl = DeepClone.class
        @Mapping(source = "mapperOrderChild2", target = "mapperOrderChild2", mappingControl = DeepClone.class)
        MappingOrderVO entityToVo(MappingOrder mappingOrder);
        
    }

    4.mapstruct自动生成的文件

    public class MapperOrderMapperImpl implements MapperOrderMapper {
    
        @Override
        public MappingOrderVO entityToVo(MappingOrder mappingOrder) {
            if ( mappingOrder == null ) {
                return null;
            }
    
            MappingOrderVO mappingOrderVO = new MappingOrderVO();
            
            //第一个属性,因为没有自定义方法从LocalDateTime转化为String,将跳过,
            //不能直接映射,优先级第二条
            //mapstruct有一个从LocalDateTime转化为String的内置方法,从而满足第三条映射
            if ( mappingOrder.getBirthTime() != null ) {
                mappingOrderVO.setBirthString( DateTimeFormatter.ofPattern( "yyyy-MM-dd HH:mm:ss" ).format( mappingOrder.getBirthTime() ) );
            }
            
            //我们在方法中使用DEEPCLONE,即MAPPING_METHOD控制
            //所以只有第一条优先级和第五条优先级,满足。因为没有自定义映射方法,从而跳过
            //所以Mapstruct使用第五条,自动生成一个映射方法
            mappingOrderVO.setMapperOrderChild2( mappingOrderChildChildToMapperOrderChild2( mappingOrder.getMapperOrderChild2() ) );
            //DIRECT优先级获胜
            mappingOrderVO.setName( mappingOrder.getName() );
            //DIRECT优先级获胜
            mappingOrderVO.setAge( mappingOrder.getAge() );
            //DIRECT优先级获胜
            mappingOrderVO.setMapperOrderChild( mappingOrder.getMapperOrderChild() );
            return mappingOrderVO;
        }
    
        protected MapperOrderChild2 mappingOrderChildChildToMapperOrderChild2(MappingOrderChildChild mappingOrderChildChild) {
            if ( mappingOrderChildChild == null ) {
                return null;
            }
            MapperOrderChild2 mapperOrderChild2 = new MapperOrderChild2();
    
            mapperOrderChild2.setFirstName( mappingOrderChildChild.getFirstName() );
            mapperOrderChild2.setSecondName( mappingOrderChildChild.getSecondName() );
    
            return mapperOrderChild2;
        }
    }

    结论:最终生成的Java映射代码,会根据01章节中第5条的映射优先级,进行属性之间的映射。

    更多精彩内容:请关注公众号:


    展开全文
  • Mybatis自动映射和手动映射 最近在使用mybatis时,对于mapper.xml中的<mapper>,手动映射,自动映射有些疑惑,对namespace,resultMap和resultType的作用也有点疑惑。 小总结: 映射文件中的namespace是...
  • 主要介绍了Spring MVC 基于URL的映射规则(注解版) ,详细的介绍了几种方式,有兴趣的可以了解一下
  • 主要介绍了django中url映射规则和服务端响应顺序的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 字段 user_id 属性:userId 属性和字段有驼峰映射规则.但是采用resultType的方式进行映射.则不能正常赋值. 解决方案: 1.resultMap 繁琐. 2.开启驼峰映射规则 mybatis: #定义别名包 type-aliases-...
  • 直方图规定化——GML和SML映射规则

    千次阅读 2020-01-19 12:48:49
    GML规定化(组映射) 先列出图像灰度值i,j,计算原始直方图Pr(i),列出规定直方图Pz(j),计算原始累计直方图Pi和规定累计直方图Pj,然后按照Pj到Pi寻找最接近的值存储为j,当满足给定的值多于一个时,按惯例取最小值。...
  • } 配置静态资源的映射规则 静态资源的映射一般默认不用修改,如果需要可有两种方法: 方式1:一种是直接在applicaiton.xml中配置 这种办法可能会将默认的映射规则覆盖 spring.resources.static-locations=classpath...
  • 模型驱动体系结构及其映射规则原理分析
  • 测试类 public class User { public string Name { get; set; } public int Age { get; set; } } public class UserDto : User ... //直接映射,无需处理映射规则的 var config = new MapperConfiguration(cfg =
  • 本文档为SMPTE组织关于12G-SDI的图像映射规则方面的协议规则,需要开发12G-SDI必阅;SMPTE ST 2082-1:速率为 11.88Gb/s 和 11.88/1.001Gb/s 的 12G-SDI(包括多链路 12G-SDI),提供由任何 ST 2082-x 映射映射的...
  • 映射规则4

    2017-09-04 10:49:50
    映射url:请求URL减去当前应用上... 映射规则: 路径匹配: 1. 精确路径匹配/servlet 2. 最长路径匹配/servlet/* /servlet1/servlet2/* 扩展匹配 *.do 默认匹配 访问一个没有的,就可以使用默认的Servlet urlpa
  • 顾客需求映射规则获取和聚类方法.pdf
  • mybatis驼峰命名映射的使用 在mybatis的配置文件中加入 <setting name="mapUnderscoreToCamelCase" value="true"/> 这个配置用于接口文件与sql语句数据传递时,并且仅当通过对象传递时才有效。其他方式无效!...
  • Automapper不指定映射规则,默认是认为两个对象是属性名相同的,如果实体对象和dto(数据传输对象)对象属性名不同,就要指定自定义的映身规则,本文就主要介绍一下,.NET Core中Automapper 指定自定义映射规则方法,...
  • xorm结构体映射规则和表操作

    千次阅读 2020-07-03 10:30:30
    名称映射规则 名称映射规则主要负责结构体名称到表名和结构体field到表字段的名称映射。 在xorm框架中由core.IMapper接口的实现者来管理,xorm内置了三种IMapper实现:core.SnakeMapper,core.SameMapper和core....
  • QAM映射映射代码 欢迎下载学习 经验证
  • 一、写在前面 在MyBatis 的全局配置文件中...来开启驼峰命名法,实现数据库中的字段名与JavaBean 中属性的关系映射。 在数据库中一般使用单词来定义列名,多个列名之间用’ _ ‘分隔开,比如department_name,在...
  • 表与表 一对多或者多对一 关联查询时 默认的映射规则不满足,就自定义映射规则。 规律:外键在哪儿,多方就在哪儿。 表t_department 表t_employee 两个表的关联 t_department.manager_id = t_employee.id 准备2个表...
  • SDL模型到Java代码的映射规则,潘晶晶,宋茂强,本文对SDL进行简要介绍,并提出了一种将SDL模型转换为java代码的方法。主要从数据类型映射,进程映射,信号的发送与接收三方面分析��
  • SpringCloud Zuul 路由映射规则配置

    千次阅读 2019-03-01 16:42:44
    Zuul 路由映射规则配置 默认路由请求地址,很容易暴露接口细节; 所以需要配置下映射规则,提高服务的安全性; application.yml配置: server: port: 3001 context-path: / spring: application: name: zuu...
  • springMVC映射规则详解

    千次阅读 2016-05-13 09:30:53
    6.5、请求映射 处理器定义好了,那接下来我们应该定义功能处理方法,接收用户请求处理并选择视图进行渲染。首先我们看一下图6-1: http请求信息包含六部分信息: ①请求方法,如GET或POST,表示提交的方式; ②...
  • MyBatis映射规则

    千次阅读 2018-09-20 21:19:56
    Mapper映射器映射规则:  定义:  通过一定的映射规则,根据我们定义的接口可以自动生成对应的实现类,  然后重写接口中满足映射规则的方法,那么满足这个接口一般被称之为映射接口.  MyBatis是面向接口的编程: ...
  • .netCore Web开发 nopCommerce_4.40
  • MyBatis基础用法--使用resultMap自定义高级映射规则

    万次阅读 多人点赞 2017-10-03 18:10:57
    <case></case> /*结果值的一种情况,将对应一种映射规则*/ 在一个 元素中,这些子元素出现的先后顺序是有严格规定的,它们从前到后依次是: constructor --> id --> result --> association --> ...
  • mybatisPlus 如何通过实体类找到数据库表的,@Table,驼峰映射规则
  • web.xml中的映射规则

    千次阅读 2018-01-14 17:39:07
    一,servlet容器对url的匹配过程:  当一个请求发送到servlet容器的时候,容器先会将请求的url减去当前应用上下文的路径作为servlet的映射url,比如我访问的是http://localhost/test/aaa.html,我的...这个映射
  • Mybatis映射文件规则

    千次阅读 多人点赞 2022-03-29 19:36:55
    在说明映射文件规则之前,先来回顾一下ORM相关概念。 1.ORM概念 ORM(Object Relationship Mapping)对象关系映射 对象:Java的实体类对象 关系:关系型数据库 映射:二者之间的对应关系 字段名和属性名要一一对应才...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 417,685
精华内容 167,074
关键字:

映射规则