00:00
好,接下来呢,我们来看一下direct官方呢,有没有什么start能简化我们之前的那一堆操作,来到还是这个direct项目,我们明显能看到呢,这有一个direct spring boot start点进来,那相当于我们只要引入它就行了,而这呢也有中文文档,我们该怎么使用,那就直接把这个依赖复制过来,所以现在呢,有了这个start,其实我们这一堆的配置我都可以不要,那我直接把这个CON1注掉,那这一块的东西呢就没用了,因为只有它是配置类的an being里边的这些东西才能生效啊,或者大家觉得不保险了,那就你就直接把这个an being这些都注掉,那这就是一个普通方法,你不掉呢,永远不会实现。好,那现在呢,我们这个配置类放在这,现在呢,已经被我们给过时了,我可以来标一个过时注点啊,De pre TED,好,那现在这个配置类呢,就没啥用了,那没啥用了,以后呢,接下来我们来看我们引入官方start的方式来到po文件里边,De的这个数据源不用了。
01:00
官方的start的地址我们已经复制过来,把这个CTRLC直接在这,我们官方start的方式呢,来测试一下,好们先第一个引入了starter,我们再来看官方有没有这个自动配置,我们来通过me里边的这个分析,我们来看一下官方的这个starter引了哪些东西啊,也spring BOO的官方start给我们也引了direct数据源,还引了S我们这个日志记录的ipi,包括呢,也引了spring boot的这个自动配置包,那么就自然而然的我们来到我们官方引的这个direct的自动配置里边,我们来打开来看啊,这是官方的start,在这个里边,在这个里边。这个里边这个里边好,我们看到呢,会有direct data source auto computer,那就是我们direct数据源的自动配置,那它的这个写法呢,来看一下啊,Direct数据源的自动配置呢,它是这么来写的,Conditional on class,如当我们系统里边有这个类,如我们向他导了direct包,那就行了,然后呢,再来接下来呢,它是在这个配置之后,我们数据源的自动配置之后,然后呢才配的,然后哎,这是自动配置之前啊,叫data source auto configuration之前,为什么它的配置要在它之前,大家想想啊,因为我们data source的auto configuration,这是boot官方原生的,它里边呢,配了黑carry瑞的数据源,它给容器中呢,放了一个黑开瑞数据源,如果是他在前,Boot官方的这个配置如果在前的话,来到direct的这个自动配置。
02:38
如果boot官方的这个自动配置在前,那容器中就已经有了黑开数据源了,那接下来呢,我们这个conditional啊,Miss being相当于就不生效了,容器中没有的时候才整,所以呢,相当于我们在他我们在官方之前,那就是以我们的优先,我先放一个数据源,相当于把官方的就给进行掉了,好,然后呢,包括我们这个里边所有的属性呢,都绑定于这其中呢,就有data source properties,也就说我们所有的配置还是跟spring data source来进行绑定,另外呢,还有一些配置来源于这叫spring data source,所以我们对direct数据源的扩展配置可以在这。
03:17
扩展配置项,那我们分析到了第一个扩展配置项是这个么?配置它下边的,然后呢,它的这个自动配置呢,我们来看,我们看到呢,它确实给容器中放了一个数据源,只不过这个数据源呢,它是扭了一个data source的瓦per,相当于扭扭了一个这个包装器,然后呢,我们来看一下啊,除了放这些外,它还iport导入了非常多的东西,其中第一比如我们来看它导的这些东西都是哪些。都是哪些,我们把这些呢挨个分析清楚,哎,我们呢也就非常清楚了,他给我们导了哪些,导了这些,其中第一个叫data,呃,Direct spring AOP的这个class,这个东西是什么呢?我们来点进来,这个是我们上一次刚没配的,相当于呢,我们想要按B给容器中我们要放一些,呃,这个组件,我们要监控spring组件的,呃,监控页面的这一块的功能。
04:15
我嫌麻烦呢,我们最后没配这个spring监控的,所以呢,他利用A把我们spring监控的相关东西我们配到这儿了,然后呢,跟所有的属性是这么来绑定的,监控spring组件的,它是来监控spring组件,Spring必应的,然后呢配置项是这些。相当于我们修改这些配置项就行了,然后呢,第二个叫它还导入了direct的这个叫state of you so,这个玩意是啥?来看到我们以前的这个配配置,State of view so late,就是这个state of view so late,先开启direct监控页的功能来点进来,它呢,其实跟我们的写法一样,都是at b应对容器中呢,注册了一个这个,只不过呢,他把所有的这个属性都加上了,它呢判断你只要传到这个属性,它就能添加了一个这个,呃,相当于in p,而我们这一块呢,之前写的简单一点。
05:14
我们自己的呢,写的简单一点,我就at in it,我也没判断,直接就给里边添了几个写字属性,所以呢,我们会看到它这一块呢,咦,这一块我们把这个功能打开,叫sta view select,它这个enable想在你要不要开启这个功能,默认呢是触想我们这个监控页的功能默认是开启的,它整开,所以呢,跟我们这个监控页,监控页的配置,监控页的配置都是跟这些有关的,叫direct state of you so在这里边。然后呢,我们再来看它呢,还导入了一个叫web sta filter,那这个filter呢,大家看enable也是处,那默认也是开启的,而它里边呢,像我们一样也配好了写死的这些东西,所以呢,相当于它在这一块里呢,还配了我们的这个filter。
06:07
这个filter呢,就是我们以前在这配的这个玩意儿,就是我们的web sta,那它这个呢,也配好了它的这个绑定的属性呢,在这。然后呢,我们这个web监,Web的这个监控配置,Web监控的这个配置呢,它绑定的配置项,把这个拿过来,而且呢,它也是默认开启的,大家注意啊,默认开启这个呢,也是默认开启,然后呢,包括direct filter的configuration。来看一下啊,数据源里边呢,还有一个direct filter的conguration and being给容器中呢,会放非常多的组件,这些组件呢,大家来看啊,就在这这块呢,就是我们就是这个direct里边默认的这些filter有多少,我们以前写过这个叫stick和呃,我们的防火墙,我们是在这一块来传的。
07:07
就是呢,我们相当于要开启它的啥功能,开启它的state和防火墙功能啊,这些功能呢,容器中也得有这些组件的支持,所以人家这一块呢。底层也都配好了,所以相当于底层有这么多的组件,所有咱们这个direct自己filter的配置,他们呢,都绑定的是这些配置项。我们也给大家拿过来了,都是这些叫比如filter state filter con啊,如果你外部监控你的相关信息配置,防火墙相关的配置都在这儿啊,所以呢,相当于人家官方给我们已经把所有的自动配置都有了,所以对于我们来说,只需要把。所有的东西配到配置文件里边就行了,来,我来配置文件里边,那写一个稍微完整的,好,Direct的这个数据源有了,那接下来我想要开启这些功能,我们现在来到direct的自动配置里边,那么照着一个一个往进配,那首先呢,数据源已经配好了,数据源的相关属性也已经跟在这儿进行了绑定,那我们已经没有任何问题了,我们可以来看一下啊,数据源的这些基本属性我们放在这儿,然后呢,他额外的导入了的一些配置,比如AOP的,我们先不看a op叫state view so就是这一块,那我们就来配它有关的数据源。下边首先呢叫direct direct呢就是跟我们direct数据源有关的所有配置,第一个叫state view,它里边的属性呢,首先第一个叫enable enable呢,我们来给它给一个触默认呢,应该是开启了,然后呢,再来接下来,但是呢,我们来点进来,它的这个默认呢,它没写值这个布尔呢没。
08:54
介值,所以说大家注意它这一块呢,Default是first,所以我们一定得在配置文件里边,诶想要什么功能挨个开启,然后呢,第一个叫state view so select,我们相当于我写的这一段,相当于呢,就是做了这件事,我呢给容器中开启了state view功能,然后我还想配它的登录账号密码,怎么办呢?因为跟state view有关的配置都在它的这个配置项下边,所以呢。
09:22
我们因为我们之前是这么来分析的,点进来跟它有关的都在这个配置项下边,这个配置项下边呢,所有的这些属性,属性呢大家看啊,都是来源于direct state properties里边state view solve light里边的,点进来也就是来源于spring thatsaurce direct下边的state view so下边的enable your pattern等等一大堆,所以呢,我们就在这来做一个配置,我现在就来配一个log username登录的用户名,比如我们就叫ain,然后呢,密码叫Logan password,那就来123456,所以呢,你接下来得用我这个登录,或者呢,我直接写一个min,这是我们这个state view so,我们监控页的这个配置,然后呢,包括其他的配置,监控页还有哪些配置你都可以放在这,我呢就随便再来写上几个吧,监控件的配置,还有我们这个allow允许哪个呃来访问,包括URL pattern,包括我们这个,呃。
10:22
At enable,那是不是有重置按钮,这个重置按钮呢,我们来给一个false重置按钮是什么东西呢?给大家看一下,就是我们在这这有一个重置,所以我们可以把这个重置呢给它进用掉,那接下来我们这个state you select我们就配完了,接下来我们继续来配,参照它step you select配完了将来就是web state filter,就是这它呢就是跟web state filter有关的,那么就来写上配置,叫web state filter。首先这个功能呢,我们来给它开启,大家看啊,这个配置项enable是first来给它开启true,这相当来监控我们web应用的,然后呢,能监控哪些属性,点进来就有这么多,比如我们最常要配的一个就excluss,我们要排除哪些和我们要UR patterns,我们要匹配哪些you patterns杠型,然后呢,包括我们要排除哪些exuss,我把我们这一堆的配置写过来。
11:22
哎,排出的这个呢。看一下啊,排除的这一些,就算我们没写配置,大家看人家都有默认值,它或许为空啊,不为空就用你的,为空了就用人家这一堆默认的,哎,但是我们就还是把人家再抄一遍好放在这disclosureions,这就是我们的web filter,而而且呢,因为这个是一个字符串,所以我呢就加一个逗号,把整个完整的字符串加在这儿,好,那接下来呢,我们这个也配好了,这是我们外B监控的功能,那还有什么,我们在这还有一个叫啊filter configuration,相当于我们要开启哪些filter,那这块在哪啊,这块主要是在这一块,我们来看一下,在我们的这个direct data source auto configuration里边,我们来创建这个direct数据源的时候,这个数据源里边URL password有了,其中呢,有一个叫呃,And filter,我们要添加一些这个这个filter的这个东西呢,我们必须写在这这个数据源里边有一个叫filter。
12:25
如我们这个filter里边有哪些filter,我们应该写上,这就相当于对应我们这一块的内容。我们自己的来看啊,我们相当于要给它开启监控防火墙功能,所以呢,我们就在这儿配上监控防火墙功能,我就是这么来写的,其实所有的这些配置,除了我们在这儿分析外人spring boot官方肯定有我们这个配置示例,看配置属性,连接池的属性,跟监控配置web filter有关的,哎,我们配了一堆了,Sta,呃,View select我们也配了一堆了,甚至于呢,我们可以配置监控啊,咱们这个spring来配up配一下啊,A part a part呢,我们来写一个com.at硅谷,呃,我们来写一个,这样我写一个com.at硅谷,相当于是我们这个包下的所有东西呢,我们都来监控我的命下边的所有,好,这个包下的所有东西呢,我们都来进行监控,监控spring这个包下的所有组件,然后呢,我们再来看官方的这个配置事例里边,其中呢,就会有我们写的这几个。
13:33
主要来看这个啊。我们要开启我们的几个filter功能,就是在这direct filters,我们要开启哪些在这来写的好direct filters filters好,我们是这个filters啊,千万别写错,那filter呢是配置那这个单个的啊filters现在我们来开启了这个功能,而且呢,你的这个功能是我们外B监控的,然后呢,这个呢是防火墙的,你要对这两个功能的详细配置,你又可以这么来写,其中呢,它的这个filter里边state大家看啊,这个filter是配置单个filter,我们这个filters功能将开启几个功能组件,我们开启这个部监控的,还有防火墙的,然后呢,我们来看啊,我们的这个web监控的,我们我们的这个监控的,SQ监控的,我们来看有哪些属性配置,其中呢,就有一个这个设置叫slow circle啊,Minutes相当于我们慢查询的这个时间,它是毫秒,比如我写一个1000,那我就相当于让。
14:37
我们的direct统计,只要所有超过1000毫秒的SQ查询都是慢查询,然后呢,包括它里边的其他所有配置,我们都可以来参照,那就是在这一块的都是这个非里边的配置,有我们这个慢查询,它默认是这么多,是不是要记录慢查询,我们来点一个叫log,我们拿日志要不要记录这些,哪些曼查逊的circle扣你可以配置上它是出,所以呢,你都可以把这个配完,然后呢,防火墙因为我们也要配,所以我来写一个忘防火墙里边的所有配置呢,有多少,比如防火墙里边我们首先功能呢要不要开启,包括呢,我们这个监控的功能要不要开启,诶,因为我们发现呢,这一块的开启都为处,我们也写上为处,明显的写上防火墙的功能要不要开启,包括呢,它防火墙有哪些啊,防火墙的这个策略啊,哇里边的我们来看一下啊,哇里边的防火墙里边,诶比如呢,防火墙我们来看啊,整个防火墙抛出的。
15:37
异常use allow,包括呢,我们来它的这些其他属性select allow相当于我们允许调用哪些啊,允许调用查询对吧?包括呢,我们这个table check,我们允许,呃,是不是进行table检查的circle,是不是允许调用update,如果我们把这一块呢设置为false,那相当于你所有的update更新操作都会被防火墙拦截,所以其他的所有东西都在这儿来进行配就行了,那么这个全部配好以后呢,我们就会发现其实我们以前所有的这个功能全部在配置文件里边就准备就绪了,把这一块呢拿过来来做一个测试启动一下,那么现在这个功能能不能生效。
16:23
我们也对以前的所有功能一一的在配置文件里边找到了它对应的这个配置项。啊,每一个功能这些都是什么意思,咱们之前都测试过了啊,包括大家也可以参照官方文档,然我们刚才配了防火墙,然后防火墙呢,我们也可以让它不允许删除,我们刚才呢,有一个不允许更新,我们也可以有一个drop不允许删除drop table不允许删表,你所有的发送的删表操作,那我一定一定给你拦截住来启动一下啊。
17:01
那现在来看一下完整的这个监控功能。常我们访问dere,现在呢要登录adin adin,我们新的账号密码是adin a的in啊,登录进来没问题,数据源这一块也监控到SQ监控,我们现在没发啥SQ,我来多发几个,刷刷刷刷刷好发上几个以后呢,我们来看SQ监控在这已经有了。然后时间在这都有,包括我们防火墙的这些统计,也有web应用uri监控,我们在这儿呢,都有session的这一块我们也有没问题,所以呢,我们现在看到包括我们spring的监控,我们已经能监控到spring底层的这些组件了,所有的东西呢都在这儿了,所以呢,我们这一块的整个完整功能,我们至此呢就全部开启了,这就是我们基于我们配置文件方式的这个开启,当然每一个详细的配置项大家再来参照就行了,比如我们这个防火墙这块到底能配哪些。官方文档都说的非常清楚,那么这个防火墙的这个配置,我们有一个防火墙的菲奥特,大家来找啊,有没有防火墙的这个菲奥特的完整说明。
18:05
它每一个配置项是什么意思,监控功能啊,这是外吧。日志记录JDBC产生内存泄露的,诶我们来看它这个防火墙有没有在哪写来看前面应该我记得,诶这有一个怎么防蛇口注入攻击,那这呢,其中就有一个防火墙,防火墙里边呢,有哪些属性,包括这个配置项都是什么意思,看这不就有吗?是不是允许执行update,是不是允许执行insert,大家就参照所有的这些东西把都进行一一配置就行了,那么这个配置呢,已经完整出来了,没有任何问题,这就是我们spring boot,我们底层整合direct,我们直接使用它的这个start就行,这一段完整的配置还是给大家复制过来。配置事例把这一块呢拿过来来备注上几个,其中这个就是监控,监控监控咱们这个spring be应的这个呢是底层,底层的我们开启的功能,这个state代表的是circle监控功能,而我们的这个望是防火墙功能,而到底有哪些功能,我其实给大家在这列了一个列表,比如我们这个sta监控circle口的,然后呢,有防火墙的,还有其他的这些东西,比如我们要做日志记录的,我们还可以给他添一个Excel附接,这样呢相当于把我们之前所有东西也使用S接在我们SQ关键的执行,比如防火墙有拦截啦,我么监控有东西啦,我们S接都会给你记录下来,所以呢,这就是我们的这些配置。
19:45
我们继续来,但我们的那些filter有多少就在那,而且filter其实有多少,我记得在这儿,好像有一个详细的啊,在数据源的自动配置filter里边大家都能看到,其实就有这么多filter state concoding这个几个是日志的,哎,包括下边这个也是日志,这是跟防火墙有关的,跟我们这个相当于配置加密有关的,跟我们的这个啊,SQ监控有关的,跟我们编解码有关的,就是就是这些,那我们这块呢,配完了我们来看一下啊,这一块配完我们再来注释一下,带我you solid,这是来配置配置我们这个监控页功能的,配置监控登录页监控页功能啊,而监控页我是不是重置,呃,禁用了这个重置按钮,那么这个重置按钮只要我禁用,禁用掉以后呢,点这个应该是没有任何作用的,来给大家看一下啊。
20:38
为啥没有用任何作用呢?看我只要一点重置这块呢,没有归零,它的统计信息没有归零,那就重置是没有作用的,然后呢,接下来这还有一个这是web step,这是监控web,监控web呢,其实对应的就是这。Web应用,包括uri监控就是这一块的东西。然后呢,接接下来我们的这个filter,这是对详细的每一个的设置,对于我们前边传的这个filter,我们开启了这几个功能,然后呢,接下来就是对这几个功能state well的详细配置,对上面filters里边的state的详细,大家都可以来参照官方文档就行,好,这就是我们来通过start来整合我们数据源。
我来说两句