00:00
好,我们上节课呢,说了一下这个aware接口,为咱们这个并中注册spring底层组件的用法以及原理,接下来呢,我们来说一个提供的强大功能叫profile,这个profile呢,它是来结合我们这个注解来完成的,我呢就来写一个新的这个配置类,我们在这儿说好,那么呢,我们说这个之前来说一下这个是用来做什么呢?这时呢,Spring为我们spring为我们提供的可以根据当前环境动态的激活和切换一系列并的功能。
01:00
切换一系列组件吧,也要说呢,这个功能在我们开发中啊,特别好用,比如我们开发的一个项目,我们可能有开发环境,测试环境,比如呢,我们还有我们这个项目在上线以后的生产环境,我们以咱们这个开发过程中用的数据源为例啊,数据源呢,也是我们啊一种组件,我希望在开发环境中,哎,我们这个数据源是联向A数据库的,那么在测试环境中,测试人员在用测试环境的时候呢,在不改动代码的情况下,它来联向B测试库,包括呢,我们最终项目上线,我们可能会联向C数据库,但是整个过程中呢,我们不希望它改动大量代码啊,而我们实现数据源切换,当然除过数据源外,在开发环境下有非常多的组件,比如我们有一个啊A组件这个呢,我们希望在开发环。
02:00
境中,我们这个组件在容器中有,我们能用,在测试环境中呢,我们不希望把这个组件暴露出来,让测试人员用在C环生产环境中呢,啊,我们希望这个A组件又能用等等等等,然后呢,我们需要具备根据当前环境动态激活和切换一系列组件的这个功能,这就是我们spring为我们强提供的咱们这个注解,我们可以结合这个注解能完成这个功能,好,我们呢,接下来就做一个测试,那么呢,我们就以数据源为例来说,这是一个配置类,那么呢,我们先来去,呃,咱们这个麦中,我们把数据源引用过来。好,我们以C3P0数据源为准,好,那么我们就用这个C3P0 C3P0092。啊,复制过来,我们在po文件中,我们来引入C3P0的坐标。
03:04
好,C3P0包括呢,我们这个数据源引进来,我们这个数据库驱动,我们也导进来MY。好,就这个connect键啊,我们用这个514版本。好,我们呢,把这个数据源跟咱们这个MYSQL驱动都导入进来,这个数据源呢,这有问题,说咱们这个炸包没找到啊,那我们来重新引一下咱们这个数据源。好,我们来看我们这个C3P0,我们来重新啊,用一下这个C3P0 C3P0。这个C3P0呢,我们刚才引的,我们刚才引的是这个是吧,这个不是中央仓库的,哎,我们用这个central中央仓库标识的,这样呢,我们就能搜得到好。
04:04
好,我们来看数据源呢,我们也引入进来,那么呢,我们在这儿就来注册几个数据源public source来注意我们导入Java X包下的source,好第一个数据源,那么呢,我们就先return,这数据源呢,我们用C3P0,那就你一个叫com data source,然后呢,我们把数据源的这些信息我们设置进去,比如数据源set user,连接数据源的用户名,以及连接数据源要用的set,咱们这个password密码123456,包括我们接数据要用的这L址。
05:05
3306,我们呢,就连下我的这个test库,我们来看一下啊,我的这一块,我们的这个MY在安装完默认呢,会有一个这个库,我就连上它就行了,好,那么呢,包括我们来设置数据源要用的咱们这个驱动JA class哎,我们就用com.my circle.jdbc点好用它,那么呢,这驱动我们来给它抛异常,这会有默认的异常,好把这个数据源做好以后呢,我们就放在这儿,这是enter特B,把它加在容器中,那容器中呢,就会有一个数据源,我来多加上几个数据源,S0一来我们不叫零一了,我们假设呢,这个数据源就是。
06:05
是数据源,这个呢,就是开发啊,Develop啊,DV啊,我们开发的数据源,好,咱们这个呢,就是生产啊,生产环境的数据源,那么这三个数据源呢,我为了这个,呃,能区分期间我们这个测试数据源,联想测试库,我们这个开发的这个数据源,我们来随便挑一个,我就以这个ssmc rud为我们联想这个库。那么呢,如果是生产环境的这个数据源,我们就不连它了,来连向好,我们就连向SCW051连向这个库,但是这些数据源的这些配置信息,哎,我们一般啊不习惯在这写死,我们都是写成配置文件啊,我们也可以在这创一个配置文件,哎,简单的给大家看一下我们如何在这能读取到配置文件的时proper好比如呢,我们这个数据源的user,我就把这个公共的部分我就抽取出来啊,以及数据源的password等于123456DB点咱们这个,嗯,Class等于com.my circle.d bc driver,好,就是这些啊,我就先配这三个吧,那么呢,我要想取出这三个的值,哎,我们以前其实也说过,我们在这用一下。
07:34
首先呢,我来加载外部的配置文件property source,哎,我来加载,加载什么呢?类路下class pass类路径下的啊,DB con这个杠代表从类路径的径开始来找DB con,如果有名,那就写com包名,这个一个点就是一个斜杠,那么呢,我们把这个配置文件引过来,那我们想要用怎么办呢?啊,两种办法,第一种呢,我们可以在这直接写一个,比如user,我们把用户名呢,从这取直接at value at value我们以前说过这个是吧,At value,我们用Dollar大括号,Dollar大括号取出配置文件中的值,我们就叫DB user,这是我们呢第一种用法,那以后大家伙的这个U字,哎,我就用它来替代,这些呢,你就用它来替代那。
08:34
那呢,密码呢,我用另外一种方式给大家获取啊,还可以这样啊,我呢直接给这写一个string p wdm这保存密码的,但这个密码呢,我给这一块我来写Y6,它呢也能加在参数位置,我们来写在这儿还是一样Dollar大号我来取出密码。哎,我们把spring中的这些黑科技我们都可以看一看是吧?好,那么呢,我们把这个密码我设在这,设置在这,那么其他的这些密码呢,我也可以用这种方式来获取到,都是一样的。
09:16
放这好,下面这个密码也一样,这个密码好,密码我们也动态获取了,那包括我们这个JA class,哎,这个东西啊,你可以先思啊,我们还还能怎么获取呢?哎,想象一下,我们之前有说过一个那个叫emeded value view value where,把这个value啊,值解析器帮我们注册过来,有一个叫string value啊,会帮我们把这个value注册进来,那么呢,我们也可以用它是不是能解析到值啊,这个我们以前也用过来,可以看啊,那么呢,我们就把这个this value6reserve等于它,那这个配置类在启动的时候呢,把这个值解析器拿来,那我们还可以用这个值解析器来解析我们这些表达式来。
10:16
那么这个叫value,直接点点我们string value我就来写到了打括号,反正都是从配置文件中取值到大括号写它,我们把以前我们学过的都来结合,结合好,最后一个呢,我们这个JA class我就用它来整,或者呢,我们把这个class class我直接,我们呢就把它直接声明成这个变量,Private string们来声明一个变量,这个变量呢,我们就是在value准备好以后,把这个变量的值给它解析出来,JA class就等于,哎,我把我刚才的这个方法拿来我们各种。
11:16
方式呢,我们都体验,体验好以后呢,JA class就来这么来设置好,那么剩下的也都一样。我们用这种方式来设置,这种方式来设置好,我们呢,现在在我们这儿注册了三个数据源,给这三个数据源呢,我们都起上一个名叫test source啊,那么这个测试数据源跟data source,跟我们这个开发数据源,跟咱们这个生产环境的数据源data source,我们呢可以在LC容器中来看一下这些数据源来CTRLCCTRV,我们把这个测试写出来,现在呢,默认当然会有三个了,哎,我们来把这些删掉。
12:14
好,测试呢,我们把后边改掉,我们让它加载,加载我们的my con啊,我们用这个跑,好我们呢,就来打印一下IOC容器中的这些get s get b,咱们用这个get being names for type,我们看一下我们LC容器中的数据源是哪些,那么现在默认当然有三个数据源了,好,我把这三个数据源的名字来打印一下,好,我们来测试。走,现在呢,有三个数据源,Test d以及。
我来说两句