00:00
刚才可能没插的不够紧。哎,我们重新说啊,我们看一些个spring相关的注解,因为我们说了spring。呃,它是延续了我们spring基于注解开发的模式,Spring呢有两种模式,一种是基于X毛的,一种是基于注解的。啊,然后spring是为了舍弃这个S毛的配置文件,它基于它是在spring spring基于注解的开发的基础上啊延伸出来的。呃,Spring的注解,那我们看一下有这些啊,这个configuration注解。使用configuration标记一个类以后啊,这个类呢,就成为了一个配置类,加在这个类的配置可以取代以前的X毛的配种键。Configu这个注解啊,这个是你看以前的话。
01:00
咱们在用的时候,咱们其实已经。用过这个效果。Config里边,哎,这是我们这个配置类。哎,这个时候就是我们用configuration这个注解创建的这样一个配置类啊,就指的就是它啊,就是它。然后说基于注解类而不是SM配置文件创建LC容器对象的代码如下啊,就是这个,咱们用过这个not conig application context。然后呢,说我们这个并注解。并in注解相当于以前的我们这个bin标签啊,这个都都给大家去提过,还有一个import这个注解啊,呃,相对于这个bin注解,使用inport的注解可以更简捷的,更便捷的把一个类加到FC容器里面。我们就是import一下,就在这个configuration这个类里边哈,再用一下import这个类,然后呢,Employee handler加class,就把它的class传给这个注解,就能够把employee handler这个类的对象加在LC容器里边。
02:15
就连这个并注解带这个方法都不用写了,只不过这个就比较简洁,它就肯定是找这个无参的构造器创建对象放到容器里边,而这个呢,你可以进行一些个定制啊,创创建这个对象的过程,你可以去人为的写代码去干预啊。哎,所以说简洁有简洁的好处啊,这个定制有定制的好处。然后呢,这个conditional注解啊,一个类在满足特定条件时才加入容器,这个我们要看一下。哎,就是说呢,我们这是以前咱们还没有接触过的一个注解啊,叫conditional。哎,你看这个单词哈。Condition。
03:00
就是条件的意思。Conditional就是有条件的。啊,这个事儿不是无条件的,是有条件的啊。那么我们看一下啊,相关的跟这个东西有关系的这个类,或者说注解有哪些哈,特别多。Conditional on。Available endpoint on being on class on cloud platform on discovery enabled。UN enabled in the point enabled health indicator啊,等等啊,然后就是说呢。肯定渗透的意思就是说一个类哈,加上这个注解,那么这个类呢,要不要加入到LC容器啊,这个时候就是根据肯定渗透这个注解上面。指定的这个环境,或者说指定的条件进行一定的判断,满足这个条件才加到LC容器里边,不满足这个条件就不加了。啊,你比如说呢,有一个类叫做。我看看啊,可能是不的T哈,是不是有一个叫HTTP的。
04:04
Properties。呃,这个是configuration properties啊,这个有没有加conditional。呃,是是另外有一个类用到了它。这个就一时找不到哈,就是比如说呢,我们想要在外部环境下边做一些个操作,要不在外部环境下边就不做这个了啊,诶这个应该是一个什么什么。A character。什么什么?这个字符集的自动自动配置,但是好像不叫这个表哈。这个想不起来叫什么名了啊,就是就是说有的东西呢,假设它只是在我们外部环境下才用得到,那么我们就可以给它加一个肯定是到类似这样的一个注解,让他呢判断当前的环境是不是外部环境,是外部环境才加,不是外部环境就不加。
05:17
嗯。这个我们后边再看spring一些个源码的时候,我们就能够看到啊,诶它这个很多东西都是有条件的,不是说它不不可能说什么东西呢,它就都加到LC容器里边,都加进来很多东西没有用,加进来以后白白的浪费内存的空间,这个就没有必要了。有,有,确实这个环境有需要,我们才才会去加。下边这个注解叫component sky啊,就指定LC容器扫描的包,相当于在X毛当中呢,去配置context component sky啊,你看又是X毛的配置的方式。哎,是他。注解的配置的方式就是它啊,用注解去指定。
06:01
哎,然后这个呢,你看这个叫做component干,可以里边去指定一个包啊,要扫描这个包。然后呢,Use default filters,取消默认的那个默认规则。然后呢,Include filters啊,这是我们要增加的,增加的这个规则。就是因为只有这两个它得配合起来才有效啊,你不取消这个默认的规则的话,这个include它就只是追加啊,它只是追加。我们希望达到的是只扫描这个东西啊,这个filter type a notation表示是用这个注解的方式进行这个过滤啊,Click叫controller,这个controller,这个就是controller主体。啊,这个表示只加controller注解。下边这个呢,表示是排除这个service注解啊,这个X filter,哎,以前这个同样的代码有X毛的方式去写,现在呢,转成注解的,它也一样有办法啊。
07:04
下边这个这几个是我们spring的这个注解,就spring本身就有这些注解。Spring呢,在这前面这些spring注解的基础上呢,它又进行了一些个。相当于进行了一些个发展。首先这个spring boot肯人参。Spring configuration这个注解哈,哎,你看到它的源码的话,就是在它上面呢,去加一个configuration。啊,就在它下面加个configuration,所以说它其实就是configuration注解的spring版。哎,因为你在spring的环境下边呢,我们希望用一个名字带spring boot的这个注解,其实功能是都是一样的啊,功能都是一样的。哎,然后说spring put configuration这个注解,它就是我们在主启动类。这里边啊,点这个spring application这里边点进来我们看到的。
08:04
哎,就是啊,就是他。然后呢,下一个enable auto configuration启用自动化配置。呃,这个注解上面呢,你看有一个import注解啊,咱们前面说的就是把这个类的对象呢,加到LC容器里边啊,这还有一个auto configuration package自动配置的包啊,就是这个主机里边的这个东西。Spring在这里边呢,通过import注解啊,通过import里呢,指定的这个东西啊,将所有需要导入的组件以全利名的方式返回。这些组件呢,就会被添加到容器中,给容器中导入非常多的自动配置的类啊,这什么什么auto configuration,这样就给容器中导入了这个场景需要的所有的组件。并且呢,去配置好这些组件,诶这些组件呢,以前是需要在X毛里边,你手动的去配置才能加入到FC容器里边的。
09:03
现在有了它以后呢,它能够自动的帮我们给加进来。2.1.6。就这个类哈,它里边呢,它会去进行这个。呃,相关的进行一些一系列的这个加载。这个地方暂时他看不到,说这个去他是从哪去加载的哈。呃。Auto configuration group。咱们先往下看啊,然后这个还有一个auto configuration package这个注解,这叫指定自动化page的包,诶。就是说我们auto configuration package啊,里边它也是啊,它会导入一个auto configurationages叫register叫。
10:07
嗯,Register啊加class去导了这样一个,这是一个相当于是一个内部类啊,导了它的一个class。哎,就是通过通过这个东西将主启动类所在的包和它的子包中的所有的组件啊,加到LC容器里边,这是我们的。这个叫个什么名哈。呃,自动配置的包,这里边儿呢,有一个。啊,这么一个静态的一个内部类啊,就是由他去负责的去做的这样的这个注册。呃,这边是reg,这个传进来哈,后边package import,哎,就是你要导入的这个包都是在这个里边,Get package name。呃,最后这个spring application这个注解表示这是应用啊,包含前面这个前面介绍的这些啊,所以说呢,我们。
11:09
呃,加了spring application就等于加了前面这所有的这些auto configuration package。啊,加了enable auto configuration加了configuration啊。所以说这些注解呢,他们彼此之间呢,都有这样的相互的关联。
我来说两句