我的编程空间,编程开发者的网络收藏夹
学习永远不晚

【Spring篇】DI相关内容

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

【Spring篇】DI相关内容

🍓系列专栏:Spring系列专栏

🍉个人主页:个人主页

目录

一、setter注入

1.环境准备

2.注入引用数据类型

3.注入简单数据类型

二、构造器注入

1.环境准备

2.构造器注入引用数据类型

3.构造器注入多个引用数据类型

4.构造器注入多个简单数据类型

三、自动配置

1.什么是依赖自动装配?

2.自动装配方式有哪些?

3.准备案例环境

4.完成自动装配的配置

四、集合注入

1.环境准备

2.注入各类型数据

五、图书推荐

《Java核心技术 卷I:开发基础(原书第12版)》

《Java核心技术 卷II:高级特性(原书第12版)》

《Effective Java 中文版(原书第3版)》

《深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)》

《Java多线程编程核心技术 第3版》

《GraalVM与Java静态编译:原理与应用》


前面我们已经完成了bean相关操作的讲解,接下来就进入第二个大的模块DI依赖注入,首先来介绍下Spring中有哪些注入方式?

我们先来思考

向一个类中传递数据的方式有几种?

  • 普通方法(set方法)
  • 构造方法

依赖注入描述了在容器中建立bean与bean之间的依赖关系的过程,如果bean运行需要的是数字或 字符串呢?

  • 引用类型
  • 简单类型(基本数据类型与String)

Spring就是基于上面这些知识点,为我们提供了两种注入方式,分别是:

①setter注入

  • 简单类型
  • 引用类型

②构造器注入

  • 简单类型
  • 引用类型

依赖注入的方式已经介绍完,接下来挨个学习下:

一、setter注入

对于setter方式注入引用类型的方式之前已经学习过,快速回顾下:

  • 在bean中定义引用类型属性,并提供可访问的set方法
public class BookServiceImpl implements BookService {private BookDao bookDao;public void setBookDao(BookDao bookDao) {this.bookDao = bookDao;}}
  • 配置中使用property标签ref属性注入引用类型对象

1.环境准备

为了更好的学习下面内容,我们依旧准备一个新环境:

  • 创建一个Maven项目
  • pom.xml添加依赖
  • resources下添加spring的配置文件

这些步骤和前面的都一致,大家可以快速的拷贝即可,最终项目的结构如下:

(1)项目中添加BookDao、BookDaoImpl、UserDao、UserDaoImpl、BookService和

BookServiceImpl类

public interface BookDao {    public void save();}
 public class BookDaoImpl implements BookDao { public void save() { System.out.println("book dao save ..."); } }
public interface UserDao {    public void save();}
public class UserDaoImpl implements UserDao {    public void save() {        System.out.println("user dao save ...");    }}
public interface BookService {    public void save();}
public class BookServiceImpl implements BookService{ private BookDao bookDao; public void setBookDao(BookDao bookDao) { this.bookDao = bookDao; } public void save() { System.out.println("book service save ..."); bookDao.save(); } }

(2)resources下提供spring的配置文件

(3)编写AppForDISet运行类,加载Spring的IOC容器,并从中获取对应的bean对象

public class AppForDISet {public static void main( String[] args ) {ApplicationContext ctx = newClassPathXmlApplicationContext("applicationContext.xml");BookService bookService = (BookService) ctx.getBean("bookService");bookService.save();}}

接下来,在上面这个环境中来完成setter注入的学习:

2.注入引用数据类型

需求:在bookServiceImpl对象中注入userDao

在BookServiceImpl中声明userDao属性

为userDao属性提供setter方法

在配置文件中使用property标签注入

 步骤1:声明属性并提供setter方法

在BookServiceImpl中声明userDao属性,并提供setter方法

public class BookServiceImpl implements BookService{    private BookDao bookDao;    private UserDao userDao;        //setter注入需要提供要注入对象的set方法    public void setUserDao(UserDao userDao) {        this.userDao = userDao;    }    //setter注入需要提供要注入对象的set方法    public void setBookDao(BookDao bookDao) {        this.bookDao = bookDao;    }    public void save() {        System.out.println("book service save ...");        bookDao.save();        userDao.save();    }}

步骤2:配置文件中进行注入配置

在applicationContext.xml配置文件中使用property标签注入

运行程序

运行AppForDISet类,查看结果,说明userDao已经成功注入。

3.注入简单数据类型

需求:给BookDaoImpl注入一些简单数据类型的数据

参考引用数据类型的注入,我们可以推出具体的步骤为:

在BookDaoImpl类中声明对应的简单数据类型的属性

为这些属性提供对应的setter方法

在applicationContext.xml中配置

步骤1:声明属性并提供setter方法

在BookDaoImpl类中声明对应的简单数据类型的属性,并提供对应的setter方法

public class BookDaoImpl implements BookDao {    private String databaseName;    private int connectionNum;    //setter注入需要提供要注入对象的set方法    public void setConnectionNum(int connectionNum) {        this.connectionNum = connectionNum;    }    //setter注入需要提供要注入对象的set方法    public void setDatabaseName(String databaseName) {        this.databaseName = databaseName;    }    public void save() {        System.out.println("book dao save ..."+databaseName+","+connectionNum);    }}

步骤2:配置文件中进行注入配置

在applicationContext.xml配置文件中使用property标签注入

                                                                                                            

说明:

value:后面跟的是简单数据类型,对于参数类型,Spring在注入的时候会自动转换,但是不能写成

这样的话,spring在将abc转换成int类型的时候就会报错。

运行程序

运行AppForDISet类,查看结果,说明userDao已经成功注入。

注意:两个property注入标签的顺序可以任意。

对于setter注入方式的基本使用就已经介绍完了,

  • 对于引用数据类型使用的是
  • 对于简单数据类型使用的是

二、构造器注入

1.环境准备

项目的结构如下:

(1)项目中添加BookDao、BookDaoImpl、UserDao、UserDaoImpl、BookService和

BookServiceImpl类

public interface BookDao {    public void save();}public class BookDaoImpl implements BookDao { private String databaseName; private int connectionNum; public void save() { System.out.println("book dao save ..."); } } public interface UserDao { public void save(); } public class UserDaoImpl implements UserDao { public void save() { System.out.println("user dao save ..."); } } public interface BookService { public void save(); } public class BookServiceImpl implements BookService{ private BookDao bookDao; public void setBookDao(BookDao bookDao) { this.bookDao = bookDao; } public void save() { System.out.println("book service save ..."); bookDao.save(); } }

 (2)resources下提供spring的配置文件

(3)编写AppForDIConstructor运行类,加载Spring的IOC容器,并从中获取对应的bean对象

public class AppForDIConstructor {public static void main( String[] args ) {ApplicationContext ctx = newClassPathXmlApplicationContext("applicationContext.xml");BookService bookService = (BookService) ctx.getBean("bookService");bookService.save();}}

2.构造器注入引用数据类型

需求:将BookServiceImpl类中的bookDao修改成使用构造器的方式注入。

将bookDao的setter方法删除掉

添加带有bookDao参数的构造方法

在applicationContext.xml中配置

步骤1:删除setter方法并提供构造方法

在BookServiceImpl类中将bookDao的setter方法删除掉,并添加带有bookDao参数的构造方法

public class BookServiceImpl implements BookService{private BookDao bookDao;public BookServiceImpl(BookDao bookDao) {this.bookDao = bookDao;}public void save() {System.out.println("book service save ...");bookDao.save();}}

步骤2:配置文件中进行配置构造方式注入

在applicationContext.xml中配置

说明:

标签中

  • name属性对应的值为构造函数中方法形参的参数名,必须要保持一致。
  • ref属性指向的是spring的IOC容器中其他bean对象。

运行程序

运行AppForDIConstructor类,查看结果,说明bookDao已经成功注入

3.构造器注入多个引用数据类型

需求:在BookServiceImpl使用构造函数注入多个引用数据类型,比如userDao

声明userDao属性

生成一个带有bookDao和userDao参数的构造函数

在applicationContext.xml中配置注入

步骤1:提供多个属性的构造函数

在BookServiceImpl声明userDao并提供多个参数的构造函数

public class BookServiceImpl implements BookService{    private BookDao bookDao;    private UserDao userDao;    public BookServiceImpl(BookDao bookDao, UserDao userDao) {        this.bookDao = bookDao;        this.userDao = userDao;    }    public void save() {        System.out.println("book service save ...");        bookDao.save();        userDao.save();    }}

步骤2:配置文件中配置多参数注入

在applicationContext.xml中配置注入

4.构造器注入多个简单数据类型

需求:在BookDaoImpl中,使用构造函数注入databaseName和connectionNum两个参数。

参考引用数据类型的注入,我们可以推出具体的步骤为:

提供一个包含这两个参数的构造方法

在applicationContext.xml中进行注入配置

步骤1:添加多个简单属性并提供构造方法

修改BookDaoImpl类,添加构造方法

public class BookDaoImpl implements BookDao {    private String databaseName;    private int connectionNum;    public BookDaoImpl(String databaseName, int connectionNum) {        this.databaseName = databaseName;        this.connectionNum = connectionNum;    }    public void save() {        System.out.println("book dao save ..."+databaseName+","+connectionNum);    }}

步骤2:配置完成多个属性构造器注入

在applicationContext.xml中进行注入配置

                                                    

运行程序

三、自动配置

前面花了大量的时间把Spring的注入去学习了下,总结起来就一个字麻烦

问:麻烦在哪?

答:配置文件的编写配置上。

问:有更简单方式么?

答:有,自动配置

什么是自动配置以及如何实现自动配置,就是接下来要学习的内容:

1.什么是依赖自动装配?

IoC容器根据bean所依赖的资源在容器中自动查找并注入到bean中的过程称为自动装配

2.自动装配方式有哪些?

  • 按类型(常用)
  • 按名称
  • 按构造方法
  • 不启用自动装配

3.准备案例环境

(1)项目中添加BookDao、BookDaoImpl、BookService和BookServiceImpl类

public interface BookDao {    public void save();}public class BookDaoImpl implements BookDao {    public void save() {        System.out.println("book dao save ...");    }}public interface BookService {    public void save();}public class BookServiceImpl implements BookService{    private BookDao bookDao;    public void setBookDao(BookDao bookDao) {        this.bookDao = bookDao;    }    public void save() {        System.out.println("book service save ...");        bookDao.save();    }}

(2)resources下提供spring的配置文件

      

(3)编写AppForAutoware运行类,加载Spring的IOC容器,并从中获取对应的bean对象

public class AppForAutoware {public static void main( String[] args ) {ApplicationContext ctx = newClassPathXmlApplicationContext("applicationContext.xml");BookService bookService = (BookService) ctx.getBean("bookService");bookService.save();}}

4.完成自动装配的配置

接下来,在上面这个环境中来完成自动装配的学习:

自动装配只需要修改applicationContext.xml配置文件即可:

(1)将标签删除

(2)在标签中添加autowire属性

首先来实现按照类型注入的配置

            

注意事项:

  • 需要注入属性的类中对应属性的setter方法不能省略
  • 被注入的对象必须要被Spring的IOC容器管理
  • 按照类型在Spring的IOC容器中如果找到多个对象,会报NoUniqueBeanDefinitionException

一个类型在IOC中有多个对象,还想要注入成功,这个时候就需要按照名称注入,配置方式为:

注意事项:

按照名称注入中的名称指的是什么?

bookDao是private修饰的,外部类无法直接方法

外部类只能通过属性的set方法进行访问

对外部类来说,setBookDao方法名,去掉set后首字母小写是其属性名

  • 为什么是去掉set首字母小写?
  • 这个规则是set方法生成的默认规则,set方法的生成是把属性名首字母大写前面加set形成的方法名

所以按照名称注入,其实是和对应的set方法有关,但是如果按照标准起名称,属性名和set对应的名是一致的

如果按照名称去找对应的bean对象,找不到则注入Null

当某一个类型在IOC容器中有多个对象,按照名称注入只找其指定名称对应的bean对象,不会报错

两种方式介绍完后,以后用的更多的是按照类型注入。

最后对于依赖注入,需要注意一些其他的配置特征:

自动装配用于引用类型依赖注入,不能对简单类型进行操作

使用按类型装配时(byType)必须保障容器中相同类型的bean唯一,推荐使用

使用按名称装配时(byName)必须保障容器中具有指定名称的bean,因变量名与配置耦合,不推荐使用

自动装配优先级低于setter注入与构造器注入,同时出现时自动装配配置失效.

四、集合注入

前面我们已经能完成引入数据类型和简单数据类型的注入,但是还有一种数据类型集合,集合中既可以装简单数据类型也可以装引用数据类型,对于集合,在Spring中该如何注入呢?

先来回顾下,常见的集合类型有哪些?

  • 数组
  • List
  • Set
  • Map
  • Properties

针对不同的集合类型,该如何实现注入呢?

1.环境准备

(1)项目中添加添加BookDao、BookDaoImpl类

public interface BookDao {    public void save();}
public class BookDaoImpl implements BookDao {    private int[] array;    private List list;    private Set set;    private Map map;    private Properties properties;    public void setArray(int[] array) {        this.array = array;    }    public void setList(List list) {        this.list = list;    }    public void setSet(Set set) {        this.set = set;    }    public void setMap(Map map) {        this.map = map;    }    public void setProperties(Properties properties) {        this.properties = properties;    }    public void save() {        System.out.println("book dao save ...");        System.out.println("遍历数组:" + Arrays.toString(array));        System.out.println("遍历List" + list);        System.out.println("遍历Set" + set);        System.out.println("遍历Map" + map);        System.out.println("遍历Properties" + properties);    }}

(2)resources下提供spring的配置文件,applicationContext.xml

(3)编写AppForDICollection运行类,加载Spring的IOC容器,并从中获取对应的bean对象

public class AppForDICollection {    public static void main( String[] args ) {        ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");        BookDao bookDao = (BookDao) ctx.getBean("bookDao");        bookDao.save();    }}

2.注入各类型数据

                                                100                200                300                                                                itcast                itheima                boxuegu                chuanzhihui                                                                itcast                itheima                boxuegu                boxuegu                                                                                                                                                                china                henan                kaifeng                        

配置完成后,运行下看结果:

说明:

property标签表示setter方式注入,构造方式注入constructor-arg标签内部也可以写

标签

List的底层也是通过数组实现的,所以标签是可以混用

集合中要添加引用类型,只需要把标签改成标签,这种方式用的比较少

笔记来自:黑马程序员SSM框架教程

五、图书推荐

《Java核心技术 卷I:开发基础(原书第12版)

Java极具影响力世界名著,针对Java 17全面升级,新版涵盖了Java 17新特性;本书经全面修订,以涵盖Java 17的新特性。新版延续之前版本的优良传统,用数百个实际的工程案例,全面系统地讲解了Java语言的核心概念、语法、 重要特性、 开发方法。

《Java核心技术 卷II:高级特性(原书第12版)》

新版涵盖了Java 17新特性;本书专注于程序员进行专业软件开发时必须了解的高级主题,对诸多内容进行了细致剖析,涵盖企业级程序设计、网络、数据库、安全、模块化、国际化、代码处理和本地方法,并且对流、XML、日期和时间API分别用整章进行了阐述。

《Effective Java 中文版(原书第3版)》

针对如何编写高效、设计优良的程序提出了最实用、最权威的指导方针,通过90条简短、独立的经验法则,探索新的设计模式和语言习惯用法,帮你更加有效地使用Java编程语言及其基本类库,指引你少走弯路。这些经验规则涵盖了大多数开发人员每天所面临的问题的解决方案。适合已经掌握Java核心技术的程序员,想更加深入地了解Java编程语言的开发者阅读。是Java开发人员案头上的一本不可或缺的参考书。

《深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)》

只有掌握JVM的原理,才能够在高并发、大容量和低延时的极端场景下做好架构和编码,这对程序员的要求极为严苛,本书为广大Java程序员和架构师提供了非常棒的指导。

《Java多线程编程核心技术 第3版》

畅销书作者撰写,全新升级,新增适用微服务与分布式开发的并发工具与Java线程池 , 全面剖析多线程编程的核心库、方法、原理,案例式教学,透彻了解高并发本质与应对方法,突破多线程技术,面试、工作得心应手,

《GraalVM与Java静态编译:原理与应用》

Java静态编译技术是一项涉及程序语言、编译、程序分析等多个计算机专业方向的高度复杂的系统工程。GraalVM是产学研相结合的典范工程项目,由学术界和工业界通力合作研发,并得到了工业界的广泛认可。本书从工业界使用和开发的角度全面介绍GraalVM的Java静态编译技术,是广大相关技术人员学习、了解Java静态编译技术,并进一步展开相关研究的入门读物。

🍓本次送 4 本书 ,评论区抽4位小伙伴送书🍓

中奖的小伙伴,从以上6本图书中任选一本

活动时间:截止到 2023-04-28 20:00:00

抽奖方式:利用程序进行抽奖。

参与方式:关注博主、点赞、收藏,评论区评论 "人生苦短,我爱java!"

 迫不及待的小伙伴也可以访问下面的链接了解详情:

java系列图书

🍓 获奖名单🍓

随风的浪

平行线也会相交

黑洞晓威

_苏沐

 

名单公布时间: 2023-04-28 20:00:00

来源地址:https://blog.csdn.net/Javascript_tsj/article/details/130349969

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

【Spring篇】DI相关内容

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MySql相关内容记录

在Centos中采用RPM安装时需要注意: 需要安装Server 和 Client的两个rpm安装包,只安装Mysql Server的RPM包,在安装完成后,执行mysql -uroot -p命令后会出现mysql命令无法找到的提示。 在安装Mysql
MySql相关内容记录
2022-04-30

JUnit5相关内容简介

著名的Java单元测试框架Junit 4已经出来很长时间了,当时我发现JUnit 5已经处于测试版,就准备写文章来介绍JUnit 5.不过因为还是测试版,所以有些地方还不太完善,我也有点懒没有好好写。这几天突然想起这事了,在到官网上查看,发
2023-05-30

VB.NET重构的相关内容简述

这篇文章主要介绍“VB.NET重构的相关内容简述”,在日常操作中,相信很多人在VB.NET重构的相关内容简述问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”VB.NET重构的相关内容简述”的疑惑有所帮助!接下来
2023-06-17

PMP®考试培训相关内容介绍

  众所周知,报名参加PMP ®考试前,需要参加35小时以上涵盖项目管理知识体系中十大知识领域的项目管理培训经历,因此本文主要为大家介绍PMP ®考试培训相关内容,供大家参考,更多PMP ®考试的相关资讯,可关注编程学习网网站的更新。  相信很多报名参加PMP®考试的考生都了解,参加PMP&
PMP®考试培训相关内容介绍
2024-04-18

Linux文件内容怎么查看相关命令

今天就跟大家聊聊有关Linux文件内容怎么查看相关命令,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Linux系统中使用以下命令来查看文件的内容:cat、tac、nl、more、le
2023-06-28

Linux 文件内容相关命令使用汇总

Linux操作系统有很多强大的文件内容相关命令,这些命令可以让您查看、分析和编辑文件。其中,最基本和常用的命令包括cat、more、less和head/tail等。除了这些基本命令之外,grep和find命令也是文件搜索和过滤方面的有力工具。
2023-05-17

gitlab怎么设置邮件?相关内容详解

GitLab 是一款流行的 Web 代码托管平台,它提供了完整的代码管理、版本控制和协作功能。GitLab 还提供了邮件服务功能,方便用户通过邮件方式接收和发送通知。本文将介绍 GitLab 邮件设置的相关内容,以便用户在使用 GitLab
2023-10-22

【Python】提取网页正文内容的相关模

【Python】提取网页正文内容的相关模块与技术  1、正文抽取地址  https://github.com/buriy/python-readability  【安装】  pip install readability-lxml  【测试
2023-01-31

Linux 文件内容相关命令使用汇总

目录前言cat 合并文件或查看文件内容1、简介2、语法格式3、参数说明4、实践操作more 分页显示文件内容1、简介2、语法格式3、参数说明4、实践操作less 分页显示文件内容1、简介2、语法格式3、参数说明4、实践操作head 显示文件
2023-04-25

云服务器相关知识有哪些内容

云服务器是一种虚拟的数据中心基础设施,它允许用户将数据存储在云中,并由多种服务提供商使用。以下是云服务器相关知识的主要内容:网络基础设施:云服务器需要一个稳定的网络连接以支持多种应用程序和数据。这可能涉及到通过互联网连接到公共云服务提供商来访问网络。存储基础设施:云服务器通常会部署多种存储服务,如云存储、本地存储和网络存储。存储服务供应商通常会提供多种存储选项、容量和安全性级别。安全管理
2023-10-26

PHP垃圾回收及内存管理相关内容有哪些

这篇文章主要讲解了“PHP垃圾回收及内存管理相关内容有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP垃圾回收及内存管理相关内容有哪些”吧!PHP 垃圾回收与内存管理指引本文将要讲述
2023-06-21

2019年PMP考试内容及相关事项介绍

  本文编程学习网小编为大家介绍的是2019年PMP考试内容及相关事项,下面是关于2019年PMP考试内容(PMP考什么东西|PMP考试详情)的具体内容,供大家参考。  随着PMP考试的含金量越来越高,更多的人想获得PMP认证证书,本文小编就特为大家将2019年PMP考试语言做一个简单的介绍:  目前2019年教材改版的信
2019年PMP考试内容及相关事项介绍
2024-04-18

云服务器相关知识点有哪些内容

IaaS(基础设施即服务):云服务器提供商提供的是IaaS层的服务,包括云主机、负载均衡、弹性计算、存储等。IaaS服务商提供的主要功能是为用户提供基础设施服务,使用户可以根据自己的需求购买云服务器的硬件资源,并按需付费使用。PaaS(平台即服务):云服务器提供商提供的是PaaS层的服务,包括应用开发平台、运行时环境、数据库等。PaaS服务商提供的主要功能是为用户提供应用开发、运行和管理的平台,用户可以通过云服务...
2023-10-27

学习路由器中的Qos设置相关内容

  QoS(中文意思:服务质量)指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力,是网络的一种安全机制,是用来解决网络延迟和阻塞等问题的一种技术。现在就跟着小编共同来学习一下:学习路由器中的Qos设置相关内容。  想必不需要小编多说,大家都应该知道网吧网络管理员有一项非常重要的任务,那就是保证每一台电
学习路由器中的Qos设置相关内容
2024-04-18

2022年PMP®考试培训相关内容介绍

  众所周知,报名参加PMP ®考试前,需要参加35小时以上涵盖项目管理知识体系中十大知识领域的项目管理培训经历,因此本文编程学习网小编主要为大家介绍2022年PMP ®考试培训相关内容,供大家参考。  参加PMP®考试必须参加PMP®考试相关培训,根据中国国际人才交流基金会网站发布的PMP
2022年PMP®考试培训相关内容介绍
2024-04-19

云服务器相关知识有哪些内容呢

云服务器的概念和特点云服务器是一种虚拟化技术,它将多个计算资源(如服务器、存储、网络等)通过网络连接在一起,形成一个统一的计算平台。云服务器具有以下特点:(1)可扩展性:用户可以根据需要随时添加、减少或删除计算资源。(2)可靠性:云服务器采用分布式架构,具有高可用性和冗余性。(3)高可用性:云服务器可以提供备份和恢复机
2023-10-27

云服务器相关知识有哪些内容和方法

云服务器的基础知识:了解云服务器的概念、优势、功能和应用场景。云服务器的架构:了解云服务器的架构类型、服务器硬件、软件系统等方面的内容。云服务器的配置和管理:了解云服务器的配置参数、管理工具和配置技巧。云服务器的安全:了解云服务器的安全要求、安全策略和常见攻击。云服务器的优化:了解云服务器的优化技巧和策略,例如负载均衡、高可用性等。云服务器的故障和恢复:了解云服务器的故障处理和恢复方法,包括备份、...
2023-10-27

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录