KVM網路管理

来源:https://www.cnblogs.com/qw77/p/18141495
-Advertisement-
Play Games

一:創建nat網路模式 主要就是nat模式的話,網橋沒有連接宿主機的物理網卡,就是創建出來一個網橋,會自動的虛擬出來2個介面(2個網卡的配置文件),一個是網橋的配置文件,另外一個就是nic的配置文件,主要作用就是虛擬機與宿主機進行通信用的 1:命令行的操作 思路主要就是,通過配置文件來進行定義, 還 ...


一:創建nat網路模式

 主要就是nat模式的話,網橋沒有連接宿主機的物理網卡,就是創建出來一個網橋,會自動的虛擬出來2個介面(2個網卡的配置文件),一個是網橋的配置文件,另外一個就是nic的配置文件,主要作用就是虛擬機與宿主機進行通信用的

1:命令行的操作

思路主要就是,通過配置文件來進行定義,

還有就是熟悉創建網路的命令,virsh net --help 

1、基礎知識

存放的網卡配置文件

#kvm網路配置文件
[root@server networks]# pwd
/etc/libvirt/qemu/networks
#共用的kvm網路配置文件,全局的配置文件

2、nat的操作

#進入到共用kvm網路的配置文件裡面,複製原有的網路配置文件,更改一些信息即可
[root@server networks]# ls
default.xml  new-nat.xml

#修改的配置文件
<network>
  <name>new-nat</name>
  <bridge name="b1"/>
  <forward/>
  <ip address="192.168.200.1" netmask="255.255.255.0">
    <dhcp>
      <range start="192.168.200.2" end="192.168.200.254"/>
    </dhcp>
  </ip>
</network>

#從這個配置文件裡面定義nat網路
[root@server networks]# virsh  net-define  /usr/share/libvirt/networks/new-nat.xml 
從 new-nat定義網路/usr/share/libvirt/networks/new-nat.xml

#查看網路激活的網路
[root@server networks]# virsh  net-list
 名稱               狀態     自動開始  持久
----------------------------------------------------------
 default              活動     是           是

#查看所有的網路
[root@server networks]# virsh  net-list --all
 名稱               狀態     自動開始  持久
----------------------------------------------------------
 default              活動     是           是
 new-nat              不活躍  否           是

#激活網路並設置網路開機自啟
[root@server networks]# virsh  net-start new-nat 
網路 new-nat 已開始

[root@server networks]# virsh  net-list --all
 名稱               狀態     自動開始  持久
----------------------------------------------------------
 default              活動     是           是
 new-nat              活動     否           是

[root@server networks]# virsh  net-autostart new-nat 
網路new-nat標記為自動啟動

[root@server networks]# virsh net-list
 名稱               狀態     自動開始  持久
----------------------------------------------------------
 default              活動     是           是
 new-nat              活動     是           是

#發現配置文件裡面也存在
[root@server networks]# ls
autostart  default.xml  new-nat.xml
[root@server networks]# ls autostart/
default.xml  new-nat.xml

#當創建了nat網橋後,會自動的創建2個介面(網卡的配置文件),一個是網橋的配置文件,另外一個就是nic介面,本質mac地址都是一樣的
[root@server networks]# ifconfig 
b1: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.200.1  netmask 255.255.255.0  broadcast 192.168.200.255
        ether 52:54:00:5a:d7:b2  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.25.250.10  netmask 255.255.255.0  broadcast 172.25.250.255
        inet6 fe80::848f:2253:dfee:77d4  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:2a:28:fd  txqueuelen 1000  (Ethernet)
        RX packets 503  bytes 258556 (252.4 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 511  bytes 41830 (40.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 39  bytes 3253 (3.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 39  bytes 3253 (3.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:90:d0:79  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@server networks]# brctl show
bridge name	bridge id		STP enabled	interfaces
b1		8000.5254005ad7b2	yes		b1-nic
virbr0		8000.52540090d079	yes		virbr0-nic

2:圖形化的操作

1、點開編輯

 

這樣的話,就是會自動的創建2個介面()

#設備的名字就是virbr1這個就是這個nat網橋設備,按照這個順序來配置
[root@server networks]# nmcli connection show 
NAME    UUID                                  TYPE      DEVICE 
ens32   97f33909-8dc2-48a1-819e-d04cac35ec66  ethernet  ens32  
b1      d1daa101-a111-4e5d-aaf0-b2622370796f  bridge    b1     
virbr0  865c4f15-8617-4010-a8c3-6227c91cd472  bridge    virbr0 
virbr1  b8d9ad5c-d05e-4917-b154-667d7dc5796b  bridge    virbr1 
vnet0   a34f6984-108f-4dd4-9821-188848ef0842  tun       vnet0  

2:創建橋接模式

創建一個網橋,讓宿主機橋接到物理網卡,然後創建虛擬機,然後綁定,即可,不像nat模式,就是創建網橋的時候,會自動的創建2個介面(網卡的配置文件),virbr0和virbr0-nic,橋接只是創建一個virbr0,所以這是區別之一

思路:

1、創建一個網橋,然後綁定宿主機的物理網卡

先複製一個宿主機網卡的配置文件,然後修改一些配置,用於創建網橋,然後還要備份這個物理網卡的文件,將Ip等信息註釋,添加bridge=創建網橋名

2、更改虛擬機的網路模式為橋接模式

直接更改虛擬機的配置文件

3、內部的虛擬機進行通信,外部與內部的虛擬機進行通信

橋接實驗:

#創建一個網橋,然後綁定宿主機的物理網卡
[root@server network-scripts]# cat ifcfg-ens32
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens32
UUID=97f33909-8dc2-48a1-819e-d04cac35ec66
DEVICE=ens32
ONBOOT=yes
#IPADDR=172.25.250.10
#PREFIX=24
#GATEWAY=172.25.250.254
#DNS1=119.29.29.29
BRIDGE=q7
[root@server network-scripts]# cat ifcfg-q7 
TYPE=bridge
BOOTPROTO=none
NAME=q7
DEVICE=q7
ONBOOT=yes
IPADDR=172.25.250.10
PREFIX=24
GATEWAY=172.25.250.254
DNS1=119.29.29.29
[root@server network-scripts]# brctl show
bridge name	bridge id		STP enabled	interfaces
q7		8000.000c292a28fd	no		ens32
virbr0		8000.5254002e1c32	yes		virbr0-nic

#更改虛擬機的網路模式為橋接模式
虛擬機存放的路徑:
[root@server qemu]# pwd
/etc/libvirt/qemu

 <interface type='bridge'>
      <mac address='52:54:00:bf:44:9c'/>
      <source bridge='q7'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>

#虛擬機進行通信
#查看虛擬機的ip地址
[root@server qemu]# ssh [email protected]
The authenticity of host '172.25.250.128 (172.25.250.128)' can't be established.
ECDSA key fingerprint is SHA256:6Lay/Xuuy+q23ZVh6OjLXbL7ID8iELSfEAuwQN1X8EY.
ECDSA key fingerprint is MD5:d0:9f:11:33:89:54:d2:6d:89:56:ba:14:f6:78:ac:42.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.25.250.128' (ECDSA) to the list of known hosts.
[email protected]'s password: 
Last login: Thu Apr 25 15:04:49 2024
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 52:54:00:bf:44:9c brd ff:ff:ff:ff:ff:ff
    inet 172.25.250.128/24 brd 172.25.250.255 scope global noprefixroute dynamic eth0
       valid_lft 1232sec preferred_lft 1232sec
    inet6 fe80::b0d5:672d:1a7:79b4/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

#與windows的主機互相通信
ping 172.25.250.128
正在 Ping 172.25.250.128 具有 32 位元組的數據:
來自 172.25.250.128 的回覆: 位元組=32 時間<1ms TTL=64
來自 172.25.250.128 的回覆: 位元組=32 時間<1ms TTL=64
來自 172.25.250.128 的回覆: 位元組=32 時間<1ms TTL=64
來自 172.25.250.128 的回覆: 位元組=32 時間=1ms TTL=64

[root@localhost ~]# ping 10.120.225.28
PING 10.120.225.28 (10.120.225.28) 56(84) bytes of data.
64 bytes from 10.120.225.28: icmp_seq=1 ttl=128 time=0.662 ms
64 bytes from 10.120.225.28: icmp_seq=2 ttl=128 time=1.12 ms
^C
--- 10.120.225.28 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.662/0.891/1.121/0.231 ms

3:kvm的橋接和nat模式的區別

1、創建網橋的生成網卡不同

nat模式創建的網橋,會創建2個介面,橋接模式不會創建2個介面,只會創建一個介面(也就是自己的網卡配置文件)

nat模式網橋沒有綁定物理網卡,橋接模式綁定了物理網卡,使用的宿主機同一個網段的地址,被作為橋接上去的網卡,不能有ip地址,通過這個網橋進行通信,這個網橋就相當於是宿主機的ip地址

2、外部網路通信

nat模式的話,虛擬機能與外部網路進行通信,通過nat地址轉換出去的,然後轉換成宿主機的Ip地址,進行外面的通信,所以的話,外部網路無法與虛擬機進行通信,如果虛擬機有提供web服務的話,就無法訪問了,

橋接模式的話,虛擬機與外部網路都能進行通信,風雨無阻

4: kvm網路管理的操作

具體點就是關於kvm網路的更改等等,

1、語法

[root@server networks]# virsh  help network
 Networking (help keyword 'network'):
    net-autostart                  自動開始網路
    net-create                     從一個 XML 文件創建一個網路
    net-define                     define an inactive persistent virtual network or modify an existing persistent one from an XML file
    net-destroy                    銷毀(停止)網路
    net-dhcp-leases                print lease info for a given network
    net-dumpxml                    XML 中的網路信息
    net-edit                       為網路編輯 XML 配置
    net-event                      Network Events
    net-info                       網路信息
    net-list                       列出網路
    net-name                       把一個網路UUID 轉換為網路名
    net-start                      開始一個(以前定義的)不活躍的網路
    net-undefine                   undefine a persistent network
    net-update                     更新現有網路配置的部分
    net-uuid                       把一個網路名轉換為網路UUID

2、virsh 管理網路相關的命令

1)virsh net-list:列出網路

virsh help net-list  查看幫助的信息

[root@server networks]# virsh  net-list
 名稱               狀態     自動開始  持久
----------------------------------------------------------
 b2                   活動     是           是
 default              活動     是           是
 new-nat              活動     是           是

預設是以表格的形式進行輸出的

2)virsh net-dumpxml:顯示指定網路的配置文件的內容

#查看的就是kvm網路的配置文件
[root@server networks]# virsh  net-dumpxml b2
<network>
  <name>b2</name>
  <uuid>6cfecbe6-bba4-4021-9ece-22183d9dd33f</uuid>
  <forward dev='ens32' mode='nat'>
    <nat>
      <port start='1024' end='65535'/>
    </nat>
    <interface dev='ens32'/>
  </forward>
  <bridge name='virbr1' stp='on' delay='0'/>
  <mac address='52:54:00:9f:ca:47'/>
  <domain name='b2'/>
  <ip address='192.168.103.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.103.128' end='192.168.103.254'/>
    </dhcp>
  </ip>
</network> 

3) virsh net-define,virsh net-start ,virsh net-autostart 

從指定xml配置文件定義一個網路或者基於指定xml來修改現有的網路,

[root@server networks]# cp default.xml  new-nat.xml
[root@server networks]# vim new-nat.xml 
[root@server networks]# cat new-nat.xml 
<network>
  <name>b1</name>
  <bridge name="q1"/>
  <forward/>
  <ip address="192.168.107.1" netmask="255.255.255.0">
    <dhcp>
      <range start="192.168.107.2" end="192.168.107.254"/>
    </dhcp>
  </ip>
</network>

#使用virsh define來定義網路,但是定義好了之後,它是不運行的,所以的話還需要手動的啟動網路,並設置為開啟自啟的
[root@server networks]# virsh  net-define  /usr/share/libvirt/networks/new-nat.xml 
從 b1定義網路/usr/share/libvirt/networks/new-nat.xml

[root@server networks]# virsh  net-list --all
 名稱               狀態     自動開始  持久
----------------------------------------------------------
 b1                   不活躍  否           是
 default              活動     是           是

[root@server networks]# virsh net-start b1
網路 b1 已開始

[root@server networks]# virsh  net-list
 名稱               狀態     自動開始  持久
----------------------------------------------------------
 b1                   活動     否           是
 default              活動     是           是

[root@server networks]# virsh  net-autostart  b1
網路b1標記為自動啟動

[root@server networks]# virsh net-list
 名稱               狀態     自動開始  持久
----------------------------------------------------------
 b1                   活動     是           是
 default              活動     是           是

4)virsh net-edit

編輯網路的配置文件xml的文件,更改ip地址為105網段的

[root@server networks]# virsh net-edit b1
已編輯網路 b1 XML 配置

#當然得話,修改了配置文件不會立刻進行生效,創建持久網路後,預設的配置文件存放在/etc/libvirt/qemu/network目錄下麵的內容

#讓指定的網路配置文件生效
[root@server networks]# virsh  net-destroy b1
網路 b1 被刪除

[root@server networks]# virsh  net-start b1
網路 b1 已開始

[root@server networks]# virsh net-dumpxml b1
<network>
  <name>b1</name>
  <uuid>b54d21ab-fc60-4e05-a990-d873a02fa256</uuid>
  <forward mode='nat'>
    <nat>
      <port start='1024' end='65535'/>
    </nat>
  </forward>
  <bridge name='q1' stp='on' delay='0'/>
  <mac address='52:54:00:cc:be:e7'/>
  <ip address='192.168.105.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.105.2' end='192.168.105.254'/>
    </dhcp>
  </ip>
</network>

思路就是:重讀配置文件的方式只有重啟網路,所以的話先要停止對應的網路,然後在啟動對應的網路,destory停止指定的網路,相當於停止的操作

通過edit來生成一個網路的配置文件,然後需要定義這個網路,會自動的生成非活躍狀態的持久網路,

5)virsh net-create 

從指定xml文件創建一個非持久化的臨時網路,並且激活,

define定義的網路都是持久的,create創建出來的不是持久的,所謂的持久是否在/etc/libvirt/qemu/network目錄下生成配置文件,有配置文件就被稱為持久網路,沒有的話就被稱為臨時網路

#從已存在的配置文件中進行創建
[root@server networks]# virsh  net-create b2.xml 
從b2創建網路b2.xml 

[root@server networks]# virsh  net-list
 名稱               狀態     自動開始  持久
----------------------------------------------------------
 b1                   活動     是           是
 b2                   活動     否           否
 default              活動     是           是  

6)virsh net-undefine

將指定持久網路取消定義,就是為非持久化的網路,就是刪除裡面的配置文件即可,不會影響到活躍的網路實例  與net-destory配合使用可以達到刪除網路的效果

[root@server networks]# virsh  net-undefine b1
網路 b1 已經被取消定義

[root@server networks]# virsh  net-list
 名稱               狀態     自動開始  持久
----------------------------------------------------------
 b1                   活動     否           否
 b2                   活動     否           否
 default              活動     是           是

 

總結:

1)修了了網路的配置文件的話,要使用net-destory,刪除這個網路,然後重新的啟動即可

2)刪除配置文件的話,就要停止net-destory停止,然後在來使用net-undefine來刪除即可

3:創建網路的思路 

通過上面的命令可以把指定網路導出,然後基於這個網路文件當成一個模版文件,如果要創建一個網路的話,直接複製這個模版文件,然後改一下裡面的信息就可以生成一個我們需要創建的網路的配置文件

#創建出來了一個網橋,不能通過修改網卡來進行修改,nmcli不行
只能通過修改配置文件來進行修改,然後在來進行定義即可

4:網橋的操作

brctl 的操作

[root@server /]# brctl --help
Usage: brctl [commands]
commands:
	addbr     	<bridge>		add bridge
	delbr     	<bridge>		delete bridge
	addif     	<bridge> <device>	add interface to bridge
	delif     	<bridge> <device>	delete interface from bridge
	hairpin   	<bridge> <port> {on|off}	turn hairpin on/off
	setageing 	<bridge> <time>		set ageing time
	setbridgeprio	<bridge> <prio>		set bridge priority
	setfd     	<bridge> <time>		set bridge forward delay
	sethello  	<bridge> <time>		set hello time
	setmaxage 	<bridge> <time>		set max message age
	setpathcost	<bridge> <port> <cost>	set path cost
	setportprio	<bridge> <port> <prio>	set port priority
	show      	[ <bridge> ]		show a list of bridges
	showmacs  	<bridge>		show a list of mac addrs
	showstp   	<bridge>		show bridge stp info
	stp       	<bridge> {on|off}	turn stp on/off

  

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 前言 新版WSL2已經支持鏡像模式網路 可以將WSL2的IP固定為與主機相同 鏡像模式網路 但是在啟用後WSL2中Docker運行的服務本機無法訪問 issues 10494 結合上述issues給出自己的使用新的幫助大家避坑 環境 Win11 23H2win + r > winver WSL 2. ...
  • 參考 Ubuntu installation on a RISC-V virtual machine using a server install image and QEMU 用到的文件 fw_jump.bin u-boot.bin ubuntu-22.04.3-preinstalled-serv ...
  • 安裝環境編譯qemu 1. PC啟動 打開兩個視窗,在第一個視窗中 make qemu-gdb,會啟動內核,但在執行第一個指令之前停下; 在第二個視窗中make gdb,實時觀察第一個視窗中的執行過程。 從這裡可以觀察到: IBM PC 在物理地址 0x000ffff0 開始執行, 位於為 ROM ...
  • title: 進程 cover: https://img2.imgtp.com/2024/04/30/ZamtkUJE.jpg tags: - 進程 - linux categories: linux系統編程 程式與進程 程式:是可執行文件,其本質是是一個文件,程式是靜態的,同一個程式可以運行多次, ...
  • Cortex M0/M0+相對於Cortex M3/M4性能稍弱, 但是優勢在於低價格和低功耗, 這使得M0特別適合性能要求不高且電池供電的便攜類應用, 比如遙控器, 墨水屏, 電子寵物, 電子煙等. 根據 PY32F0 各型號的數據手冊, 對比其最低功耗狀態(STOP模式)下的電流, 全系列可以大... ...
  • 痞子衡嵌入式半月刊: 第 99 期 這裡分享嵌入式領域有用有趣的項目/工具以及一些熱點新聞,農曆年分二十四節氣,希望在每個交節之日準時發佈一期。 本期刊是開源項目(GitHub: JayHeng/pzh-mcu-bi-weekly),歡迎提交 issue,投稿或推薦你知道的嵌入式那些事兒。 上期回顧 ...
  • Prometheus 使用一種稱為 TSDB(時間序列資料庫)的存儲引擎來存儲時間序列數據。以下是 Prometheus 存儲時間序列數據的基本原理: 時間序列結構: Prometheus 中的每個時間序列都由一個唯一的指標名稱(metric name)和一組鍵值對標簽(label pairs)組成 ...
  • 軟中斷處理流程 目錄軟中斷處理流程軟中斷處理的時機中斷退出時軟中斷調度機制 軟中斷處理的時機 標準linux內核關搶占的情況下,軟中斷只在下麵兩個時機調度 中斷退出時(中斷上下文) 軟中斷線程處理 中斷退出時軟中斷調度機制 判斷是否屬於中斷上下文以及是否有軟中斷處與pending狀態 判斷軟中斷線程 ...
一周排行
    -Advertisement-
    Play Games
  • .Net8.0 Blazor Hybird 桌面端 (WPF/Winform) 實測可以完整運行在 win7sp1/win10/win11. 如果用其他工具打包,還可以運行在mac/linux下, 傳送門BlazorHybrid 發佈為無依賴包方式 安裝 WebView2Runtime 1.57 M ...
  • 目錄前言PostgreSql安裝測試額外Nuget安裝Person.cs模擬運行Navicate連postgresql解決方案Garnet為什麼要選擇Garnet而不是RedisRedis不再開源Windows版的Redis是由微軟維護的Windows Redis版本老舊,後續可能不再更新Garne ...
  • C#TMS系統代碼-聯表報表學習 領導被裁了之後很快就有人上任了,幾乎是無縫銜接,很難讓我不想到這早就決定好了。我的職責沒有任何變化。感受下來這個系統封裝程度很高,我只要會調用方法就行。這個系統交付之後不會有太多問題,更多應該是做小需求,有大的開發任務應該也是第二期的事,嗯?怎麼感覺我變成運維了?而 ...
  • 我在隨筆《EAV模型(實體-屬性-值)的設計和低代碼的處理方案(1)》中介紹了一些基本的EAV模型設計知識和基於Winform場景下低代碼(或者說無代碼)的一些實現思路,在本篇隨筆中,我們來分析一下這種針對通用業務,且只需定義就能構建業務模塊存儲和界面的解決方案,其中的數據查詢處理的操作。 ...
  • 對某個遠程伺服器啟用和設置NTP服務(Windows系統) 打開註冊表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer 將 Enabled 的值設置為 1,這將啟用NTP伺服器功 ...
  • title: Django信號與擴展:深入理解與實踐 date: 2024/5/15 22:40:52 updated: 2024/5/15 22:40:52 categories: 後端開發 tags: Django 信號 松耦合 觀察者 擴展 安全 性能 第一部分:Django信號基礎 Djan ...
  • 使用xadmin2遇到的問題&解決 環境配置: 使用的模塊版本: 關聯的包 Django 3.2.15 mysqlclient 2.2.4 xadmin 2.0.1 django-crispy-forms >= 1.6.0 django-import-export >= 0.5.1 django-r ...
  • 今天我打算整點兒不一樣的內容,通過之前學習的TransformerMap和LazyMap鏈,想搞點不一樣的,所以我關註了另外一條鏈DefaultedMap鏈,主要調用鏈為: 調用鏈詳細描述: ObjectInputStream.readObject() DefaultedMap.readObject ...
  • 後端應用級開發者該如何擁抱 AI GC?就是在這樣的一個大的浪潮下,我們的傳統的應用級開發者。我們該如何選擇職業或者是如何去快速轉型,跟上這樣的一個行業的一個浪潮? 0 AI金字塔模型 越往上它的整個難度就是職業機會也好,或者說是整個的這個運作也好,它的難度會越大,然後越往下機會就會越多,所以這是一 ...
  • @Autowired是Spring框架提供的註解,@Resource是Java EE 5規範提供的註解。 @Autowired預設按照類型自動裝配,而@Resource預設按照名稱自動裝配。 @Autowired支持@Qualifier註解來指定裝配哪一個具有相同類型的bean,而@Resourc... ...