SpringCloud2.0入门3-新的eureka依赖
前言SpringCloud2.0推出有一段时间了,是要学习1.5+还是从2.0开始?犹豫的原因是资料不全,目前现有的资料大部分是1.0的。但作为学习者,肯定要学习最新的。不如,先试试。 搭建Eureka注册中心关于Eureka的介绍,前文《SpringCloud入门1-服务注册与发现(Eureka)》已经学习过了。这次主要针对2.0重新刷新一下。 Maven or Gradle看官方文档,可以看出spring是特别希望大家都转gradle的,我也用了一段时间,最后发现国内这个真不流行。这次转为maven构建。 项目搭建新建一个springboot项目,添加eureka server的依赖。 项目地址: https://github.com/Ryan-Miao/spring-cloud-demo/tree/master/eureka-server 123456789101112131415161718192021222324252627282930313233<properties> <project.build.sourceEncoding>UT ...
SpringCloud2.0入门4-springboot-admin监控
前言上一节为springboot项目添加springboot-admin监控 学习了基于springboot1.5自己注册到admin的方法。接下来学习结合Eureka使用以及2.0的改变。 1.5spring-boot-admin集成eureka我们继续上一节的项目修改,admin-server依赖修改如下 123456789101112131415161718192021222324252627<dependencies> <dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-starter-server</artifactId> </dependency> <dependency> <groupId>de.codecentric</groupId> <art ...
Linux文件属性,权限和修改文件权限,所属者和所属组
Linux中文件的属性Linux的文件属性,简单的说,有这么几种 权限 所属者 所属组 下面是一个文件 1-rw-r--r--. 1 root root 51894267 May 15 12:58 kibana-5.6.5-linux-x86_64.tar.gz 对应关系为 123-rw-r--r--. 1 root root 51894267 May 15 12:58 kibana-5.6.5-linux-x86_64.tar.gz[ 1 ][ 2 ][ 3 ][ 4 ][ 5 ][ 6 ][ 7 ][ 权限 ][连结][拥有者][群组][文件容量][ 修改日期 ][ 文件名 ] Linux中的文件权限上述权限一栏可以3个一组,分为3组 1-, rw-, r--, r-- 注意到,第一个字符单独分组,这个表示文件类型。 当为[ d ]则是目录,例如上表档名为『.gconf』的那一行; 当为[ - ]则是文件,例如上表档名为『install.log』那 ...
添加PMD插件扫描潜在的bug
上一节使用checkstyle来规范你的项目主要解决了代码编码规范问题,比如缩进换行等。这次继续代码健康工具类PMD。 什么是PMDPMD真的不像checkstyle这样的东西所见即所得啊,去官网找了半天也没有找到解释。官网都直接说是PMD。 We’ve been trying to find the meaning of the letters PMD - because frankly, we don’t really know. We just think the letters sound good together. 简单来说,PMD是一个代号,是一个静态代码检测工具。它可以用来检查 潜在的bug:空的try/catch/finally/switch语句 未使用的代码:未使用的局部变量、参数、私有方法等 可选的代码:String/StringBuffer的滥用 复杂的表达式:不必须的if语句、可以使用while循环完成的for循环 重复的代码:拷贝/粘贴代码意味着拷贝/粘贴bugs 总之,这是一个辅助我们检测潜在bug的工具,大大减少了人工审查成本,提高编码效率。 ...
使用checkstyle来构建你的项目规范
Checkstyle是什么自从做了程序员,关于格式化的讨论就不曾中断过,到底什么才是正确的,什么才是错误的,到现在也没有完整的定论。但随着时间发展,渐渐衍生出一套规范出来。没有什么绝对的正确和错误,关键在于规范的定义。最出名的就是google style guide. Checkstyle就是以这种风格开发出的一个自动化插件,来辅助判断代码格式是否满足规范。 为什么要用,我们需要吗最初,我使用checkstyle是因为公司要求,在经历过一段痛苦的格式重构阶段后,渐渐习惯了这样的格式。到后来,我新建项目就会把这个加进去,最多改几条规则。前一段时间,由于赶项目进度,其他人不熟悉,只好先关掉了。到后面发现真的每个人的风格都不一样,都看着代码怪怪的。所以,又加回来了。对于多人合作的项目,还是建议采用这样的规范,内容不必拘泥于google-checks,找出适合你们团队的风格就好。 如何使用在gralde中使用在gralde中用法比较简单。示例项目: https://github.com/Ryan-Miao/springboot-security-demo/blob/master/confi ...
为springboot项目添加springboot-admin监控
我们知道spring-boot-actuator暴露了大量统计和监控信息的端点,spring-boot-admin就是为此提供的监控项目。 先来看看大概会提供什么样的功能 从图中可以看出,主要内容都是由spring boot actuator来提供的。更多关于actuator的信息参见Springboot actuator 接下来,hello world时间。 server端server端是一个单独的springboot项目,主要负责收集和展示监控指标,提供了ui page。 项目地址: https://github.com/Ryan-Miao/springboot-admin-demo 新建一个springboot项目,可以使用idea自带的spring initializr. 主要添加以下两个依赖 12345678910111213141516171819202122<dependencyManagement> <dependencies> <dependency> <groupId>de.codecent ...
OpenFeign封装为springboot starter
OpenFeign是什么随着业务的增多,我们的单体应用越来越复杂,单机已经难以满足性能的需求,这时候出现了分布式。分布式通讯除了RPC, REST HTTP请求是最简单的一种方式。OpenFeign是Netflix开源的参照Retrofit, JAXRS-2.0, and WebSocket的一个http client客户端,致力于减少http client客户端构建的复杂性。 官方用法github提供了一个简单的demo,很容易理解。 123456789101112131415161718192021interface GitHub { @RequestLine("GET /repos/{owner}/{repo}/contributors") List<Contributor> contributors(@Param("owner") String owner, @Param("repo") String repo);}static class ...
MongoDB分页的Java实现和分页需求的思考
前言传统关系数据库中都提供了基于row number的分页功能,切换MongoDB后,想要实现分页,则需要修改一下思路。 传统分页思路假设一页大小为10条。则 123456789101112//page 11-10//page 211-20//page 321-30...//page n10*(n-1) +1 - 10*n MongoDB提供了skip()和limit()方法。 skip: 跳过指定数量的数据. 可以用来跳过当前页之前的数据,即跳过pageSize*(n-1)。limit: 指定从MongoDB中读取的记录条数,可以当做页面大小pageSize。 所以,分页可以这样做: 1234567//Page 1db.users.find().limit (10)//Page 2db.users.find().skip(10).limit(10)//Page 3db.users.find().skip(20).limit(10)...... ...
CentOS安装postgresql
下载yum源地址: https://yum.postgresql.org/repopackages.php 安装yum源1yum install pgdg-centos10-10-2.noarch.rpm 查看可安装包1yum list postgres* 安装数据库1yum install postgresql10-server.x86_64 初始化首先找到安装好的服务,并不是postgres,查看 1234[root@d2-test-2 init.d]# ls /etc/init.d/ | grep postpostfixpostgresql-10udev-post 初始化db1service postgresql-10 initdb 启动1service postgresql-10 start 查看状态1service postgresql status 重启1service postgresql restart 连接默认root并不能连接,需要切换为用户postgres 12345$ sudo su - postgr ...
LocalDate序列化为JSON,Springboot中使用
前言Java8的date API一经推出便广受好评,今日也准备用一用,然后就用出问题了。基本用法见https://www.cnblogs.com/woshimrf/p/java8-date-api.html 问题LocalDate可以很友好的toString为YYYY-MM-dd的格式,很适合我当前的业务,但当我把它丢到json的时候,瞬间解体了: 1234567891011121314{ "year": 2018, "month": "AUGUST", "era": "CE", "dayOfMonth": 1, "dayOfWeek": "TUESDAY", "dayOfYear": 213, "leapYear": false, "monthValue": 8, "chronology": { & ...