个人简介

Echo Blog


江湖无名 安心练剑
  • 软件工程-02-Monitor 监控
    软件工程 软件如果想持续的发展下去,需要良好的理论化知道。 代码编写好了,是不是感觉测试完成之后,上线依然是困难重重? 上线完成后,如何做项目的监控报警? 这其中需要一系列的知识和指导。 拓展阅读 《人月神话》 软件工程 拓展阅读
    2019-03-31 02:18:47 | Software
  • 软件工程-01-上线
    监控 如果项目运行,我们却不知道项目的具体运行情况。这其实是一件非常可怕的事情。 监控方式 例如 Cat 等常见工具,或者自行研发(二次开发)。 核心:基于项目日志,进行相关的项目运行监控+报警。 报警方式 邮件 短信 钉钉 微信 电话 监控什么 一个项目有那么多东西需要监控,你可能会问,我要监控什么? 监控太多,等于没有监控。 监控太少,又缺乏有些信息。 参考...
    2019-03-31 02:18:47 | Software
  • 软件工程-00-概览
    软件工程 软件如果想持续的发展下去,需要良好的理论化知道。 代码编写好了,是不是感觉测试完成之后,上线依然是困难重重? 上线完成后,如何做项目的监控报警? 这其中需要一系列的知识和指导。 正常的项目流程 产品端 产品根据业务需要或者调研,提出需求。 提供完整详细的需求文档。 开发 开发主要经过下面的步骤 1、 需求分析+项目立项 如果不合理则进行调整或者驳回。(一般产...
    2019-03-31 02:18:47 | Software
  • Spring Config 与分布式配置中心
    spring property 利用 spring 的占位符属性,可以动态替换属性值。 动态替换 可以在 spring 运行的时候,动态推送生效。 甚至不用重启项目。 配置设置 key value AppName mode=offline/dev/test/pre/dev version remark 安全性 配置的加密+验签。 拓展阅读 spring-prop...
    2019-03-28 10:37:19 | Java
  • Spring 路由最佳实践
    Spring 最佳路由方式 不同的业务,需要走不同的实现。 除了 if/else,我们还有其他的方式吗? 接口的定义 验证接口 interface IValid() { void valid(ValidReq req); } 不同的实现 验证金额 @Service class ValidNum implements IValid() { @O...
    2019-03-28 01:47:51 | Java
  • Spring @PostConstruct @PreDestroy
    @PostConstruct & @PreDestroy PostConstruct 注释用于在依赖关系注入完成之后需要执行的方法上,以执行任何初始化。此方法必须在将类放入服务之前调用。 支持依赖关系注入的所有类都必须支此注释。 即使类没有请求注入任何资源,用 PostConstruct 注释的方法也必须被调用。 只有一个方法可以用此注释进行注释。应用 PostConstru...
    2019-03-28 01:47:51 | Java
  • Spring Bean lifecycle 生命周期
    业务背景 需要不同的环境,有不同的实现。不单单是配置的变化。 一个环境 使用新的 rocket mq 原来环境 使用旧的 active mq 限制 使用同一份代码 解决问题的思路 spring 懒加载 因为消息的监听是基于 Container 监听者模式实现的,希望通过指定为特定环境指定为是否惰性加载。 后来发现行不通。 因为一般的 property 配置框架,都是监...
    2019-03-28 01:47:51 | Java
  • Data Struct-TreeMap 排序的新姿势
    场景 自定的 filter 等常见实现,如果我们希望指定优先级顺序,一般会定义注解。 根据 order() 属性去指定相关的顺序。 问题 如果我们需要排序,怎么处理? 方法一、定义一个全新的对象 伪代码如下: 包含过滤器和顺序的对象 class FilterBo { private Filter filter; private int order; }...
    2019-03-28 01:47:51 | Java