目前处于项目上手阶段,在学习项目过程中,有一些一知半解或者不明白含义的专业名词或者缩写,在此汇总。里面的内容很多都是基于个人理解,水平有限如果有出错的地方还请各位大佬批评指正。
2023年8月31日00:34:22,已经比较晚了,后续的内容之后再补充吧,一口吃不了个胖子。
关于DAO与PO的区别:
DAO层主要提供的是访问底层数据源的方法,这些方法可以被Service层调用;PO主要是纯对象本身,不涉及具体的增删改查操作。
为什么快?
:完全基于内存操作;
C语言实现,优化过的数据结构,基于集中基础的数据结构,redis做了大量的优化,性能极高;
使用单线程,无上下文切换成本;
基于非阻塞的IO多路复用机制。
MyBatis通过xml或注解的方式将要执行的各种statement(statement、preparedStatement)配置起来,通过Java对象和statement中的sql进行映射生成最终执行的sql语句,最后由MyBatis框架执行sql并将结果映射到Java对象并返回。
Spring是一款开源的轻量级Java开发框架。一般说的Spring框架,是由多模块组成的集合,包括,使用这些模块可以很方便的协助我们进行开发,比如说Spring支持IoC(Inversion of Control),和AOP(Aspect-Oriented Programming),可以很方便的对数据库访问(JDBC)、可以很方便地集成第三方组件。。。
Spring包含很多模块,其中最重要的就是Spring-Core模块。Spring的其他模块(比如SpringMVC)的功能实现都依赖于该模块。
核心思想是:避免重复造轮子,开箱即用,提高开发效率。(开盖即饮) 一门语言的流行,通常需要一个杀手级的应用,Spring就是Java生态的一个杀手级应用框架
Spring的核心模块,主要提供IoC依赖注入功能的支持。Spring其他所有的功能都需要依赖于该模块,
浅显的理解:IoC,控制反转,名字乍一看比较难理解,但其实核心就是Spring框架通过容器控制Bean对象,在项目代码中通过注解@Service
的形式控制,而不是程序员一个个的new来控制了。
更加好理解的版本就是:
IoC 解决的是对象管理和对象依赖的问题。本来Bean对象需要我们自己手动New,但是Spring的IoC特性使得对象都被交给Spring的IoC容器管理。可以把IoC当做是一个对象工厂,工厂管理这些对象的创建以及依赖关系。需要用到对象时,直接从工厂中拿取就行了。
控制反转和依赖注入。控制反转:将原本自己的控制权交给别人(Spring容器),是一种思想或者说是设计模式。依赖注入是控制反转的具体实现方式,对象无需自行创建或者管理它的依赖关系,依赖关系将被自动注入
到需要他们的对象当中去。
IoC的好处(为什么需要控制反转?):主要的好处是将对象集中统一管理,并且降低耦合。具体:IoC可以方便单元测试、对象创建复杂、对象依赖复杂、单例等等,什么都可以交给SpringIoC。理论上,自己手动new都可以解决以上问题,但是为了管理这一整套内容,需要自己写工厂来实现相应的需求,这个工厂写好你会发现,其实就是Spring。Spring的轮子
已经造就好了,直接使用就行了。并且,Spring的核心不仅仅是IoC,还有一整套的Bean声明周期管理。
IoC(Inversion of Control)是一种设计思想,而不是一个具体的技术实现。IoC的思想就是将原本在程序中的手动创建对象的控制权,交由Spring框架来管理。
IoC 容器就像是一个工厂一样,当我们需要创建一个对象的时候,只需要配置好配置文件/注解即可,完全不用考虑对象是如何被创建出来的。
解决的是非业务代码抽取的问题。
AOP的底层技术是动态代理,Spring内实现依赖的是BeanPostProcessor,
什么是Java Bean?:Bean是豆子的意思,含义是可重复利用的组件。JavaBean就是一个类,是用来包装数据,是一个中转载体。
Spring是为了简化J2EE的企业级应用程序开发而产生的,SpringBoot是为了简化Spring开发而诞生的(减少配置文件,开箱即用)。
SpringBoot只是简化了配置的步骤,如果要开发SpringMVC框架的web程序,就还是需要将SpringMVC作为MVC的架构。
@Resource
:用于依赖注入,在类中标识需要注入的资源或依赖项,并由容器自动进行注入。注入到了哪?为什么要注入?为应用部件(比如JavaBean)提供服务。@Service
:用于标识一个类作为服务层的组件(Service)。通过使用@Service
注解,可以将一个普通的Java类标记为服务层组件,并由Spring容器进行管理和注入。Service注解也看其来自于谁,来自于Spring(Dubbo)就由Spring(Dubbo)管理。@Component
:用于标识一个类作为普通的组件;@Repository
:用于标识一个类作为数据访问层的组件;@Controller
:用于标识一个类作为控制层的一个组间;@
:@
:@
: