Spring杂记

中文实体关系抽取数据集大盘点:从百度Duie2.0到医疗CBLUE,哪个更适合你的NLP项目? 本文全面分析了中文实体关系抽取领域的主流数据集,包括百度DuIE 2.0、医疗CBLUE等,帮助开发者根据项目需求选择最适合的数据集。文章详细对比了各数据集的特点、适用场景及优化策略,为自然语言处理项目提供实用指南。 阅读详情

首先介绍下spring的核心模块:

如图:


Spring IOC

IOC (Inversion of Control,控制反转) 是spring的核心,所谓IOC,就是spring来负责控制对象的生命周期和对象间的关系。

传统开发模式:对象之间相互依赖

IOC开发模式: IOC容器安排对象之间的依赖

IOC理论背景:

对于这种耦合关系,如果其中一个齿轮出类问题,机器就不能正常运转。因此,需要降低对象之间的耦合度。

IOC的处理模式简单来说就是把复杂的系统分解成相互独立的对象。借助第三方实现对象的解耦。

把中间的部分拿掉,就是最理想的系统:

这样,在实现A的时候,就无须再考虑BCD了


IOC的另外的名字是依赖注入(DI, Dependency Injection):就是由IOC容器运行期间,动态的将某种依赖关系注入到对象之中,所以,依赖注入和控制反转时从不同角度的描述同一件事情,就是指引入IOC容器,利用依赖关系注入方式,实现对象之间的解耦。

IOC通俗理解:

IOC : 创建对象实例的控制权从代码控制剥离到IOC容器控制,就是在xml文件中控制,侧重于原理。

DI:创建对象实例时,为这个对象注入属性值或其他对象实例,侧重于实现。


Spring AOP

AOP专门用于处理系统中分布于各个模块中的交叉关注点的问题,在JavaEE应用中,通常通过AOP来处理一些具有横切性质的系统级服务,如:事务管理,安全检查,缓存,对象池管理等。

如图:

如果需要修改深色部分的代码,需要修改三个地方。

这里,只需要修改深色部分就可以了

AOP代理其实是由AOP框架动态生辰的一个对象,该对象可以作为目标对象使用,AOP代理包含的方法与目标对象的方法如图:

在AOP中,需要程序员参与的主要有三个部分:

       定义普通业务组件,

       定义切入点,一个切入点可能横切多个业务组件

       定义增强处理

代理对象的方法=增强处理+被代理对象的方法;


AOP的通俗理解:

一个组件A,不关心其他常用的服务组件B,但是这个组件A使用组件B的时候,不是组件A自身区调用,而是通过配置等其他方式,比如Spring中可以通过xml配置文件,这样就使得A压根不需要知道B组建是怎么样的,是否存在,A只关心自己的业务逻辑,具体A使用B的时候,配置文件去做,与具体的A组件无关。


2 .spring 的框架开发包:(需要引入到jar文件中的包)

2.1 核心开发包

spring Core: 包含spring框架的核心工具类,spring的其他组件都需要使用这个包。

spring Beans: 所有应用都要用到,包含访问配置文件, 创建和管理bean,进行控制反转和依赖注入相关的操作。

spring AOP: 使用spring 的AOP需要的文件,申明性的事务管理,日志系统的引入等

spring Context:为spring核心提供大量扩展,它是访问定义和配置的任何对象的媒介。ApplicationContext 接口是上下文模块的重点。

2.2 业务组件包, 提供各种企业级的服务:

spring Aspects: 模块提供了与 AspectJ 的集成,这是一个功能强大且成熟的面向切面编程(AOP)框架。

spring Context Support : 这个开发包包含了支持缓存catch、JCA、JMX、邮件服务、任务计划等方面的这些所有类。

spring Expression :是Spring表达式语言。spring3.0创建了一种新的方式用于配置对象的注入,他便是SPEL即Spring Expression Language。有别于传统的Spring静态配置,他支持在运行时操作和查询对象,其语法类似统一的EL语言。

spring Framework Bom: 在使用Maven时 确保所有的Spring模块都使用统一的版本。

spring Instrument: 提供spring3.0对服务器的代理接口

spring Instrument Tomcat: 提供spring 3.0对Tomcat连接池的集成。

spring JDBC: 包含了Spring对JDBC数据访问时进行封装的所有类。Spring提供了两种使用Spring JDBC API的最佳实践:1.以JDBC Template为核心的基于Template JDBC的使用方式。2.是在JDBC Template的基础之上构建的基于操作对象的JDBC 的使用方式。

spring JMS: 提供了对Spring JMS1.0和JMS1.1的支持类。Spring 的JMS抽象框架简化了JMS API的使用并与JMS的提供者平滑的继承。org.springframework.jms.core包提供了在Spring当中使用JMS的核心功能,他的模版类处理资源的创建和释放,简化了JMS的使用。

spring orm : Spring对DAO特性进行了扩展,使其支持iBATIS 、JDO、OJB、TopLink,因为Hibernate已经独立成包了,所以不包含在这个包中了。  在使用这个包时必须同时包含sprin-dao.jar

spring oxm: Spring对Object XML的映射支持,可以让JAVA与XML之间来回切换。这是Spring3.0的一个新特性。OXM既是OXMapper,OX映射器这个概念并不新鲜,O代表Object ,X代表XML。他的目的是在JAVA和XML文档之间来回转换。

spring struts: 提供了对struts框架的支持。

spring test: 提供对junit等的检测封装。

spring tx :Spring transection,他为JDBC、Hibernate、JDO、JPA等提供了一致的声明式的编程式事物管理。

spring web: 包含web应用研发时用到Spring框架时所需要的的核心类。

spring webmvc: 包含了spring mvc框架相关的所有类,如果应用使用了独立的spring mvc框架,则无需使用这个jar包

spring webmvc portlet: 提供了对Spring MVC的增强,支持了portlet标准。Spring不仅支持传统的web开发,也支持JSR-168 portlet的开发。PortletMVC框架尽可能多的采用WEB MVC的框架,使相同的底层表现层抽象和整合技术。

如何选择使用这些包呢:

如果构建web应用并将全程使用spring,就使用全部的开发包文件,如果仅用到简单的ioc容器,只要spring-core和spring-beans两个jar包。


3 Spring IOC 的理解

3.1 IOC概述:

  IOC是spring容器的内核,AOP,声明事务等功能都依赖于此功能,它涉及代码解耦,设计模式,代码优化等问题的考量:

  DI概念的引入: 让调用类对某一接口实现类的依赖关系由第三方引入, 以移除调用类对某一接口实现类的依赖。

3.2.IOC 的注入类型 :

  • 构造函数注入:通过调用类的构造函数,将接口实现类通过构造函数变量转入。
  • 属性注入:通过setter方法完成调用类所需依赖的注入,更加灵活方便
  • 接口注入:将调用类所有依赖注入的方法抽象到一个接口中,调用类通过实现该接口提供相应的注入方法。
3.3 Ioc的注入方式:
  Spring作为一个容器,通过配置文件或者注解描述类和类之间的依赖关系,自动完成类的初始化和依赖注入的工作。

在理解spring ioc之前,关注下java的反射机制


4. Java反射机制

Java语言允许通过程序化的方式间接对Class的对象实力操作,Class文件由类转载器装载后,在JVM中将形成一份描述Class结构的元信息对象,通过该元信息对象可以获知Class的结构信息,如构造函数,属性和方法。

ClassLoader : 类装载器就是寻找类的字节码文件并构造出类在JVM内部表示的对象组件,主要工作由ClassLoader及其子类负责,ClassLoader是一个重要的java运行时系统组件,他负责在运行时查找和装入Class字节码文件。

工作机制:

  • 装载: 查找和导入Class类文件
  • 链接:执行校验,准备和解析步骤
  • 初始化:对类的静态变量,静态代码块执行初始化工作


类装载器的重要方法:java.lang

  • Class loadClass(String name) ; //name全限定类名
  • Class defineClass(String name, byte[]b, int off, int len); // 将类文件的字节数组转换为java.lang.class对象;
  • Class findSystemClass(String name); //从本地文件系统载入class文件
  • Class findLoadedClass(String name); //查看classLoader是否装载到某个类中
  • ClassLoader getParent();//获得类装载器的父装载器


Class反射对象描述类语义结构,可以从Class对象中获取构造函数,成员变量,方法等类元素反射对象,并以编程的方式通过这些反射对象对目变革对象进行操作。这些反射对象类在java.reflect包中定义,主要的三个反射类有:

  • Constructor.   类的构造函数反射类
  • Method :获取类方法
  • Field :类的成员变量反射类

Java反射机制与ioc的关系:

在spring中,通过IOC可以将实现类,参数信息等配置在其对应的配置文件中,当需要更改实现类或参数信息时,只需要需改配置文件即可,还可以对某对象所需要的其他对象进行注入,这种注入都是在配置文件中做的。

spring的ioc的实现原理就是利用java的反射机制,spring的工厂类完成配置文件的读取,利用反射机制注入对象等工作,可以通过bean的名称获取对应的对象。


5 Spring资源访问工具类

JDK提供的访问资源的类不能很好的满足各种底层资源的访问需求,因此,Spring提供了一个Resource接口:

如要方法:

  • boolean exists(); //判断资源是否存在
  • boolean isOpen(); //资源是否打开;
  • URL getURL(); //如果底层资源对应一个URL,返回对应的URL对象
  • File getFile(); //如果底层资源对应一个文件,返回对应file文件
  • InputStream getInputStream(); //返回对应输入流


具体实现类:

  • ByteArrayResource: 二进制数组表示的资源
  • ClassPathResource; 类路径下的资源
  • FileSystemResource; 文件系统资源
  • InputStreamResource:
  • ServletContextResource: 为访问web容器中上下文的资源设计,支持流,URL方式的访问
  • UrlResource: 可以访问任何通过URL表示的资源


Spring提供类加载资源的机制,自动识别不同资源类型

资源类型地址前缀:

  • classpath classpath:com/xx/bian.xml 从类路径加载
  • File file:/com/xx/bean.xml 主要使用url,从文件系统路径中装载资源
  • http:
  • ftp
  • 无前缀

Spring定义了一套资源加载的接口,并提供类实现类:

ResourceLoader: : getResource(String location):Resource:

  • Resource :getFile() File .........

6. BeanFactory和ApplicationContext

BeanFactory是Spring框架最核心的接口,它提供类高级IOC配置机制  ==IOC容器

ApplicationContext建立在BeanFactory基础之上,提供类更多面向应用的功能。== 应用上下文

BeanFactory是一个类工厂,可以创建和管理各种类对象,Spring称这些创建和管理的java对象为bean。

类体系结构:

  • XmlBeanFactory:
  • ListableBeanFactory:
  • HierarhicalBeanFactory : 父子级联IOC容器的接口
  • ConfigurableBeanFactory
  • ...........

初始化顺序:

  • 创建配置文件
  • 装载配置文件
  • 启动Ioc容器
  • 获取Bean实例


ApplicationContext由BeanFactory派生而来。提供了更多面向实际应用的功能。在BeanFactory中,很多功能需要以编程的方式实现,而在ApplicationContext中通过配置的方式实现

ApplicationContext的实现类:

  • ClassPathApplicationContext :类路径加载配置文件
  • FileSystemApplicationContext
  • ConfigureableApplicationContext:


扩展接口:

  • ApplicationEventPublisher:
  • MessageSource
  • ........




学习spring随手记录的一些东西,具体参考:www.jikexueyuan.com



RK AVS双目融合记录 NOTE] 调试平台双目avs融合调试,需要先保证两个摄像头能正常出图同时出流。使用默认工具测试vi->avs->venc通路是否正常,-a可指定isp效果文件需要开启CONFIG_VIDEO_ROCKCHIP_AVSP和CONFIG_VIDEO_ROCKCHIP_FEC,dts中使能。 阅读详情

相关推荐

ad新版本学习笔记(基本包含一套流程)Altium Designer(ad20/ad21/ad22/ad23)

ad20-ad23学习笔记,逐渐补全

安和的博客 4万+

Spring核心组件

spring是目前最流行的框架之一,今天主要和大家共同研究一下spring的核心组件。spring总共有十几个组件,其真正核心组件为:core、context和bean。  这三个组件中bean尤为重要,因为spring是面向bean的编程。就像Java是面向对象的编程一样,bean对于spring来说就好比Java中的对象一样重要。在spring中如果没有bean也就没有spring存在的意义了

邵鸿鑫 1万+

LabVIew串口收发的一些问题

LabView串口收发实验总结

weixin_45508826的博客 2065

关于Spring杂记

一、Spring 是什么? 是一个开源框架,为简化企业应用而生的,Spring 是一个IOC 和AOP容器框架。 二、相关概念 1、轻量级:Spring 是非侵入式的,基于Spring开发的应用中的对象,可以不依赖于Spring的API。 2、依赖注入和控制反转(DI和IOC) IO...

chuangju3476的博客 191

AISHELL-2 中文语音数据库

AISHELL-1 is by far the largest open-source speech corpus available for Mandarin speech recognition research. It was released with a baseline system containing solid training and testing pipelines for Mandarin ASR. In AISHELL-2, 1000 hours of cle

AI_SHELL的博客 7886

GD32的低功耗模式:睡眠、深度睡眠与待机模式

GD32F4xx提供三种主要低功耗模式,功耗逐级降低:睡眠模式 (Sleep Mode)关闭CPU时钟,保持外设运行任意中断/事件唤醒深度睡眠模式 (DeepSleep Mode)关闭CPU和大部分外设时钟需特定唤醒源(外部中断、RTC等)待机模式 (Standby Mode)最低功耗,仅备份域维持供电仅支持复位、RTC、WKUP引脚唤醒。

波风水门的博客 2276

spring 杂记

spring3使用记录,方便以后回忆整理 1.spring3 注解 参考:http://www.ibm.com/developerworks/cn/opensource/os-cn-spring-iocannt/ Spring 本身提供了一个丰富的并且是与具体的数据访问技术无关的数据访问异常结构,用于封装不同的持久层框架抛出的异常,使得异常独立于底层的框架。 <co...

Xiaomi8261的博客 217

ros2 humble中使用realsense t265与d435

前提,安装realsense SDK 2.51.1版本并且能成功启动realsense-viewer V2.51.1想要在ros2中使用realsense t265,必须配合realsense SDK v2.51.1使用realsense-ros 4.51.1版本,因为新版本realsense ros2不再对t265支持下面记录源码编译安装 realsense-ros 4.51.1版本。

m0_72797388的博客 951

spring杂记

org.springframework.boot.web.embedded.tomcat.TomcatReactiveWebServerFactory#getWebServer 方法中调用的,再看getWebServer()方法哪里调用的。org.springframework.boot.web.embedded.tomcat.TomcatReactiveWebServerFactory#customizeConnector()方法中调用的。重要类 ServerProperties。

Lonely_Devil的博客 853

实测338MB/s!FPGA与CYUSB3014的Slave FIFO模式实战避坑(附完整固件与源码)

本文详细介绍了FPGA与CYUSB3014在Slave FIFO模式下实现338MB/s高速数据传输的实战经验。通过优化硬件设计、固件配置和GPIF II接口设置,解决了USB3.0双向通信中的关键性能瓶颈,并提供了完整的固件与源码参考。

weixin_30570101的博客 457

MATLAB - 浮动基座机器人的逆运动学

本例演示如何解决以浮动底座为模型的机器人的逆运动学问题。浮动底座机器人可以在空间中自由平移和旋转,具有六个自由度。浮动基座机器人的逆运动学问题适用于空间应用,即使用安装在浮动和致动基座上的机械臂在空间操纵物体,也适用于躯干和腿部可在空间自由移动的行走机器人。请注意,刚体树对象表示具有固定基体的刚体树。这意味着刚体树的基体在世界中具有固定的位置和方向。您可以在基体上附加一个 “浮动 ”类型的刚体关节,为具有浮动基体的机器人建模,以用于动态模拟等某些应用。

机器人控制与仿真应用 2438

【Spring】Spring,我的零散使用杂记

通过Java类设置配置信息,JavaConfig Spring常用的通过XML或者@Controller、@Servoce、@Repository、@Component等注解注册Bean,最近看Spring Session的源码,知道还有JavaConfig注册Bean的方式,就是通过@Configuration、@Bean注册Bean。 引用依赖包: <dependencies&...

dongjizheng9270的博客 106

基于哈夫曼编码的图像加密算法matlab仿真

哈夫曼编码是一种常用的无损数据压缩算法,其基本思想是根据字符出现的频率构造一棵哈夫曼树,将出现频率高的字符编码为短码,出现频率低的字符编码为长码,从而实现数据的压缩。在图像加密领域,哈夫曼编码也被广泛应用于图像加密算法中,基于哈夫曼编码的图像加密算法具有加密速度快、加密强度高等优点。基于哈夫曼编码的图像加密算法的基本思路是将待加密的图像分为多个小块,对每个小块进行哈夫曼编码,然后将哈夫曼编码后的结果进行异或运算,最后将异或运算后的结果重新编码,以实现图像加密。具体步骤如下:将待加密的图像分成多个小块。

平时工作较为繁忙,私信消息一般晚上回复,谢谢大家~~ 262

【spring】杂记

1.[spring aop]AOP核心概念 1、横切关注点对哪些方法进行拦截,拦截后怎么处理,这些关注点称之为横切关注点2、切面(aspect)类是对物体特征的抽象,切面就是对横切关注点的抽象3、连接点(joinpoint)被拦截到的点,因为Spring只支持方法类型的连接点,所以在Spring中连接点指的就是被拦截到的方法,实际上连接点还可以是字段或者构造器4、切入点(pointcut)对连接点进

qq523786283的博客 482

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Spring -- 杂记

空的

Syntactic Sugar 308

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【JavaEE之Spring】SpringBoot杂记

这是一篇关于SpringBoot的杂记,为什么说是杂记?因为这是我零零散散把自己觉得有用的东西记录了下来,主要是给自己写的,或许有人看起来会觉得很乱,你可以评论问我哦,好了,接下来进入正题 Spring Boot: SpringBoot的步骤: 0.创建Maven项目 1.加依赖–添加SpringBoot的父母约定依赖,不需要Spring的物料清单 添加自己所需要的SpringBoot约定的的...

eternal_01的博客 716

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Spring 杂记

1、获取官网的jar包,源码和文档 直接在地址栏输入:http://repo.springsource.org/libs-release-local/   2、Spring 和 SpringMvc 配置文件加载顺序 由于在 web.xml 中 listener加载顺序优先于servlet ,故加载顺序Spring&gt;SpringMvc,如果你的SpringMvc配置文件在WEB-I...

new03的专栏 143

Spring boot 传统的web 杂记

有模板引擎依赖会自动配置对应的视图解析器。无模板引擎依赖:不会自动配置视图解析器,项目通常作为 API 服务。(主流)手动配置:通过类和@Bean方法自定义视图解析器。应该优先使用 Thymeleaf 或 FreeMarker,它们与 Spring Boot 集成更简单,无需额外配置。全新项目 还是restful吧。传统项目用的比较多一点,主流还是建议各位用前端框架。Thymeleaf是一款Java 开源的模板引擎,用于在服务端动态渲染 HTML/XML 页面。它的设计目标是让模板在浏览器中直接预览。

wh_xia_jun的专栏 1192

Spring Boot 杂记

Spring Boot 推荐的基础POM文件 名称 说明 spring-boot-starter 核心 POM,包含自动配置支持、日志库和对 YAML 配置文件的支持。 spring-boot-starter-amqp 通过 spring-rabbit 支持 AMQP。 spring-boot-starter-aop 包含 spring-aop 和 AspectJ 来支持面...

ohyes 160

[Java]struts,spring,svn杂记

------struts2整合spring----------------------------------------------------- struts2过滤器负责在Tomcat启动时运行,加载和创建静态注入项(也可以在配置文件中加载我们写的类的 ),管理struts2容器。负责加载Action,接收特点结尾的请求,为每个请求创建对应Action对象,执行其 相应方法...

ghbfgb的博客 1551

spring-杂记

@RestController注解相当于@ResponseBody + @Controller合在一起的作用。 @Conponent 注解使得被注解的类在spring中被配置成一个bean

qq_38775188的博客 176

【Spring】关于Spring事务管理的一些杂记

【Spring】 Spring中的事务处理 1、Spring的事务管理 事务原本是数据库中的概念,在实际项目的开发中,进行事务的处理一般是在业务逻辑层,即Service层。这样做是为了能够使用事务的特性来管理关联操作的业务。在Spring中通常可以通过以下两种方式来实现对事务的管理: 1)编码式事务允许用户在代码中精确定义事务的边界 2)声明式事务(基于AOP)有助于用户将操作与事物规则进行解耦 2、事务的ACID特性 原子性(Atomic):一个事务是一个不可分割的工作单位,事务中包括的操作要

Etui۹(・༥・´)و的博客 292

Spring JUnit杂记

第一步:导入spring-test-..*.RELEASE.jar 第二步:使用junit提供的一个注解,把原有的main函数替换掉,换成spring提供的。@RunWith 要换的SpringJunit4ClassRunner 第三步:使用spring提供注解告知spring,配置文件或注解类所在的位置@ContextConfiguration 自动注入ICustomerService cs...

wujingchangye的博客 139
上一篇: caffe学习笔记--写一个运行caffe.cpp的makefile
下一篇: Spring杂记之--Spring配置文件
thystar
博客等级 码龄17年 407粉丝 151原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值