the nmcli command line can be used to create named connections that will survive reboots. See example #9 for static IP config. In my experience a connection created this way will automatically reconnect at startup if the link is available but will not autoconnect when the system is up and the link is plugged in.
Example 9. Adding an ethernet connection profile with manual IP configuration
$ nmcli con add con-name my-con-em1 ifname em1 type ethernet \
ip4 192.168.100.100/24 gw4 192.168.100.1 ip4 18.104.22.168 ip6 abbe::cafe
$ nmcli con mod my-con-em1 ipv4.dns "22.214.171.124 126.96.36.199"
$ nmcli con mod my-con-em1 +ipv4.dns 188.8.131.52
$ nmcli con mod my-con-em1 ipv6.dns "2001:4860:4860::8888 2001:4860:4860::8844"
$ nmcli -p con show my-con-em1
The first command adds an Ethernet connection profile named my-con-em1 that is bound to interface name em1. The profile is configured with static IP addresses. Three addresses are added, two IPv4 addresses and one IPv6. The first IP 192.168.100.100 has a prefix of 24 (netmask equivalent of 255.255.255.0). Gateway entry will become the default route if this profile is activated on em1 interface (and there is no connection with higher priority). The next two addresses do not specify a prefix, so a default prefix will be used, i.e. 32 for IPv4 and 128 for IPv6. The second, third and fourth commands modify DNS parameters of the new connection profile. The last con show command displays the profile so that all parameters can be reviewed.