带着萌新看springboot源码10(springboot+JdbcTemplate+druid)
上一节把springboot和jdbcTemplate大概用法说了一下,以及大概看了一下源码,还说了加载sql文件时的原理。
这一节来看看自动注入JdbcTemplate的原理,顺便用一用Druid数据源(功能比较强大,可以想象成一个监督设备,可以监控很多东西)
话说,sql文件要放在类路径下,建表sql(schema-all.sql或者schema.sql),插入数据的sql(data-all.sql或者data.sql),那能不能自定义名字呢?
1.自定义sql文件名称
在yml文件里面,指定spring.datasource.schema和spring.datasource.data(我们配置的这个也会绑定到那个DataSourceProperties类上)
其实从上一节所说的那个监听器里面的getScripts方法可以清晰的看到
2.自动配置JdbcTemplate原理(估计又是哪个自动配置类...嘿嘿!)
其实springboot内部就自动为我们配置好了JdbcTemplate,我们只需要加个@Autowired注解就能自动注入
具体的原理我们来看看一个自动配置类JdbcTemplateAutoConfiguration
3.使用Druid数据源以及数据源自动装配原理
想要使用Druid数据源,必须先导入依赖
yml文件配置数据源(想要看看Druid独有的所有属性,可以点这个数据源进去看看)
这个时候注意,我们要监控web应用所有的行为,怎么监控呢?肯定是另外设置一个非常隐秘的url(对应一个servlet),并且我们访问web应用,有的东西没什么必要监控比如一些静态html(这对应一个filter)。
所以,配置类中除了要配置一下数据源和yml文件绑定,还要另外设置一个Servlet,以及Filter
随意找个配置类:
配置servlet初始化参数时,具体所有的可配置参数在StatViewServlaet的父类里面,不要忘记配置这个秘密的url。
过滤器配置
运行应用,输入网址localhost:8080/druid/
效果展示:
到这里,Druid数据源的切换以及配置监控的功能算是初步过了一遍。具体的要自己去好好试试。不过,主要的是为什么可以这么用啊?下面就来看看这其中的自动配置原理。
各位可以多在这里看看,每个功能的自动配置类和配置类都可以在这里找到,找到jdbc
假如上面这些数据源都不是你想要用的,你还可以自定义的数据源(比如Druid等优秀的数据源),我们重点就来看看这里
可以点开看看maybeGetDrivaerClassName()方法和bind()方法
ok,大概的看了看自定义数据源的源码,其实也就那样,不过也提醒了我们,假如我们要更换数据源。可以先来看看这个配置类里面有没有符合条件的,有的话直接导入依赖,然后sprin.datasource.type=xxx,以及修改一些默认参数;没有的话就自定义,其实还是导入依赖,然后配置一下独有的属性(如果配置独有属性就要在配置类中配个DataSource了)。
这次是最基本的springboot+JdbcTemplate+Druid,后面可能还会整合一些其他的持久层框架,emmmm.....有时间再慢慢写。。