配置中心和服务注册中心
我们先把配置中心和服务注册中心跑起来,这个先照着之前的教程做,很简单没什么变动。
就是git仓库需要密码的话加入下面的配置就好。
|
|
这里的${config.host:192.168.99.100}
表示没有读到config.host就用192.168.99.100这个值。
|
|
这个用法就很灵活了,后面配合Dockerfile可以根据不同的环境来启动不同的配置。
微服务应用
Mybatis
http://www.cnblogs.com/skyblog/p/5129603.html
这篇文章讲了如何配置一个使用myabtis的项目,我们照着他的做就可以了。
Mongodb
我这里说一下配置mongodb遇到的问题。
首先在pom.xml中加入mongodb的依赖。因为我是用的mongodb3,spring-boot-starter-data-mongodb依赖的驱动是2.0版本的,需要修改一下,加入3.0驱动的依赖。
|
|
@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class, MongoAutoConfiguration.class, MongoDataAutoConfiguration.class})
这里跟上面的文章是一样的,就是MongoCredential.createScramSha1Credential
这一句不一样而已。而且MongoCredential.createScramSha1Credential
这个方法是在3.0的驱动里面才有的。
然后是MongoConfiguration.java
|
|
这里就引用我们刚才自建的MongoProperties,这样spring在链接mngodb的时候就不会认证出错了。不过我还遇到了了另外一个问题,MongoDataAutoConfiguration引用的MongoProperties也得换成我们自己的,而且升级成3.0的驱动以后,MongoDataAutoConfiguration里面的代码还得修改一下才能正常运行。下面是我修改以后的:
|
|
我注释掉了一些代码,然后授权就正常了,估计3.0以后认证方式改了,这些API已经完全被弃用了,使用的话会直接抛异常。
|
|
点进去看看源码
|
|
下面就是针对不同DB不同MongoTemplate的配置了,以后使用的话只需要在相应的类里注入就可以了。
|
|
Mongodb配置信息
可以看到在MongoProperties
中有一个注解是@ConfigurationProperties(prefix = "spring.data.mongodb")
。spring-boot会默认读取这些配置,由于我们使用了配置中心。所以它也能从配置中心的配置文件中读取到,不需要配置在本地。(我把示例demo中的properties换成了yml的配置方式)
|
|
就这样加在之前配置文件中就好。如果在调试的过程中发现配置没有读取到,可以用下面的方式来查看配置中心是否配置正确并且已经开启服务。http://10.168.248.36:8888/user-dev.yml
http://10.168.248.36:8888/user-dev.properties
在配置中心的后面加上配置文件的名字可以直接在浏览器中查看。在调试配置中心的时候也可以采取这样的操作,这样你能看到你的git地址和授权错误信息等。
spring-data-mongo提供了一个MongoRepository
实现增删改查和复杂查询,在spring-boot中如何指定它使用哪个db呢?如果不配置他默认是使用的test。我测试了一下,加入下面的配置类就可以了。可以扫描一个包。
|
|
到这里服务应用项目的mybatis和mongodb都配置好了,可以进行业务代码开发了。没有一个xml配置文件的感觉是不是很爽?下一篇文章讲解如何通过jenkins进行持续集成开发。