Spring 学习笔记①:IoC容器、Bean与注入
文章目录
- 0. 基本概念
- 1. 示例pom.xml
- 2. IOC容器
- 2.1 BeanFactory(不常用)
- 2.2 ApplicationContext(示例)
- 2.3 通过注解进行装配
- 2.3.1 常用注解
- 2.3.2 示例:使用注解装配的MVC
- 2.3.3 示例所使用的流程图
- 2.4 往容器内配置Bean的三种方式
- 2.5 @Autowired 和 @Resource 的区别
- 2.5.1 注入方式及字段注入的缺点
- 3. Bean的常见概念
- 3.1 Bean的常用属性
- 3.1.1 自动装配
- 3.2 Bean的作用域
- 3.3 Bean的生命周期
0. 基本概念
- 控制反转(IoC):被调用者的实例不再由调用者创建,而是由 Spring 容器创建,这称为控制反转。
- 依赖注入(DI):Spring 容器在创建被调用者的实例时,会自动将调用者需要的对象实例注入给调用者,这样,调用者通过 Spring 容器获得被调用者实例,这称为依赖注入。
文档、JAR包:官方仓库地址。
1. 示例pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>8</source><target>8</target></configuration></plugin></plugins></build><groupId>test</groupId><artifactId>test</artifactId><version>1.0-SNAPSHOT</version><dependencies><!-- spring --><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>5.2.6.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>5.2.6.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.2.6.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId><version>5.2.6.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-expression</artifactId><version>5.2.6.RELEASE</version></dependency><!-- lombok --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.16.18</version><scope>provided</scope></dependency></dependencies></project>
2. IOC容器
二者相比,前者功能简单且没有初始化自检。
2.1 BeanFactory(不常用)
Resource resource = new ClassPathResource("ApplicationContext.xml");
BeanFactory beanFactory = new XmlBeanFactory(resource);
beanFactory.getBean("$BeanName");
2.2 ApplicationContext(示例)
ApplicationContext.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><bean id="service0" class="Service"><constructor-arg name="name" type="java.lang.String" value="service0:name"/></bean><!-- 构造标签详见下 --><bean id="dao0" class="DAO"><constructor-arg name="id" type="java.lang.Integer" value="7"/><constructor-arg name="name" type="java.lang.String" value="dao0"/><constructor-arg name="service" type="Service" ref="service0"/> <!-- 实例依赖--></bean>
</beans>
Service.java
:
@Data // 使用了 lombok
@AllArgsConstructor
public class Service {private String name;
}
DAO.java
:
@Data
@AllArgsConstructor
public class DAO {private Integer id;private String name;private Service service; // 依赖Service,采用`ref`
}
测试代码:
public class Main {public static void main(String[] args){ApplicationContext context = new ClassPathXmlApplicationContext("ApplicationContext.xml");DAO a = (DAO)context.getBean("dao0");System.out.println(a);}
}
目录结构为:
2.3 通过注解进行装配
通过注解进行装配,编写方便、无需写xml标签文件,但若有更改需要重编译。
2.3.1 常用注解
@Component
:可以使用此注解描述 Spring 中的 Bean,但它是一个泛化的概念,仅仅表示一个组件(Bean),并且可以作用在任何层次。使用时只需将该注解标注在相应类上即可;将会将其实例化和注入依赖并加入IoC容器。@Repository
:用于将数据访问层(DAO层)的类标识为 Spring 中的 Bean,其功能与@Component
相同。@Service
:通常作用在业务层(Service 层),用于将业务层的类标识为 Spring 中的 Bean,其功能与@Component
相同。@Controller
:通常作用在控制层(如 Struts2 的 Action),用于将控制层的类标识为 Spring 中的 Bean,其功能与@Component
相同。@Autowired
:用于对 Bean 的属性变量、属性的 Set 方法及构造函数进行标注,配合对应的注解处理器完成 Bean 的自动配置工作。默认按照 Bean 的类型进行装配。@Resource
:其作用与 Autowired 一样。其区别在于@Autowired
默认按照 Bean 类型装配,而@Resource
默认按照 Bean 实例名称进行装配。@Qualifier
:与@Autowired
注解配合使用,会将默认的按 Bean 类型装配修改为按 Bean 的实例名称装配,Bean 的实例名称由@Qualifier
注解的参数指定。
附 · 使用JacaConfig类配置Bean所用到的注解:
@Configuation
等价于<beans></beans>
,不可用于标注final
、匿名类,必须为静态类。@Bean
等价于<bean></bean>
。@ComponentScan
等价于<context:component-scan base-package="com.dxz.demo"/>
。
2.3.2 示例:使用注解装配的MVC
目录结构:
此处可以选择构建一个配置类以取代 ApplicationContext.xml
:
@Configuration // 该注解同样也需要被扫描到,因此同样要在xml文件中进行配置
// @ComponentScan("MVC") // 等价于<context:component-scan base-package="MVC"/> //由于目录结构中该配置类与MVC同包,会被xml配置直接扫描到,因此此处不需要。
public class SpringConfiguration {// 等价于// <bean id="user0" class="xxx.User">// <constructor-arg name="id" type="java.lang.Integer" value="0"></constructor-arg>// <constructor-arg name="name" type="java.lang.String" value="Jack"></constructor-arg>// </bean>@Bean(name = "user0")public User UserBeanJack(){return new User(0, "Jack");}
}
构建一个控制器:
@Controller
public class UserController {@Resource // 此处使用Resource,默认采用首字母小写的形式去找到类, 等价于 getBean("userService")private UserService userService;public void acceptRequest(ApplicationContext context, Object request){System.out.println("Accept request.");User user = (User)context.getBean("user0"); // 假设根据Request构建ModelSystem.out.println("Controller find user: " + user);this.userService.service(user); // 找到Model对应的业务System.out.println("MVC Controller Over.");}
}
构建Model层的各个组件:,首先是业务逻辑:
@Service("userService") // 默认是类名首字母小写, 等价于 <bean id="userService" class="xxx.UserService"/>
public class UserService {private UserDao userDao;@Autowired // 此处使用自动装配的形式public UserService(UserDao userDao){this.userDao = userDao;}public void service(User user){System.out.println("MVC Service sth. with " + user);this.userDao.save(user);System.out.println("MVC Service Over.");}
}
数据持久层:
@Repository("userDao") // 等价于 <bean id="userDao" class="xxx.UserDao"/>
public class UserDao {public void save(User user){System.out.println("数据库已保存" + user);}
}
一个POJO类:
@Data // 使用了lombok简化代码编写
@AllArgsConstructor
public class User {private Integer id;private String name;
}
最后,还需要让Spring扫描到这些注解:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:context="http://www.springframework.org/schema/context"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd"><!-- 增加第3, 8, 9行--><context:component-scan base-package="MVC"/>
</beans>
测试:
public class Main {public static void main(String[] args){final ApplicationContext context = new ClassPathXmlApplicationContext("ApplicationContext.xml");UserController userController = (UserController)context.getBean("userController");// 注意不能用 UserController userController = new UserController();userController.acceptRequest(context, null);}
}
/*打印结果如下:
Accept request.
Controller find user: User(id=0, name=Jack)
MVC Service sth. with User(id=0, name=Jack)
数据库已保存User(id=0, name=Jack)
MVC Service Over.
MVC Controller Over.*/
- 需要注意的是,所有的实例都要从IoC容器里获取,自行new出来的实例不会被Spring注入,会导致Null异常。
2.3.3 示例所使用的流程图
2.4 往容器内配置Bean的三种方式
- 使用xml进行配置,bean的名字为
id
字段。 - 使用JavaConfig进行配置(
@Configuration
),默认bean的名字为@Bean
所标注的方法名。 - 使用注解进行配置,默认Bean的名字为类名(首字母小写)。
2.5 @Autowired 和 @Resource 的区别
- 前者默认按类型装配,当容器内存在多种同一类型的Bean时,需要使用
@Qualifier(value = "$BeanName")
才可以找到被注入的对象。 - 后者在不指定
name
字段时,也是以同一类型的Bean进行注入,若存在多个同类型对象,会报错;当指定name
字段时等同于getBean("$BeanName")
(某些框架中,找不到会再根据类型寻找)。 - 二者都可以标注在
setter()
或构造器方法上;@Autowired
不被推荐在字段上直接标注(缺点见下文)。
2.5.1 注入方式及字段注入的缺点
对于二者,注入方式都有三种:构造器注入、setter注入、field注入,区别如下:
public class UserController {@Autowired // field注入,也称为反射注入或字段注入,对访问级别无要求private UserService userService;@Autowired // 构造器注入(需要为public) 适用于强制依赖项public UserController(UserService userService){this.userService = userService;}@Autowired // setter注入(需要为public) 适用于可选依赖项public void setUserService(UserService userService){this.userService = userService;}
}
使用字段注入,其最大缺点为:
- 类会和Spring强耦合,由于无构造器或setter方法,无法在容器外使用。
- 无法使用属性注入的方式构建不可变对象。
- 同第一小点,在测试时无法脱离容器进行测试,即 new 出来的 Mock 对象无法被引入测试单元。
- 强依赖和可选依赖都被隐藏,无法区分,违背单一职责原则。
3. Bean的常见概念
3.1 Bean的常用属性
属性名称 | 描述 |
---|---|
id | 是一个 Bean 的唯一标识符,Spring 容器对 Bean 的配置和管理都通过该属性完成 |
name | Spring 容器同样可以通过此属性对容器中的 Bean 进行配置和管理,name 属性中可以为 Bean 指定多个名称,每个名称之间用逗号或分号隔开 |
class | 该属性指定了 Bean 的具体实现类,它必须是一个完整的类名,使用类的全限定名 |
scope | 用于设定 Bean 实例的作用域,其属性值有 singleton(单例)、prototype(原型)、request、session 和 global Session。其【默认值】是 singleton。 |
property | 元素的子元素,用于调用 Bean 实例中的 Set 方法完成属性赋值,从而完成依赖注入。该元素的 name 属性指定 Bean 实例中的相应属性名 |
constructor-arg | 元素的子元素,可以使用此元素传入构造参数进行实例化。该元素的 index 属性指定构造参数的序号(从 0 开始),type 属性指定构造参数的类型 |
constructor-arg:name/index | 标定一个bean的属性名称/构造函数的第index个参数,用于初始化实例 |
ref/value | 和 等元素的子元素,用于直接指定一个引用/常量值;亦可作为初始化时注入集合类元素的标签 |
list | 用于封装 List 或数组类型的依赖注入 |
set | 用于封装 Set 或数组类型的依赖注入 |
map | 用于封装 Map 或数组类型的依赖注入 |
entry | |
factory-bean | 当class是一个工厂类时,指定其作为工厂 |
factory-method | 当class是一个工厂类时,使用该标签标注的静态方法(或若已指定一个factory-bean标注的实例)得到实例 |
autowire | 是否自动装配,详见下文表格 |
3.1.1 自动装配
属性取值 | 描述 |
---|---|
byName | 根据 Property 的 name 自动装配,如果一个 Bean 的 name 和另一个 Bean 中的 Property 的 name 相同,则自动装配这个 Bean 到 Property 中。 |
byType | 根据 Property 的数据类型(Type)自动装配,如果一个 Bean 的数据类型兼容另一个 Bean 中 Property 的数据类型,则自动装配。 |
constructor | 根据构造方法的参数的数据类型,进行 byType 模式的自动装配。 |
autodetect | 如果发现默认的构造方法,则用 constructor 模式,否则用 byType 模式。 |
no | 【默认】情况下,不使用自动装配,Bean 依赖必须通过 ref 元素定义。 |
3.2 Bean的作用域
Spring 容器在初始化一个 Bean 的实例时,同时会指定该实例的作用域。Spring3 为 Bean 定义了五种作用域,具体如下。
singleton
:单例模式,使用 singleton 定义的 Bean 在 Spring 容器中只有一个实例,这也是 Bean 【默认】的作用域。prototype
:原型模式,每次通过 Spring 容器获取 prototype 定义的 Bean 时,容器都将创建一个新的 Bean 实例。request
:在一次 HTTP 请求中,容器会返回该 Bean 的同一个实例。而对不同的 HTTP 请求,会返回不同的实例,该作用域仅在当前 HTTP Request 内有效。session
:在一次 HTTP Session 中,容器会返回该 Bean 的同一个实例。而对不同的 HTTP 请求,会返回不同的实例,该作用域仅在当前 HTTP Session 内有效。global Session
:在一个全局的 HTTP Session 中,容器会返回该 Bean 的同一个实例。该作用域仅在使用 portlet context 时有效。
3.3 Bean的生命周期
- 根据配置情况调用 Bean 构造方法或工厂方法实例化 Bean,包含以下四个预处理项目:
ResouceLoader
加载配置信息;BeanDefintionReader
解析配置信息,生成若干个BeanDefintion
;BeanDefintion
由BeanDefintionRegistry
管理起来;BeanFactoryPostProcessor
对配置信息进行加工(也就是处理配置的信息,一般通过PropertyPlaceholderConfigurer
来实现);
- 利用依赖注入完成 Bean 中所有属性值的配置注入。
- 如果 Bean 实现了
BeanNameAware
接口,则 Spring 调用 Bean 的setBeanName()
方法传入当前 Bean 的id
值。 - 如果 Bean 实现了
BeanFactoryAware
接口,则 Spring 调用setBeanFactory()
方法传入当前工厂实例的引用。 - 如果 Bean 实现了
ApplicationContextAware
接口,则 Spring 调用setApplicationContext()
方法传入当前ApplicationContext
实例的引用。 - 如果
BeanPostProcessor
(BBP) 和 Bean 关联,则 Spring 将调用该接口的预初始化方法postProcessBeforeInitialzation()
对 Bean 进行加工操作,此处非常重要,Spring 的 AOP 就是利用它实现的。 - 如果 Bean 实现了
InitializingBean
接口,则 Spring 将调用afterPropertiesSet()
方法。 - 如果在配置文件中通过
init-method
属性指定了初始化方法,则调用该初始化方法。 - 如果
BeanPostProcessor
和 Bean 关联,则 Spring 将调用该接口的初始化方法postProcessAfterInitialization()
。此时,Bean 已经可以被应用系统使用了。 - 如果在
<bean>
中指定了该 Bean 的作用范围为scope="singleton"
,则将该 Bean 放入 Spring IoC 的缓存池中,将触发 Spring 对该 Bean 的生命周期管理;如果在<bean>
中指定了该 Bean 的作用范围为scope="prototype"
,则将该 Bean 交给调用者,调用者管理该 Bean 的生命周期,Spring 不再管理该 Bean。 - 如果 Bean 实现了
DisposableBean
接口,则 Spring 会调用destory()
方法将 Spring 中的 Bean 销毁;如果在配置文件中通过destory-method
属性指定了 Bean 的销毁方法,则 Spring 将调用该方法对 Bean 进行销毁。
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- Spring源码解析(4)——注册BeanDefinition
回顾上篇 上篇文章解析配置文件我们已经分析完了配置文件解析过程,这个时候Spring已经创建了一个BeanDefinition并且将封装到了BeanDefinitionHolder中。接下来我们就接着分析注册BeanDefinition的过程。 分析源码实现 protected void processBeanDefinition(Element ele, Bea…...
2024/5/5 19:36:44 - Fibonacci sequence,求斐波那契数列
Fibonacci sequence,求斐波那契数列——迭代 def function_1(n):n1 = 1n2 = 1n3 = 1if n < 1:print("输入有误,输入值要求大于等于1")return -1while(n - 2 > 0):n3 = n2 + n1n1 = n2n2 = n3n -= 1return n3x = int(input("输入一个正整数:")) resu…...
2024/4/19 21:37:43 - 二进制数中1的个数
请实现一个函数,输入一个整数,输出该数二进制表示中 1 的个数。例如,把 9 表示成二进制是 1001,有 2 位是 1。因此,如果输入 9,则该函数输出 2。 class Solution { public:int hammingWeight(uint32_t n) {int count = 0;while (n){n = n & (n - 1);count++;}return …...
2024/4/16 10:28:35 - 信号的傅里叶变换(FFT)分析(matlab实现)
在分析信号时,可以先进行傅里叶变换(FFT)分析,在频率方面进行观察在FFT_Function.m里进行函数的定义function [FFTCoeff ,f] = FFT_Function(data,fs)L = length(data); % 信号长度 Y = fft(data); P2 = abs(Y/L); FFTCoeff = P2(1:floor(L/2)+1);%floor是取比它小的整…...
2024/4/4 20:55:53 - docker技术基础一:Linux Control Groups
https://www.ibm.com/developerworks/cn/linux/1506_cgroup/...
2024/5/5 19:02:02 - Qt 写一个跨平台串口Demo,以及解决串口接收不完整的问题!
源代码地址:https://github.com/zhaixd123/Qt.git 先上个截图吧- -串口使用的QT官方提供的QtSerialPort 使用QtSerialPort要在项目的.pro文件中引入下面的代码 QT += serialport然后用到QtSerialPort的地方引入头文件 #include <QtSerialPort/QSerialPort> #inclu…...
2024/4/16 10:29:28 - 第一章:Hadoop简介
简介 Hadoop是java开发的快速处理海量非结构化数据的框架。他的前身是Nutch----一个开源的web搜索引擎。Doug Cutting(hadoop之父)团队将Nutch中负责分布式计算的模块剥离了出来,起名为Hadoop(DC儿子的玩具名称-_-)。 从2006年面世以来,Hadoop发展迅猛,生态圈也日益扩大…...
2024/5/5 21:03:41 - Web_html
文章目录一、Web前端介绍1. 什么是网页2. 网页的组成3. 开发前的准备二、 HTML语法介绍1. HTML介绍2. 标签3. 使用三、常用标签介绍1. 基本结构解析2. body中常用标签3. 常用结构标签 一、Web前端介绍 1. 什么是网页 网页是基于浏览器的应用程序,是数据展示的载体. 2. 网…...
2024/5/5 18:05:40 - JAVA并发系列--ForkJoinPool初体验
ForkJoinPool初体验 ForkJoinPool是什么 ForkJoinPool是JAVA中较新的线程池,先来尝试一下学习使用。他主要用来处理能够产生子任务的任务。这个线程池是在 JDK 7 加入的,它的名字 ForkJoin 也描述了它的执行机制,主要用法和之前的线程池是相同的,也是把任务交给线程池去…...
2024/5/5 0:36:52 - php怎么修改默认端口
下载phpcustom,打开网站管理,右键修改默认端口...
2024/4/16 10:28:45 - Django07
《Django Web框架》 目录 文章目录《Django Web框架》目录缓存什么是缓存?为什么使用缓存?使用缓存场景:Django中设置缓存Django中使用缓存浏览器中的缓存强缓存协商缓存中间件 Middleware跨站请求伪造保护 CSRF分页Paginator对象Page对象文件上传文件下载 缓存 什么是缓存?…...
2024/5/5 2:11:33 - MUI 5+plus 获取APP根目录
/* 功能:获取App根目录实例:app.getRoot() 当前访问路径:/page/index.html,结果:../当前访问路径:/page/child/index.html,结果:../../使用场景:app.getRoot()+"/page/child/index.html"*/ var app = app || {}; app.getRoot = function() {if (window.plus…...
2024/4/18 12:15:02 - 第02天-css学习-faofan
学习到了哪些东西 vertical-align float: left position 今天练习的代码 // ======...
2024/5/5 1:38:17 - MyBatisPlus(二):查询操作、分页插件、删除操作、逻辑删除、性能分析插件、Wrapper 构造器
上篇我们说到,使用 MyBatisPlus 省去了 CRUD 的编写,极大的简化了开发。 接下来,继续说说 MyBatisPlus 的其他特性 知识要点查询操作MyBatisPlus 的分页插件删除操作逻辑删除性能分析插件Wrapper 构造器 查询操作 查询操作,有很多方法,这里列举了:根据 id 查询、根据 id …...
2024/4/20 10:36:13 - 这些例子很炫,感兴趣的童鞋可以了解一下
粉色的在线网络视频社区手机模板下载https://www.mk2048.com/demo/demo_target_desc_hb0kbb0jaa.html粉色实用的网络视频分享平台手机网站、网络视频交流手机网站模板html下载。主要页面有:个人中心主页、视频列表页、消息提示页等总共4个页面。vue DNA螺旋粒子动画特效https:…...
2024/4/19 17:40:06 - 简单生成二维码(非动态)
生成简单二维码 需要的库 pip install pillow pip install qrcode 代码如下: import qrcode二维码展示的页面 input_data = "http://www.baidu.com"version:定义了生成二维码的尺寸,它的取值范围是 1 到 40 的整数。该参数的值越大,生成的二维码…...
2024/5/5 3:23:34 - redis主从复制(原理及代码详解)
原文并没有把配置过程写的很详细,此文是我亲手配置总结得来。环境centos7 redis-cli 3.2.12 前面是理论部分,后边为配置的实际代码。可以跳过理论直接上代码!Redis 支持简单且易用的主从复制(master-slave replication)功能, 该功能可以让从服务器(slave server)成为主…...
2024/5/5 2:11:43 - docker搭建FastDFS文件系统上传,访问
docker搭建FastDFS文件系统 1 查看fastdfs的镜像! docker search fastdfs2 拉取镜像 docker pull delron/fastdfs3 查看镜像 docker images4 启动tracker服务 docker run -d --network=host --name tracker -v /home/tracker:/var/fdfs delron/fastdfs tracker5 启动storage服…...
2024/5/5 2:09:53 - TFRecord
1、它是一种二进制文件格式,理论上可以保存任何格式的信息。2、它是为TensorFlow量身打造的,用于统一训练时数据的文件格式。3、TFRecord不是非用不可。4、TFRecord的创建和读取,官方都提供了API,操作简单。参考文档:https://juejin.im/entry/5b30af58518825749630f045...
2024/5/4 19:20:43 - Java邮箱工具类
Java邮箱工具类-itcast package cn.itcast.travel.util;import javax.mail.*; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import java.util.Properties;/*** 发邮件工具类*/ public final class MailUtils {private static final …...
2024/4/16 10:29:18
最新文章
- Python深度学习基于Tensorflow(1)Numpy基础
numpy的重要性不言而喻,一般不涉及到GPU/TPU计算,都是用numpy,常见的np就是这个玩意。其特点就是快!其实如果不涉及到深度学习,还有一个库是很重要的,scipy,集成了很多的东西。 安装和导入如下…...
2024/5/5 21:53:22 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/3/20 10:50:27 - Idea集成Docker的快捷部署
Idea集成Docker的快捷部署 配置Docker远程访问1.1 修改 `/lib/systemd/system/docker.service`1.2 替换`ExecStart`1.3 重启docker服务1.4 监听端口是否被占用1.5 服务器防火墙开启2375端口1.6 测试配置IDEA2.1 下载docker插件2.2 添加docker连接2.3 配置容器镜像加速器2.4 配置…...
2024/4/30 20:48:45 - 实景三维在数字乡村建设中的重要作用
随着科技的飞速发展,数字乡村建设已成为推动乡村振兴、实现农村现代化的重要途径。实景三维技术作为数字乡村建设的重要支撑,正逐渐在各个领域发挥着不可或缺的作用。本文将从实景三维技术在数字乡村中的应用场景、优势及未来展望等方面进行探讨…...
2024/5/5 8:32:06 - MXNet库
MXNet(MatriX Network)是一个开源的深度学习框架,最初由亚马逊公司开发并于2015年发布。它是一个高效、灵活且可扩展的框架,旨在支持大规模的分布式深度学习模型训练和部署。 以下是 MXNet 库的一些主要特点和组成部分࿱…...
2024/5/5 8:40:42 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...
2024/5/4 23:54:56 - 【原油贵金属周评】原油多头拥挤,价格调整
原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...
2024/5/4 23:54:56 - 【外汇周评】靓丽非农不及疲软通胀影响
原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...
2024/5/4 23:54:56 - 【原油贵金属早评】库存继续增加,油价收跌
原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...
2024/5/4 23:55:17 - 【外汇早评】日本央行会议纪要不改日元强势
原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...
2024/5/4 23:54:56 - 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响
原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...
2024/5/4 23:55:05 - 【外汇早评】美欲与伊朗重谈协议
原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...
2024/5/4 23:54:56 - 【原油贵金属早评】波动率飙升,市场情绪动荡
原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...
2024/5/4 23:55:16 - 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试
原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...
2024/5/4 23:54:56 - 【原油贵金属早评】市场情绪继续恶化,黄金上破
原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...
2024/5/4 18:20:48 - 【外汇早评】美伊僵持,风险情绪继续升温
原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...
2024/5/4 23:54:56 - 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势
原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...
2024/5/4 23:55:17 - 氧生福地 玩美北湖(上)——为时光守候两千年
原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...
2024/5/4 23:55:06 - 氧生福地 玩美北湖(中)——永春梯田里的美与鲜
原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...
2024/5/4 23:54:56 - 氧生福地 玩美北湖(下)——奔跑吧骚年!
原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...
2024/5/4 23:55:06 - 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!
原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...
2024/5/5 8:13:33 - 「发现」铁皮石斛仙草之神奇功效用于医用面膜
原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...
2024/5/4 23:55:16 - 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者
原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...
2024/5/4 23:54:58 - 广州械字号面膜生产厂家OEM/ODM4项须知!
原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...
2024/5/4 23:55:01 - 械字号医用眼膜缓解用眼过度到底有无作用?
原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...
2024/5/4 23:54:56 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...
2022/11/19 21:17:16 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在iPhone上关闭“请勿打扰”
Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...
2022/11/19 21:16:57