spring+mybatis企业应用实战代码_实战!如何用Spring+Mybatis快速搭建1个微服务

概述

面向服务的架构(SOA)好处自然不必多说,把原来一个庞大的应用中不同的功能单元,拆分成一个一个的微服务,并通过Rpc调用(如 dubbo 或者RESTful)。 达到“高内聚,低耦合”的效果。

Spring Boot设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。用spring boot来快速搭建一个微服务是十分方便的(相比于传统的spring框架)

最近整理的Java架构学习视频和大厂项目底层知识点,需要的同学欢迎私信我【资料】发给你~一起学习进步!

Spring boot

Spring Boot的例子很多,这里简单用Spring+Mybatis来介绍。用一句话来介绍Spring Boot的好处是使用配置文件来简化编码,这里的编码不仅仅值代码,还包括各种xml文件。

第一步 pom依赖

  • 这里使用的spring boot的版本为.5.3.RELEASE
  • mybatis-spring-boot-starter 是Mybatis提供的,所以为什么名字不是叫spring-boot-mybatis-starter(题外话)
 org.springframework.boot            spring-boot-starter-web            1.5.3.RELEASEorg.mybatis.spring.boot            mybatis-spring-boot-starter            1.3.0com.alibaba            druid            1.0.28mysql            mysql-connector-java            5.1.41

第二步 配置文件

server:  port: 8181spring:  datasource:    url: jdbc:mysql://10.160.247.90:9306/realname    username: realname    password: realname    driverClassName: com.mysql.jdbc.Driver    type: com.alibaba.druid.pool.DruidDataSourcemybatis:  mapperLocations: classpath:mapper/*.xml  type-handlers-package: com.netease.urs.realname.dao  type-aliases-package: com.netease.urs.realname.entity  configuration:    map-underscore-to-camel-case: true

第三步 启动应用

是的,经过以上配置就可以启动一个Spring Boot的应用。(Mybatis有jar包可以直接生产Mapper类和xml文件,就不再赘述)

@SpringBootApplicationpublic class Boot {    public static void main(String[] args) {        new SpringApplicationBuilder().build().run(Boot.class, args);}

现在反过来看看第二步,其实Spring boot已经帮我们生产了DataSource,Mybatis也通过配置文件帮生成了SqlSessionFactory等类。其实反过来看以前的代码,是不是其实很多配置信息都是直接copy过来,稍微修改一下就可以用了。spring boot就是把关键的部分由我们自己通过配置文件来配置,根据这些关键配置信息就可以自动注入相关的Bean。

接入urs服务台配置刷新

第一步: pom依赖

 com.netease.urs         urs-mg-property-spring-boot         1.1.9-SNAPSHOT

第二步:在服务台管理配置信息

Urs服务台的功能很简单,就是根据不同的应用,管理一组key-value对。然后提供一个url,就把同一个应用下的key-value用json格式返回。

b2e698f2a3370af4b9f4147cddd58c5e.png


可以看出,我们的配置类型有传统的JSON,PROPERTIES,YAMLl 还有自定义的类型,如 LIST

第三步:使用注解注入

例如我们有一个ip白名单,key的名字为ip_config(如上图)

@Componentpublic class IpFilter implements Filter {    @RefreshValue(propertyName = "ip_config")    private List ipConfigs;    ...

ps:注解注入只是更新配置信息的一种方式,如果有更定制化需求,还可以通过实现一个接口,通过编写代码来更新。

第四步: 配置文件

urs:  property:    refresh-token: abcdefg    refresh-url: http://xxx.xxx.xxx.xxx/api/getConfigs.json?path=urs-mg/spring-boot-quick-start    listener-port: 8182    listener-path: /refresh
  • refresh-url :服务台提供的接口
  • refresh-token:调用服务台接口时需要token校验
  • listener-path, listener-port::监听刷新的url,端口。即当访问 本机的8182端口,并且url为/refresh的时候,就会从服务台拉取一次最新的配置信息,并且更新配置信息(例如我们在服务台上修改了ip_config的配置,刷新以后同时应用中的配置信息也会同步修改)

小节

这里也是秉承了Spring boot的历练,使用配置文件来来配置配置刷新功能(有点绕口),而不用编写具体代码。

快速启动dubbo服务

dubbo在国内是一个比较流行的Rpc框架。如何快速搭建一个dubbo服务呢

第一步:pom文件

名字有点唬人,其实是我自己写的。。

com.netease.urs    srping-boot-dubbo-starter    1.0.2-SNAPSHOT

第二步:配置文件

一个简单的dubbo 服务者的配置如下:

dubbo:  application:    name: provider  registry:    address: zookeeper://10.165.124.13:2182

当然其实还有很多进阶的配置,也是支持的。

第三步: 注解

使用Dubbo的com.alibaba.dubbo.config.annotation.Service 注解来注册服务提供者。已经完成了dubbo的服务的注册,剩下的就只用关心业务代码了

可选步骤: Filter

Filter是dubbo中比较常见的扩展,如果要实现一个dubbo filter还是比较麻烦的,但是有在这里使用我们的jar以后就很简单了,直接继承一个类就可以了

@Componentpublic class ProviderFilter extends AbstractDubboProviderFilterSupport {    public Result invoke(Invoker> invoker, Invocation invocation) {        System.out.println("ProviderFilter");        return invoker.invoke(invocation);    }}

总结

可以看出,就算是同时使用了上面3种情况,其实也是不需要编写一行代码,只需要简单的配置即可。

来源:网易工程师-李周

有任何问题欢迎留言交流~


整理总结不易,如果觉得这篇文章有意思的话,欢迎转发、收藏,给我一些鼓励~

有想看的内容或者建议,敬请留言!

最近利用空余时间整理了一些精选Java架构学习视频和大厂项目底层知识点,需要的同学欢迎私信我发给你~一起学习进步!有任何问题也欢迎交流~

Java日记本,每日存档超实用的技术干货学习笔记,每天陪你前进一点点~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
课程简介这是一门使用Java语言,SpringBoot框架,从0开发一个RESTful API应用,接近企业级的项目(我的云音乐),课程包含了基础内容,高级内容,项目封装,项目重构等知识,99%代码为手写;因为这是项目课程;所以不会深入到源码讲解某个知识点,以及原理,但会粗略的讲解下基础原理;主要是讲解如何使用系统功能,流行的第三方框架,第三方服务,完成接近企业级项目,目的是让大家,学到真正的企业级项目开发技术。适用人群刚刚毕业的学生想提高职场竞争力想学从零开发SpringBoot项目想提升SpringBoot项目开发技术想学习SpringBoot项目架构技术想学习企业级项目开发技术就是想学习SpringBoot开发能学到什么从0开发一个类似企业级项目学会能做出市面上90%通用API快速增加1到2年实际开发经验刚毕业学完后能找到满意的工作已经工作学完后最高涨薪30%课程信息全课程目前是82章,155小时,每节视频都经过精心剪辑。在线学习分辨率最高1080P课程知识点1~11章:学习方法,项目架构,编码规范,Postman使用方法,Git和Github版本控制12~16章:搭建开发环境,快速入门SpringBoot框架17~20章:快速入门MySQL数据库21~30章:MyBatis,登录注册,找回密码,发送短信,发送邮件,企业级接口配置31~41章:实现歌单,歌单标签,音乐,列表分页,视频,评论,好友功能42~48章:阿里云OSS,话题,MyBatis-plus,应用监控49~53章:Redis使用,集成Redis,SpringCache,HTTP缓存54~58章:Elasticsearch使用,集成Elasticsearch,使用ES搜索59~61章:商城,集成支付宝SDK,支付宝支付62~64章:常用哈希和加密算法,接口加密和签名65~67章:实时挤掉用户,企业级项目测试环境,企业级接口文档68~69章:SpringBoot全站HTTPS,自签证书,申请免费证书70~73章:云MySQL数据库,云Redis数据库使用,轻量级应用部署环境,域名解析74~80章:Docker使用,生产级Kubernetes集群,域名解析,集群全站HTTPS81~82章:增强和重构项目,课程总结,后续学习计划

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值