• Odoo | Config | Odoo版本基础需求


    Odoo版本基础需求

    Python、PostgreSQL版本要求

    Odoo版本Python版本PostgreSQLRelease Year
    odoo10Python 2.7 or later(官方2.7.9)9.4+2016.10
    Odoo11Python 3.5 or later(官方3.5.3)9.4+2017.10
    odoo12Python 3.5 or later(官方3.5.3)9.5+2018.10
    odoo13Python 3.6 or later(官方3.7.3)10.0 or above2019.10
    odoo14Python 3.6 or later(官方3.7.3)10.0 or above2020.10
    odoo15Python 3.7 or later(官方3.9.2)10.0 or above2021.10
    Odoo16Python 3.7 or later(官方3.9.2)12.0 or above2022.10
    Odoo17Python 3.10 or later(官方3.10.12)12.0 or above2023.10

    针对于Odoo不同版本,官网建议的Python版本与PostgreSQL版本,以及官方镜像使用的推荐版本。

    Python第三方包要求

    Odoo10 Python Requirement

    Babel==2.3.4
    decorator==4.0.10
    docutils==0.12
    ebaysdk==2.1.4
    feedparser==5.2.1
    gevent==1.1.2
    greenlet==0.4.10
    jcconv==0.2.3
    Jinja2==2.10.1
    lxml==3.5.0
    Mako==1.0.4
    MarkupSafe==0.23
    mock==2.0.0
    ofxparse==0.16
    passlib==1.6.5
    Pillow==3.4.1
    psutil==4.3.1
    psycogreen==1.0
    psycopg2==2.7.3.1
    pydot==1.2.3
    pyparsing==2.1.10
    pyPdf==1.13
    pyserial==3.1.1
    Python-Chart==1.39
    python-dateutil==2.5.3
    python-ldap==2.4.27
    python-openid==2.2.5
    pytz==2016.7
    pyusb==1.0.0
    PyYAML==3.12
    qrcode==5.3
    reportlab==3.3.0
    requests==2.20.0
    six==1.10.0
    suds-jurko==0.6
    vatnumber==1.2
    vobject==0.9.3
    Werkzeug==0.11.11
    wsgiref==0.1.2
    XlsxWriter==0.9.3
    xlwt==1.1.2
    xlrd==1.0.0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42

    Odoo11 Python Requirement

    Babel==2.3.4
    decorator==4.0.10
    docutils==0.12
    ebaysdk==2.1.5
    feedparser==5.2.1
    gevent==1.1.2 ; sys_platform != 'win32' and python_version < '3.7'
    gevent==1.5.0 ; python_version >= '3.7'
    greenlet==0.4.10 ; python_version < '3.7'
    greenlet==0.4.14 ; python_version >= '3.7'
    html2text==2016.9.19
    Jinja2==2.10.1
    lxml==3.7.1 ; sys_platform != 'win32' and python_version < '3.7'
    lxml==4.2.3 ; sys_platform != 'win32' and python_version >= '3.7'
    lxml ; sys_platform == 'win32'
    Mako==1.0.4
    MarkupSafe==0.23
    mock==2.0.0
    num2words==0.5.6
    ofxparse==0.16
    passlib==1.6.5
    Pillow==4.0.0 ; python_version < '3.7'
    Pillow==6.1.0 ; python_version >= '3.7'
    psutil==4.3.1; sys_platform != 'win32'
    psutil==5.6.3; sys_platform == 'win32'
    psycopg2==2.7.3.1; sys_platform != 'win32'
    psycopg2==2.8.3; sys_platform == 'win32'
    pydot==1.2.3
    pyldap==2.4.28; sys_platform != 'win32'
    pyparsing==2.1.10
    PyPDF2==1.26.0
    pyserial==3.1.1
    python-dateutil==2.5.3
    # vatnumber requirement. Last version compatible
    python-stdnum<=1.14
    pytz==2016.7
    pyusb==1.0.0
    PyYAML==3.12 ; python_version < '3.7'
    PyYAML==3.13 ; python_version >= '3.7'
    qrcode==5.3
    reportlab==3.3.0
    requests==2.20.0
    suds-jurko==0.6
    vatnumber==1.2
    vobject==0.9.3
    Werkzeug==0.11.15 ; sys_platform != 'win32'
    Werkzeug==0.16.0  ; sys_platform == 'win32'
    XlsxWriter==0.9.3
    xlwt==1.3.*
    xlrd==1.0.0
    pypiwin32 ; sys_platform == 'win32'
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50

    Odoo12 Python Requirement

    Babel==2.3.4
    chardet==3.0.4
    decorator==4.0.10
    docutils==0.12
    ebaysdk==2.1.5
    gevent==1.1.2 ; sys_platform != 'win32' and python_version < '3.7'
    gevent==1.5.0 ; python_version >= '3.7'
    greenlet==0.4.10 ; python_version < '3.7'
    greenlet==0.4.14 ; python_version >= '3.7'
    html2text==2016.9.19
    Jinja2==2.10.1
    libsass==0.12.3
    lxml==3.7.1 ; sys_platform != 'win32' and python_version < '3.7'
    lxml==4.2.3 ; sys_platform != 'win32' and python_version >= '3.7'
    lxml ; sys_platform == 'win32'
    Mako==1.0.4
    MarkupSafe==0.23
    mock==2.0.0
    num2words==0.5.6
    ofxparse==0.16
    passlib==1.6.5
    Pillow==4.0.0 ; python_version < '3.7'
    Pillow==6.1.0 ; python_version >= '3.7'
    psutil==4.3.1; sys_platform != 'win32'
    psutil==5.6.3; sys_platform == 'win32'
    psycopg2==2.7.3.1; sys_platform != 'win32' and python_version < '3.8'
    psycopg2==2.8.3; sys_platform == 'win32' or python_version >= '3.8'
    pydot==1.2.3
    pyldap==2.4.28; sys_platform != 'win32'
    pyparsing==2.1.10
    PyPDF2==1.26.0
    pyserial==3.1.1
    python-dateutil==2.5.3
    pytz==2016.7
    pyusb==1.0.0
    qrcode==5.3
    reportlab==3.3.0
    requests==2.20.0
    suds-jurko==0.6
    vatnumber==1.2
    vobject==0.9.3
    Werkzeug==0.11.15 ; sys_platform != 'win32'
    Werkzeug==0.16.0  ; sys_platform == 'win32'
    XlsxWriter==0.9.3
    xlwt==1.3.*
    xlrd==1.0.0
    pypiwin32 ; sys_platform == 'win32'
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47

    Odoo13 Python Requirement

    Babel==2.6.0
    chardet==3.0.4
    decorator==4.3.0
    docutils==0.14
    ebaysdk==2.1.5
    gevent==1.1.2 ; sys_platform != 'win32' and python_version < '3.7'
    gevent==1.5.0 ; python_version >= '3.7'
    gevent==1.4.0 ; sys_platform == 'win32' and python_version < '3.7'
    greenlet==0.4.10 ; python_version < '3.7'
    greenlet==0.4.15 ; python_version >= '3.7'
    Jinja2==2.10.1
    libsass==0.17.0
    lxml==3.7.1 ; sys_platform != 'win32' and python_version < '3.7'
    lxml==4.3.2 ; sys_platform != 'win32' and python_version >= '3.7'
    lxml ; sys_platform == 'win32'
    Mako==1.0.7
    MarkupSafe==1.1.0
    mock==2.0.0
    num2words==0.5.6
    ofxparse==0.19
    passlib==1.7.1
    Pillow==5.4.1 ; python_version < '3.7' or sys_platform != 'win32'
    Pillow==6.1.0 ; sys_platform == 'win32' and python_version >= '3.7'
    polib==1.1.0
    psutil==5.6.6
    psycopg2==2.7.7; sys_platform != 'win32' and python_version < '3.8'
    psycopg2==2.8.3; sys_platform == 'win32' or python_version >= '3.8'
    pydot==1.4.1
    python-ldap==3.1.0; sys_platform != 'win32'
    pyparsing==2.2.0
    PyPDF2==1.26.0
    pyserial==3.4
    python-dateutil==2.7.3
    pytz==2019.1
    pyusb==1.0.2
    qrcode==6.1
    reportlab==3.5.13
    requests==2.21.0
    zeep==3.2.0
    vatnumber==1.2
    vobject==0.9.6.1
    Werkzeug==0.14.1 ; sys_platform != 'win32'
    Werkzeug==0.16.0 ; sys_platform == 'win32'
    XlsxWriter==1.1.2
    xlwt==1.3.*
    xlrd==1.1.0
    pypiwin32 ; sys_platform == 'win32'
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47

    Odoo14 Python Requirement

    Babel==2.6.0
    chardet==3.0.4
    decorator==4.3.0
    docutils==0.14
    ebaysdk==2.1.5
    freezegun==0.3.11; python_version < '3.8'
    freezegun==0.3.15; python_version >= '3.8'
    gevent==1.1.2 ; sys_platform != 'win32' and python_version < '3.7'
    gevent==1.5.0 ; python_version == '3.7'
    gevent==20.9.0 ; python_version >= '3.8'
    gevent==1.4.0 ; sys_platform == 'win32' and python_version < '3.7'
    greenlet==0.4.10 ; python_version < '3.7'
    greenlet==0.4.15 ; python_version == '3.7'
    greenlet==0.4.17 ; python_version > '3.7'
    idna==2.6
    Jinja2==2.10.1; python_version < '3.8'
    # bullseye version, focal patched 2.10
    Jinja2==2.11.2; python_version >= '3.8'
    libsass==0.17.0
    lxml==3.7.1 ; sys_platform != 'win32' and python_version < '3.7'
    lxml==4.3.2 ; sys_platform != 'win32' and python_version == '3.7'
    lxml==4.6.1 ; sys_platform != 'win32' and python_version > '3.7'
    lxml ; sys_platform == 'win32'
    Mako==1.0.7
    MarkupSafe==1.1.0
    num2words==0.5.6
    ofxparse==0.19
    passlib==1.7.1
    Pillow==5.4.1 ; python_version <= '3.7' and sys_platform != 'win32'
    Pillow==6.1.0 ; python_version <= '3.7' and sys_platform == 'win32'
    Pillow==8.1.1 ; python_version > '3.7'
    polib==1.1.0
    psutil==5.6.6
    psycopg2==2.7.7; sys_platform != 'win32' and python_version < '3.8'
    psycopg2==2.8.5; sys_platform == 'win32' or python_version >= '3.8'
    pydot==1.4.1
    python-ldap==3.1.0; sys_platform != 'win32'
    PyPDF2==1.26.0
    pyserial==3.4
    python-dateutil==2.7.3
    pytz==2019.1
    pyusb==1.0.2
    qrcode==6.1
    reportlab==3.5.13; python_version < '3.8'
    reportlab==3.5.55; python_version >= '3.8'
    requests==2.21.0
    zeep==3.2.0
    python-stdnum==1.8
    vobject==0.9.6.1
    Werkzeug==0.16.1
    XlsxWriter==1.1.2
    xlwt==1.3.*
    xlrd==1.1.0; python_version < '3.8'
    xlrd==1.2.0; python_version >= '3.8'
    pypiwin32 ; sys_platform == 'win32'
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55

    Odoo15 Python Requirement

    Babel==2.9.1  # min version = 2.6.0 (Focal with security backports)
    chardet==3.0.4
    cryptography==2.6.1  # incompatibility between pyopenssl 19.0.0 and cryptography>=37.0.0
    decorator==4.4.2
    docutils==0.16
    ebaysdk==2.1.5
    freezegun==0.3.11; python_version < '3.8'
    freezegun==0.3.15; python_version >= '3.8'
    gevent==1.5.0 ; python_version == '3.7'
    gevent==20.9.0 ; python_version > '3.7' and python_version <= '3.9'
    gevent==21.8.0 ; python_version > '3.9'  # (Jammy)
    greenlet==0.4.15 ; python_version == '3.7'
    greenlet==0.4.17 ; python_version > '3.7' and python_version <= '3.9'
    greenlet==1.1.2 ; python_version  > '3.9'  # (Jammy)
    idna==2.8
    Jinja2==2.11.3 # min version = 2.10.1 (Focal - with security backports)
    libsass==0.18.0
    lxml==4.6.5 # min version = 4.5.0 (Focal - with security backports)
    MarkupSafe==1.1.0
    num2words==0.5.6
    ofxparse==0.19; python_version <= '3.9'
    ofxparse==0.21; python_version > '3.9'  # (Jammy)
    passlib==1.7.3 # min version = 1.7.2 (Focal with security backports)
    Pillow==9.0.1  # min version = 7.0.0 (Focal with security backports)
    polib==1.1.0
    psutil==5.6.7 # min version = 5.5.1 (Focal with security backports)
    psycopg2==2.7.7; sys_platform != 'win32' and python_version < '3.8'
    psycopg2==2.8.6; sys_platform == 'win32' or python_version >= '3.8'
    pydot==1.4.1
    pyopenssl==19.0.0
    PyPDF2==1.26.0
    pypiwin32 ; sys_platform == 'win32'
    pyserial==3.4
    python-dateutil==2.7.3
    python-ldap==3.4.0 ; sys_platform != 'win32'  # min version = 3.2.0 (Focal with security backports)
    python-stdnum==1.13
    pytz==2019.3
    pyusb==1.0.2
    qrcode==6.1
    reportlab==3.5.59 # version < 3.5.54 are not compatible with Pillow 8.1.2 and 3.5.59 is bullseye
    requests==2.25.1 # versions < 2.25 aren't compatible w/ urllib3 1.26. Bullseye = 2.25.1. min version = 2.22.0 (Focal)
    urllib3==1.26.5 # indirect / min version = 1.25.8 (Focal with security backports)
    vobject==0.9.6.1
    Werkzeug==0.16.1 ; python_version <= '3.9'
    Werkzeug==2.0.2 ; python_version > '3.9'  # (Jammy)
    xlrd==1.1.0; python_version < '3.8'
    xlrd==1.2.0; python_version >= '3.8'
    XlsxWriter==1.1.2
    xlwt==1.3.*
    zeep==3.4.0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50

    Odoo16 Python Requirement

    Babel==2.9.1  # min version = 2.6.0 (Focal with security backports)
    chardet==3.0.4
    cryptography==3.4.8
    decorator==4.4.2
    docutils==0.16
    ebaysdk==2.1.5
    freezegun==0.3.11; python_version < '3.8'
    freezegun==0.3.15; python_version >= '3.8'
    gevent==1.5.0 ; python_version == '3.7'
    gevent==20.9.0 ; python_version > '3.7' and python_version <= '3.9'
    gevent==21.8.0 ; python_version > '3.9'  # (Jammy)
    greenlet==0.4.15 ; python_version == '3.7'
    greenlet==0.4.17 ; python_version > '3.7' and python_version <= '3.9'
    greenlet==1.1.2 ; python_version  > '3.9'  # (Jammy)
    idna==2.8
    Jinja2==2.11.3 # min version = 2.10.1 (Focal - with security backports)
    libsass==0.18.0
    lxml==4.6.5 # min version = 4.5.0 (Focal - with security backports)
    MarkupSafe==1.1.0
    num2words==0.5.6
    ofxparse==0.19; python_version <= '3.9'
    ofxparse==0.21; python_version > '3.9'  # (Jammy)
    passlib==1.7.3 # min version = 1.7.2 (Focal with security backports)
    Pillow==9.0.1  # min version = 7.0.0 (Focal with security backports)
    polib==1.1.0
    psutil==5.6.7 # min version = 5.5.1 (Focal with security backports)
    psycopg2==2.7.7; sys_platform != 'win32' and python_version < '3.8'
    psycopg2==2.8.6; sys_platform == 'win32' or python_version >= '3.8'
    pydot==1.4.1
    pyopenssl==19.0.0
    PyPDF2==1.26.0
    pypiwin32 ; sys_platform == 'win32'
    pyserial==3.4
    python-dateutil==2.7.3
    python-ldap==3.4.0 ; sys_platform != 'win32'  # min version = 3.2.0 (Focal with security backports)
    python-stdnum==1.13
    pytz==2019.3
    pyusb==1.0.2
    qrcode==6.1
    reportlab==3.5.59 # version < 3.5.54 are not compatible with Pillow 8.1.2 and 3.5.59 is bullseye
    requests==2.25.1 # versions < 2.25 aren't compatible w/ urllib3 1.26. Bullseye = 2.25.1. min version = 2.22.0 (Focal)
    urllib3==1.26.5 # indirect / min version = 1.25.8 (Focal with security backports)
    vobject==0.9.6.1
    Werkzeug==0.16.1 ; python_version <= '3.9'
    Werkzeug==2.0.2 ; python_version > '3.9'  # (Jammy)
    xlrd==1.1.0; python_version < '3.8'
    xlrd==1.2.0; python_version >= '3.8'
    XlsxWriter==1.1.2
    xlwt==1.3.*
    zeep==3.4.0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50

    Odoo17 Python Requirement

    # The officially supported versions of the following packages are their
    # python3-* equivalent distributed in Ubuntu 22.04 and Debian 11
    Babel==2.9.1  # min version = 2.6.0 (Focal with security backports)
    chardet==4.0.0
    cryptography==3.4.8
    decorator==4.4.2
    docutils==0.17
    ebaysdk==2.1.5
    freezegun==1.1.0
    geoip2==2.9.0
    gevent==21.8.0 ; python_version == '3.10'  # (Jammy)
    gevent==22.10.2; python_version > '3.10'
    greenlet==1.1.2 ; python_version == '3.10'  # (Jammy)
    greenlet==2.0.2 ; python_version > '3.10'
    idna==2.10  # requests 2.25.1 depends on idna<3 and >=2.5
    Jinja2==3.0.3 ; python_version <= '3.10'
    Jinja2==3.1.2 ; python_version > '3.10'
    libsass==0.20.1
    lxml==4.8.0 ; python_version <= '3.10'
    lxml==4.9.2 ; python_version > '3.10'
    MarkupSafe==2.0.1 ; python_version <= '3.10'
    MarkupSafe==2.1.2 ; python_version > '3.10'
    num2words==0.5.10
    ofxparse==0.21
    passlib==1.7.4 # min version = 1.7.2 (Focal with security backports)
    Pillow==9.0.1 ; python_version <= '3.10'  # min version = 7.0.0 (Focal with security backports)
    Pillow==9.4.0 ; python_version > '3.10'
    polib==1.1.1
    psutil==5.9.0 ; python_version <= '3.10' 
    psutil==5.9.4 ; python_version > '3.10' 
    psycopg2==2.9.2 ; sys_platform != 'win32' and python_version <= '3.10'
    psycopg2==2.9.5 ; python_version > '3.10' or sys_platform == 'win32'
    pydot==1.4.2
    pyopenssl==21.0.0
    PyPDF2==1.26.0 ; python_version <= '3.10'
    PyPDF2==2.12.1 ; python_version > '3.10'
    pypiwin32 ; sys_platform == 'win32'
    pyserial==3.5
    python-dateutil==2.8.1
    python-ldap==3.4.0 ; sys_platform != 'win32'  # min version = 3.2.0 (Focal with security backports)
    python-stdnum==1.17
    pytz  # no version pinning to avoid OS perturbations
    pyusb==1.2.1
    qrcode==7.3.1
    reportlab==3.6.8 ; python_version <= '3.10'
    reportlab==3.6.12 ; python_version > '3.10'
    requests==2.25.1 # versions < 2.25 aren't compatible w/ urllib3 1.26. Bullseye = 2.25.1. min version = 2.22.0 (Focal)
    rjsmin==1.1.0
    urllib3==1.26.5 # indirect / min version = 1.25.8 (Focal with security backports)
    vobject==0.9.6.1
    Werkzeug==2.0.2
    xlrd==1.2.0
    XlsxWriter==3.0.2
    xlwt==1.3.*
    zeep==4.1.0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
  • 相关阅读:
    一次解决TS类型警告的傻X经过
    git工作流(待续)
    Unity修改编辑器
    第三节:在WORD为应用主窗口下关闭EXCEL的操作(2)
    JAVA财务管理系统的设计与实现计算机毕业设计Mybatis+系统+数据库+调试部署
    c++入门99题11-20
    计算机网络第6章应用层 单元测试(习题+答案+图文解析)
    Java安全之CC6
    记一次生产中使用CompletableFuture遇到的坑
    查询订单总量的前10名
  • 原文地址:https://blog.csdn.net/qq_29654325/article/details/127683374