关于springboot:mybatis,jdbc,spring DATA jpa相关
1.springboot
默认是采用了Spring DATA来进行数据处理
jdbc的springboot整合数据源暂时不了解,直接看后面的重点,整个mybatis、jpa的
2.druid
在properties文件里面,写的一些配置默认是跟java的配置类的属性有映射关系的
但是如果写一些关于最大容量阿等等一些在.properties文件里面显示的是黄色的文件,那么说明这些配置并不能跟配置类的属性对应,那么现在就要自己把这些属性给配置了(自己return一个配置类到容器中)
3.druid监控
配置一个管理后台的servlet
配置一个监控的filter
这里有点类似dubbo,这里是一个druid自己的监控后台
4. mybatis整合
关于使用注解版来进行mybatis的查询工作,之前没接触过,现在记录一下
在 mapper类上面加注解@Mapper表示这是跟之前一样的是一个mapper类
然后你下面的方法的类型,之前的是有比如<select>标签,现在直接用注解
@Select搞定,然后后面直接写句子,这样写的话太爽了
插入以后返回的json是不包含自增id的,这个时候mybatis也是有一个@Options设置可以返回自增id
如果是一个mapper的类,你可以加@Mapper,但是这样太麻烦了,直接可以在application上加一个
@MapperScan(把这个包的类路径全部扫进来)进行批量扫描
5.xml方式
xml方式有动态sql,但是普通的sql语句是可以写注解方式的
一般情况下还是不推荐sql混写,为了集中管理所以这里还是把sql全部写在sql里面吧
6.spring DATA JPA
其是封装的Hibernate,不关mybatis的事
这里还是跟hibernate一样,是ORM,object-relation-mapping,就是调用API
7.使用JPA注解
分为三个部分:
1)实体类
①@Entity告诉JPA这是一个实体类
②@Table(name="")告诉JPA跟哪个表是映射关系,如果省略,表名就是默认小写
③@Id、@GeneratedValue(Strategy = GenerationType.IDENTITY),可以设置主键,自增,以及策略
④@Cloumn,设置列名等
2)接口
在JPA里面,我们创建了实体类有以后,还要创建接口,然后写实现类,这个接口需要继承JpaRepository,这样就可以进行crud,以及排序和分页功能
①接口泛型param1,需要操作哪个实体类
②接口泛型param2,操作的实体类的主键泛型
③配置,在application配置里面可以设置jpa的一些策略,比如第一次启动的时候判断有没有表,没有的话就创建/更新表
3)实现,直接就是使用标注了@Repository的接口,这里spring会自动使用动态代理来实现
这里相比mybatis肯定是简单一些的
8.springboot-starter
starter:
1)、我们的场景需要的依赖
2)、如何编写自动配置,一般来说都是这样:
①@Configuration:指定这个类是一个配置类
②ConditionnalOnXXX:什么条件下生效
③AutoConfigureAfter:指定自动配置类的顺序
④Bean:给容器中添加组件
⑤ConfigurationProperties:结合相关的xxxProperties类来绑定这个配置到某个实体类上
⑥EnableConfigurationProperties:让properties的实体配置类生效,加入到容器中
9.自定义starter
我们自己写一个modules,然后在另一个modules里面就可以直接用mavne把这个modules依赖进来就可以了
我们自己写一个starter,然后把aotuconfigurer依赖进来,然后在把这个自定义的module(starter&configurer)使用maven加到maven仓库里面,这样使用别的springboot工程就可以直接使用这个自定义的启动器了
其实自定义starter的过程,就是一个springboot的一个设计精髓
10.小结
springboot核心到此结束,接下来进入进阶技术
关于springboot和各种分布式技术的整合,在github的springboot首页的samples里面都有
之后在使用dao层技术的时候,注意mybatis-plus,类似JPA的技术不用写sql肯定用起来要爽一些阿,除非是一些定制sql