Spring framework(一) 笔记
spring
1. 什么是spring
spring是J2EE应用程序框架,是轻量级的IoC和AOP的容器框架,主要是针对javaBean的生命周期进行管理的轻量级容器。
2. 框架概述
-
IoC(Inversion of Control)控制反转
对象创建责任的反转,在spring中BeanFactory
是IoC容器的核心接口,负责实例化,定位,配置应用程序中的对象及建立这些对象间的依赖。
XmlBeanFactory实现BeanFactory接口,通过获取xml配置文件数据,组成应用对象及对
象间的依赖关系。简单认知就是将原本对象的创建控制权交由spring进行管理,使用者无需关注对象的创建过程;
DI 依赖注入
指 Spring 创建对象的过程中,将对象依赖属性(简单值,集合,对象)通过配置设值给该对象。
spring的三种注入方式:
set注入 、 接口注入 、 构造方法注入 -
AOP面向切面编程
- AOP是一种编程范式,提供从还有一个角度来考虑程序结构以完好面向对象编
程(OOP)。 - AOP为开发人员提供了一种描写叙述横切关注点的机制,并可以自己主动将横
切关注点织入到面向对象的软件系统中。从而实现了横切关注点的模块化。 - AOP可以将那些与业务无关,却为业务模块所共同调用的逻辑或责任。比如
事务处理、日志管理、权限控制等。封装起来,便于降低系统的反复代码,降
低模块间的耦合度,并有利于未来的可操作性和可维护性。
- AOP是一种编程范式,提供从还有一个角度来考虑程序结构以完好面向对象编
Spring 框架的主要优点具体如下:
-
方便解耦,简化开发
Spring 就是一个大工厂,可以将所有对象的创建和依赖关系的维护交给 Spring 管理。
-
方便集成各种优秀框架
Spring 不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如 Struts2、Hibernate、MyBatis 等)的直接支持。
-
降低 Java EE API 的使用难度
Spring 对 Java EE 开发中非常难用的一些 API(JDBC、JavaMail、远程调用等)都提供了封装,使这些 API 应用的难度大大降低。
-
方便程序的测试
Spring 支持 JUnit4,可以通过注解方便地测试 Spring 程序。
-
AOP 编程的支持
Spring 提供面向切面编程,可以方便地实现对程序进行权限拦截和运行监控等功能。
-
声明式事务的支持
只需要通过配置就可以完成对事务的管理,而无须手动编程。
Spring 官网列出的 Spring 的 6 个特征:
- 核心技术 :依赖注入(DI),AOP,事件(events),资源,i18n,验证,数据绑定,类型转换,SpEL。
- 测试 :模拟对象,TestContext框架,Spring MVC 测试,WebTestClient。
- 数据访问 :事务,DAO支持,JDBC,ORM,编组XML。
- Web支持 : Spring MVC和Spring WebFlux Web框架。
- 集成 :远程处理,JMS,JCA,JMX,电子邮件,任务,调度,缓存。
- 语言 :Kotlin,Groovy,动态语言。
spring结构:
-
Data Access/Integration(数据访问/集成)
- JDBC 模块:提供了一个 JDBC 的抽象层,大幅度减少了在开发过程中对数据库操作的编码。
- ORM 模块:对流行的对象关系映射 API,包括 JPA、JDO、Hibernate 和 iBatis 提供了的集成层。
- OXM 模块:提供了一个支持对象/XML 映射的抽象层实现,如 JAXB、Castor、XMLBeans、JiBX 和 XStream。
- JMS 模块:指 Java 消息服务,包含的功能为生产和消费的信息。
- Transactions 事务模块:支持编程和声明式事务管理实现特殊接口类,并为所有的 POJO。
-
Web 模块
- Web 模块:提供了基本的 Web 开发集成特性,例如多文件上传功能、使用的 Servlet 监听器的 IoC 容器初始化以及 Web 应用上下文。
- Servlet模块:包括 Spring 模型—视图—控制器(MVC)实现 Web 应用程序。
- Portlet 模块:提供了在 Portlet 环境中使用 MV C实现,类似 Web-Servlet 模块的功能。
- WebSocket 模块:提供对WebSocket的集成支持。
-
Core Container(核心容器)
- Beans 模块:提供了 BeanFactory,是工厂模式的经典实现,Spring 将管理对象称为 Bean。
- Core 核心模块:提供了 Spring 框架的基本组成部分,包括 IoC 和 DI 功能。
- Context 上下文模块:建立在核心和 Beans 模块的基础之上,它是访问定义和配置任何对象的媒介。ApplicationContext 接口是上下文模块的焦点。
- Expression Language 模块:是运行时查询和操作对象图的强大的表达式语言。
-
Spring Aspects :提供与 AspectJ 的集成,是一个功能强大且成熟的面向切面编程(AOP)框架。
-
Spring AOP :提供了面向切面的编程实现。
-
Spring Test : 提供了对 JUnit 和 TestNG 测试的支持。
-
Instrumentation 模块:提供了类工具的支持和类加载器的实现,可以在特定的应用服务器中使用。
IOC容器
-
BeanFactory
BeanFactory 是基础类型的 IoC 容器,它由 org.springframework.beans.factory.BeanFactory 接口定义,并提供了完整的 IoC 服务支持。简单来说,BeanFactory 就是一个管理 Bean 的工厂,它主要负责初始化各种 Bean,并调用它们的生命周期方法。BeanFactory 接口有多个实现类,最常见的是 org.springframework.beans.factory.xml.XmlBeanFactory,它是根据 XML 配置文件中的定义装配 Bean 的。
创建 BeanFactory 实例时,需要提供 Spring 所管理容器的详细配置信息,这些信息通常采用 XML 文件形式管理。其加载配置信息的代码具体如下所示:
BeanFactory beanFactory = new XmlBeanFactory(new FileSystemResource(“D://applicationContext.xml”));
-
ApplicationContext
ApplicationContext 是 BeanFactory 的子接口,也被称为应用上下文。该接口的全路径为 org.springframework.context.ApplicationContext,它不仅提供了 BeanFactory 的所有功能,还添加了对 i18n(国际化)、资源访问、事件传播等方面的良好支持。
ApplicationContext 接口有两个常用的实现类:
ClassPathXmlApplicationContext
该类从类路径 ClassPath 中寻找指定的 XML 配置文件,找到并装载完成 ApplicationContext 的实例化工作ApplicationContext applicationContext = new ClassPathXmlApplicationContext(String configLocation);
FileSystemXmlApplicationContext该类从指定的文件系统路径中寻找指定的 XML 配置文件,找到并装载完成 ApplicationContext 的实例化工作
ApplicationContext applicationContext = new FileSystemXmlApplicationContext(String configLocation);
bean的使用方法
public class SpringTest{ @Testpublic void Test(){String xmlPath="applicationContext.xml";String xmlPath="src/main/java/applicationContext.xml";//获取factory工厂对象(ApplicationContext)//以ClassPathXMLApplicationContext对象创建factory工厂ApplicationContext applicationContext= new ClassPathXmlApplicationContext(xmlPath);//以FileSystemXmlApplicationContext对象创建factory工厂 ApplicationContext applicationContext1=new FileSystemXmlApplicationContext(xmlPath1);//获取对象 对象获取后为object对象,需要对其进行强制转换 applicationContext.getBean("beanId");//beanId为applicationContest.xml文件中配置的bean的idapplicationContext1.getBean("beanId");}
}
DI
依赖注入主要有两种实现方式,分别是属性 setter 注入和构造方法注入。具体介绍如下。
-
属性 setter 注入
指 IoC 容器使用 setter 方法注入被依赖的实例。通过调用无参构造器或无参 static 工厂方法实例化 bean 后,调用该 bean 的 setter 方法,即可实现基于 setter 的 DI。 -
构造方法注入
指 IoC 容器使用构造方法注入被依赖的实例。基于构造器的 DI 通过调用带参数的构造方法实现,每个参数代表一个依赖。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:p="http://www.springframework.org/schema/p"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.2.xsd"><!-- 由 Spring容器创建该类的实例对象 --><bean id="personDao" class="com.jm.notes.PersonDaoImpl" /><bean id="personService" class="com.jm.notes.di.PersonServiceImpl"><!-- 将personDao实例注入personService实例中 --><!--setter方式注入--><!--<property name="personDao" ref="personDao"/>--><!--构造方法注入--><constructor-arg index="0" ref="personDao"/></bean>
</beans>
spring 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" xmlns:p="http://www.springframework.org/schema/p"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.2.xsd"></beans>
常用的属性
属性名称 | 描述 |
---|---|
id | 是一个 Bean 的唯一标识符,Spring 容器对 Bean 的配置和管理都通过该属性完成 |
name | Spring 容器同样可以通过此属性对容器中的 Bean 进行配置和管理,name 属性中可以为 Bean 指定多个名称,每个名称之间用逗号或分号隔开 |
class | 该属性指定了 Bean 的具体实现类,它必须是一个完整的类名,使用类的全限定名 |
scope | 用于设定 Bean 实例的作用域,其属性值有 singleton(单例)、prototype(原型)、request、session 和 global Session。其默认值是 singleton |
constructor-arg | 元素的子元素,可以使用此元素传入构造参数进行实例化。该元素的 index 属性指定构造参数的序号(从 0 开始),type 属性指定构造参数的类型 |
property | 元素的子元素,用于调用 Bean 实例中的 Set 方法完成属性赋值,从而完成依赖注入。该元素的 name 属性指定 Bean 实例中的相应属性名 |
ref | 和 等元素的子元索,该元素中的 bean 属性用于指定对 Bean 工厂中某个 Bean 实例的引用 |
value | 和 等元素的子元素,用于直接指定一个常量值 |
list | 用于封装 List 或数组类型的依赖注入 |
set | 用于封装 Set 类型属性的依赖注入 |
map | 用于封装 Map 类型属性的依赖注入 |
entry |
bean的实例化
-
构造器实例化
<!--bean实例化对象构造器--><bean id="personTest" class="com.jm.notes.entity.PersonTest"/><!--id为查找实例化对象的标记,通常命名为对象名, class为对象的完全限定名-->
-
静态工厂方法实例化
/** *静态工厂类,里面包含创建对象的静态方法 */ public class StaticBaseFactory { public static PersonTest createPersonTest(){return new PersonTest();}}
<!--bean实例化对象静态工厂--><bean id="personTest1" class="com.jm.notes.entity.StaticBaseFactory"factory-method="createPersonTest"/><!--id为查找实例化对象的标记,通常命名为对象名, class为静态工厂类的完全限定名factory-method为静态工厂类中对应实例对象的静态方法名-->
-
实例化工厂实例化
/** *实例化工厂类,里面包含创建对象的普通方法 */ public class StaticBaseFactory { //实例化类之前会先实例化工厂public StaticBaseFactory() {System.out.println("实例化工厂实例中");}public PersonTest createPerson(){return new PersonTest();}}
<!--bean实例化对象实例工厂--> <!--配置实例工厂--> <bean id="myBaseFactory" class="com.jm.notes.entity.StaticBaseFactory"/> <!--对象实例化配置--> <bean id="personTest2" factory-bean="myBaseFactory"factory-method="createPerson"/> <!--实例化对象id为对象索引标记,factory-bean为指定的实例化工厂的id factory-method为指定实例化工厂中的对应对象的实例化方法 -->
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 时有效。
-
singleton 作用域
singleton 是 Spring 容器默认的作用域,当一个 Bean 的作用域为 singleton 时,Spring 容器中只会存在一个共享的 Bean 实例,并且所有对 Bean 的请求,只要 id 与该 Bean 定义相匹配,就只会返回 Bean 的同一个实例。
在xml配置中配置对象实例(applicationContextBeanSingleton.xml)
<!--配置对象PersonTest实例化bean并指定作用域scope为Singleton-->
<bean id ="personTest" class="com.jm.notes.entity.PersonTest" scope="singleton"/>
<!--配置另一个PersonTest对象的bean不指定作用域scope-->
<bean id ="personTest1" class="com.jm.notes.entity.PersonTest"/>
测试方法
public class BeanSingletonTest{ @Testpublic void SingletonTest(){String xmlPath = "applicationContextBaseSingleton.xml";ApplicationContext applicationContext =new ClassPathXmlApplicationContext(xmlPath);System.out.println(applicationContext.getBean("personTest"));System.out.println(applicationContext.getBean("personTest"));System.out.println(applicationContext.getBean("personTest1"));System.out.println(applicationContext.getBean("personTest1"));}}
输出结果
com.jm.notes.entity.PersonTest@1563da5
com.jm.notes.entity.PersonTest@1563da5
com.jm.notes.entity.PersonTest@2bbf4b8b
com.jm.notes.entity.PersonTest@2bbf4b8b
从结果上看,前两次获取的Id为personTest的对象的地址完全相同,后两次Id为personTest1的对象地址完全相同,说明申明了Singleton的bean和默认的bean都为单例模式实例化对象。
###prototype 作用域
使用 prototype 作用域的 Bean 会在每次请求该 Bean 时都会创建一个新的 Bean 实例。因此对需要保持会话状态的 Bean(如 Struts2 的 Action 类)应该使用 prototype 作用域。
在xml配置中配置对象实例
<!-配置bean实例对象PersonTest,配置scope为prototype-->
<bean id="personTest" class="com.jm.notes.entity.PersonTest" scope="prototype"/>
test class:
public class PrototypeBeanTest{ @Testpublic void prototypeTest(){String xmlPath="applicationContextBeanPrototype.xml";ApplicationContext applicationContext =new ClassPathXmlApplicationContext(xmlPath);System.out.println(applicationContext.getBean("personTest"));System.out.println(applicationContext.getBean("personTest"));System.out.println(applicationContext.getBean("personTest"));}}
输出结果:
com.jm.notes.entity.PersonTest@1877ab81
com.jm.notes.entity.PersonTest@305fd85d
com.jm.notes.entity.PersonTest@458c1321
每次的输出结果都不相同,说明bean scope申明为prototype的作用域下每次都创建了不同的PersonTest的实例。
###Spring生命周期
spring bean 的装配
Bean 的装配可以理解为依赖关系注入,Bean 的装配方式也就是 Bean 的依赖注入方式。Spring 容器支持多种形式的 Bean 的装配方式,如基于 XML 的 Bean 装配、基于 Annotation 的 Bean 装配和自动装配等。
基于xml装配bean
基于xml的注入方式有值注入和构造方法注入两种方式,值注入需要确保值都有对应的setter方法和一个默认无参构造方法;构造方法注入需要有一个对应注入参数对应的构造方法。
创建personTest类:
package com.jm.notes.entity;import java.util.Objects;/*** @描述* @author(创建者) jm* @date(创建时间) 2020/5/27 13:15*/public class PersonTest {private String name;private Integer age;private String sex;public PersonTest(String name, Integer age, String sex) {this.name = name;this.age = age;this.sex = sex;}public PersonTest() {}public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}@Overridepublic String toString() {return "PersonTest{" +"name='" + name + '\'' +", age=" + age +", sex='" + sex + '\'' +'}';}}
xml(applicationContextBean.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"xmlns:p="http://www.springframework.org/schema/p"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.2.xsd"><!--Spring bean 基于xml的装配bean--><!-- 使用设值注入方式装配Person实例 --><bean id="personTest" class="com.jm.notes.entity.PersonTest"><property name="name" value="我是值注入测试的人"/><property name="age" value="12"/><property name="sex" value="男"/></bean><!-- 使用构造方法装配Person实例 --><bean id="personTest1" class="com.jm.notes.entity.PersonTest"><constructor-arg index="0" value="我是构造方法注入测试的人"/><constructor-arg index="1" value="12"/><constructor-arg index="2" value="女"/></bean>
</beans>
test类:
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;/*** @描述* @author(创建者) jm* @date(创建时间) 2020/5/27 15:10*/
public class BeanAssemblyXmlTest {@Testpublic void assemblyXmlTest(){String xmlPath ="applicationContextBean.xml";ApplicationContext applicationContext=new ClassPathXmlApplicationContext(xmlPath);System.out.println(applicationContext.getBean("personTest"));System.out.println(applicationContext.getBean("personTest1"));}
}
输出结果:
PersonTest{name='我是值注入测试的人', age=12, sex='男'}
PersonTest{name='我是构造方法注入测试的人', age=12, sex='女'}
######xml装配的当bean的数量过多时会导致xml文件变得臃肿不好维护和升级。
基于annotation(注解)装配bean
基于Annotation的常用注解:
-
@Component
用于表示一个组件bean,可以作用于任何层次上。
-
@Repository
用于数据访问层(dao层)的类标注为spring的bean。
-
@Service
通常作用域业务层(service层),用于将业务层的类标注为spring的bean。
-
@Controller
通常用于控制层(Controller层),用于将控制层的类标注为spring的bean。
-
@Autowired
用于对bean属性变量、属性的setter方法和构造函数进行标注,配合对应的注解助理bean的自动配置工作。默认按bean的类型进行装配。
-
@Resource
作用和@Autowired相同,其区别在于 @Autowired 默认按照 Bean 类型装配,而 @Resource 默认按照 Bean 实例名称进行装配。@Resource 中有两个重要属性:name 和 type。
Spring 将 name 属性解析为 Bean 实例名称,type 属性解析为 Bean 实例类型。如果指定 name 属性,则按实例名称进行装配;如果指定 type 属性,则按 Bean 类型进行装配。
-
@Qualifier
与 @Autowired 注解配合使用,会将默认的按 Bean 类型装配修改为按 Bean 的实例名称装配,Bean 的实例名称由 @Qualifier 注解的参数指定。
@RestController vs @Controller
- @Controller 返回一个页面
- @RestController 返回JSON 或 XML 形式数据
- @Controller +@ResponseBody 返回JSON 或 XML 形式数据
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- Linux安全-关于防火墙语法(三)- SNAT、DNAT转换
防火墙语法(三): 1.SNAT策略的典型应用环境 局域网主机共享单个公网IP地址接入InternetSNAT策略的原理 源地址转换,Source Network Address Translation 修改数据包的源地址启用SNATSNAT转换实验 前提条件: 1.局域网各主机正确设置IP地址/子网掩码 2.局域网各主机正确设置…...
2024/4/24 8:05:35 - [Zabbix] Linux 环境zabbix 3.4邮件报警配置及zabbix故障处理
本片博客主要介绍了[Zabbix] Centos 6下 Zabbix 3.4邮件报警配置及Zabbix邮件故障解决方法 ;分别介绍了zabbix使用本地账号发送邮件报警及使用互联网账号发送邮件报警配置,并处理邮件发送故障“cannot connect to SMTP server “zabbix.itwish.cn”: cannot connect to [[zab…...
2024/4/24 8:05:37 - Java Swing JTable
1 简介 JTable用于显示和编辑常规的二维单元格表。有关面向任务的文档和使用JTable的示例,请参见Java教程中的如何使用表。 JTable具有许多功能,可以自定义其呈现和编辑功能,但是为这些功能提供了默认设置,因此可以轻松设置简单的表。例如,要建立一个包含10行10列数字的表…...
2024/4/24 8:05:33 - Java基础之【List、Set、数据结构、Collections】
前言:现实就像一个泥潭,有人选择沉沦苟且,也有人跨过泥潭面向远方,如果想要逃离泥潭,就必须努力变得优秀数据结构数据结构有什么用现实世界的存储,我们使用的工具和建模。每种数据结构有自己的优点和缺点,想想如果Google的数据用的是数组的存储,我们还能方便地查询到所需要的数…...
2024/4/24 8:05:36 - 蒙鸟云:IDC圈一周热点集锦
5月11日-5月17日,IDC圈发生了这些大事,随蒙鸟云来一起围观吧!一、普洛斯怀来大数据科技产业园开工建设,布局数字“新基建” 普洛斯怀来大数据科技产业园项目,于5月12日,举行了开工仪式,正式拉开了超大规模数据中心全面建设的序幕。据悉该项目基础建设投资16亿元,总投资…...
2024/5/5 19:33:36 - 007FTP与Nginx服务器的搭建
1 、搭建图片服务器传统的图片管理 没法满足在 tomcat 服务器集群状态下,图片的保存问题,会出现图片找不到的 404 问 题。 1.2、集群环境中图片管理1.3 图片服务作用总结 ftp 服务: 实现图片的上传,保存图片资源 客户端—(http 协议)—tomcat—(ftp 协议)—图片服务器 图片…...
2024/5/6 3:10:39 - 翼火蛇安全笔记:内网渗透测试(二)
本系列的第二篇文章将会从内网渗透的基本思路讲起,进一步介绍内网渗透。(二)内网渗透基本思路1. 内网渗透性质1.偶然性:概率性,证明和验证技术2.针对性的渗透:获取内网核心数据和资料,控制某台或多台计算机,获取公司或者个人私密信息(邮件,研究成果,代码,顾客名单…...
2024/5/6 1:41:33 - Python : 一文学会办公自动化(Word、Excel、PPT)
自动化:1946年提出,被运用于军事等方面。办公自动化指的是现在办公和计算机技术结合起来的新型的办公的方式。“高效的工作”正是自动化解决的问题/办公自动化的分类:操作Excel: 就业数据分析等操作Word: 考试系统生成Word试卷等操作PPT : 用户画像分析等 使用的模块:xlrd模…...
2024/5/5 16:46:53 - 大家的C语言-103-翻译器和语言
经过前两节的介绍相信大家对CPU和操作系统都有了感性的认识。那么本节我们来打通任督二脉,来看看到底什么是编程语言,以及我们要学习的东西本质上是什么。“编写程序”还是“编写代码”在大多数语境中“编写程序”和“编写代码”已经没有区别了,但两者的含义是存在本质上的差…...
2024/5/5 20:12:29 - Anaconda复制移植
Anaconda复制移植 2020-5-27 背景说明: 有两台服务器分别为CPU、GPU,其中CPU连接外网,GPU与CPU在同一个局域网中,需要通过CPU作为跳板登陆GPU,且GPU不可以直接访问外网。 任务说明:想要在GPU上安装anaconda同时配置gpu版本的pytorch。 由于不能通过GPU服务器直接访问外网…...
2024/5/6 0:50:36 - 网络爬虫之网页数据解析(正则re)
文章目录小实例正则匹配规则match方法:从起始位置开始查找,一次匹配search方法:从任何位置开始查找,一次匹配findall方法:全部匹配,返回列表finditer方法:全部匹配,返回迭代器split方法:分割字符串,返回列表sub方法:替换匹配中文:re.compile(u[\u4e00-\u9fa5]+)贪婪…...
2024/5/5 22:33:47 - Java+SQL+MySQL+Hive存储过程汇总
Java+SQL+MySQL+Hive存储过程汇总 存储过程概念 在我们做一个复杂的项目时,会多次涉及到与数据库的连接,这时我们会一次次的来用SQL语句进行对数据库的连接,但如果我们这时用存储过程的话就只需要连接一次数据库就可以了,从而省去大量的SQL语句。 存储过程的优点 1、加快…...
2024/4/16 19:00:54 - 布隆过滤器实战教程
欢迎大家前来白嫖PDF。下图回复:666本教程致力于最实用教程,个别图片粘贴有丢失,还有来领取原版。文章目录前言JavaPub说关于布隆过滤器1.介绍1.1.基础介绍1.1.1.百度百科1.1.2.原理介绍1.1.3.布隆过滤器的属性1.2.数学推导1.3.哈希2.基础用法2.1.Java版3.进阶3.1.进阶一(参…...
2024/4/20 16:03:39 - Live2D的基础使用
效果图:代码如下:<script src="https://eqcn.ajz.miesnfu.com/wp-content/plugins/wp-3d-pony/live2dw/lib/L2Dwidget.min.js"></script> <script>L2Dwidget.init({"model": {//jsonpath控制显示那个小萝莉模型,下面这个就是我觉得最…...
2024/4/16 16:59:44 - python的运算符
1.运算符 1.1 运算符的概念 运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。例如:2+3,其操作数是2和3,而运算符则是“+” 1.2 运算符的分类算数运算符 赋值运算符 比较运算符 逻辑运算符 条件运算符2.算数运算符加法运算符 表现形式 +x = 1 + 2 x = hell…...
2024/4/16 19:01:18 - 违规?锦程消费金融“一房多贷”突破20万贷款限制,还要收取服务费
有业内分析人士指出,目前市场对于超过20万的消费贷款确实有需求,但是,锦程消费金融公司这种用“一房多贷”突破借款上限的行为就是在打擦边球,而且收取手续费、“辛苦费”的做法有“砍头息”的嫌疑。WEMONEY研究室|出品曾仰琳 |文近期,WEMONEY研究室关注到,一位自称是四…...
2024/4/24 8:05:30 - 二十道面试题每个题你能讲十分钟恭喜你在上海至少16k(Java岗)
给你们上点干货,让面试官膜拜面试题:HashMap底层实现原理,红黑树,B+树,B树的结构原理,volatile关键字,CAS(比较与交换)实现原理Spring的AOP和IOC是什么?使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别Spring和SpringMVC,MyBatis以及SpringBoot的…...
2024/4/24 8:05:29 - 疫情被裁,闭关60天看完这份PDF,看我如何拿下腾讯、华为、字节跳动的offer
前言 都说金三银四是找工作的好时机,但是今年却不同,因为受疫情的影响很多公司都在裁员,而我就是被裁的一员,本以为是金三银四好找工作,可是连续投了十几份简历面试了十几次都没有下文。 当我面试十几次都没下文时,我停止了继续找投简历,开始静下心来寻找面试失败的原因…...
2024/4/24 8:05:27 - Android TV开发|遥控器点击时更改按钮字体颜色
实现需求如下:遥控器点击时更改按钮字体颜色声明变量 private int wihtebtnid = 0; private int[] btnInt = { R.id.setroom, R.id.assoication,R.id.comfiguration, R.id.switchimage, R.id.routeinfor,R.id.routeset }; private Button[] setBtn = { setroom, Asso, comfig,…...
2024/4/24 8:05:25 - 质量回顾分析系统软件(QRS)
质量回顾分析系统(QRS) 传统的制药企业年度产品质量回顾分析系统多采用Excel和Minitab进行分析,但是费时费力,人力投入大,工作繁琐。全新QRS软件系统能帮助制药企业快速制作年度产品质量回顾分析系统软件,分析工作时间从20人30天到2人5天,提高效率,节省工作量。质量回顾…...
2024/4/24 8:05:24
最新文章
- 多器官和多模态图像的通用异常检测模型-不受特定模型约束
文章目录 A Model-Agnostic Framework for Universal Anomaly Detection of Multi-organ and Multi-modal Images摘要方法实验结果 A Model-Agnostic Framework for Universal Anomaly Detection of Multi-organ and Multi-modal Images 摘要 背景与挑战:深度学习在…...
2024/5/6 4:52:42 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/3/20 10:50:27 - 探索进程控制第一弹(进程终止、进程等待)
文章目录 进程创建初识fork函数fork函数返回值fork常规用法fork调用失败的原因 写时拷贝进程终止进程终止是在做什么?进程终止的情况代码跑完,结果正确/不正确代码异常终止 如何终止 进程等待概述进程等待方法wait方法waitpid 进程创建 初识fork函数 在…...
2024/5/5 1:11:34 - 同一个pdf在windows和linux中的页数不一样
之前认为PDF的格式,至少页数是不会变化的,结果最近发现一个文档在windows和linux中的页数不一样,linux中的pdf进入像word一样排版变得紧凑了,原本在下一页的几行进入了上一页的末尾。问了gpt后得到这样的回答: PDF文档…...
2024/5/5 6:48:14 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心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/6 1:40:42 - 【外汇早评】美伊僵持,风险情绪继续升温
原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继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