Archive for the ‘ JAVA ’ Category

使用Java函数接口及lambda表达式隔离和模拟外部依赖更容易滴单测

作者:lovespcc

概述

单测是提升软件质量的有力手段。然而,由于编程语言上的支持不力,以及一些不好的编程习惯,导致编写单测很困难。

最容易理解最容易编写的单测,莫过于独立函数的单测。所谓独立函数,就是只依赖于传入的参数,不修改任何外部状态的函数。指定输入,就能确定地输出相应的结果。运行任意次,都是一样的。在函数式编程中,有一个特别的术语:“引用透明性”,也就是说,可以使用函数的返回值彻底地替代函数调用本身。独立函数常见于工具类及工具方法。

Read more

SpringBoot之spring-boot-load模块

一、前言

正常情况下classloader只能找到jar里面当前目录或者文件类里面的*.class文件。为了能够加载嵌套jar里面的资源之前都是把嵌套jar里面的class文件和应用的class文件打包为一个jar,这样就不存在嵌套jar了,但是这样做就不能很清晰的知道应用到底依赖了哪些东西,哪些是应用自己的,另外多个jar里面的class可能内容不一样但是文件名却一样。springboot中spring-boot-loader就是为优雅解决这个问题而诞生的。

Read more

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: SpringBoot之spring-boot-load模块

Springboot模块组成

1.1、 spring-boot模块

该模块提供了一些特性用来支持springboot中其他模块,这些特性包含如下。

  • SpringApplication类提供了静态方法以便于写一个独立了spring应用程序,该类的主要职责是create和refresh一个合适的Spring 应用程序上下文(ApplicationContext)
  • 给web应用提供了一个可选的web容器(目前有Tomcat或Jetty)
  • 一流的外部配置的支持(application.properties)
  • 提供了便捷的应用程序上下文(ApplicationContext)的初始化器,以便在ApplicationContext使用前对其进行用户定制。

Read more

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: Springboot模块组成

使用ThreadLocal不当可能会导致内存泄露

8.2 使用ThreadLocal不当可能会导致内存泄露

基础篇已经讲解了ThreadLocal的原理,本节着重来讲解下使用ThreadLocal会导致内存泄露的原因,并讲解使用ThreadLocal导致内存泄露的案例。 Read more

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: 使用ThreadLocal不当可能会导致内存泄露

《Istio官方文档》流量管理–综述

原文链接  译者:carvendy

综述

  本页提供在Istio中,如何管理流量,包括流量管理原则的好处。假设你已经读了什么是Istio?,并且熟悉与Istio相关的高可用架构。你可以本章节的其他指南中,找到个别的流量管理特性。

Read more

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: 《Istio官方文档》流量管理–综述

SpringBoot之logback-spring.xml不生效

一、前言

做新应用就是这样,会遇到各种问题,昨天刚解决了加载某一个类时候抛出了class is not visible from class loader的问题,今天就有遇到了日志文件找不到的问题,还是和二方库有关的,下面就一一道来。 Read more

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: SpringBoot之logback-spring.xml不生效

《Istio官方文档》Pilot

原文链接  译者:carvendy

Pilot(领航员)

  Pilot负责Envoy实例在Istio网格服务部署的生命周期。  Read more

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: 《Istio官方文档》Pilot

《Spring Cloud Config官方文档》之嵌入配置服务器

原文链接

8. 嵌入配置服务器

Config服务器作为一个独立的应用程序运行得最好,但是如果你需要,你可以将它嵌入到另一个应用程序中。只需使用 @EnableConfigServer注释。在这种情况下可选属性spring.cloud.config.server.bootstrap将会是可用的,它是一个标志,指示服务器应该从自己的远程存储库中进行配置。该标志默认是关闭的,因为它可以延迟启动,但是当嵌入到另一个应用程序中时,与其他应用程序一样初始化也是有意义的。

应该很明显,但请记住,如果使用引导标志,则在bootstrap.yml中配置服务器将需要配置其名称和存储库URI 。

Read more

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: 《Spring Cloud Config官方文档》之嵌入配置服务器

《Spring Cloud Config官方文档》之推送通知和Spring Cloud总线

9. 推送通知和Spring Cloud总线

许多源代码存储库提供者(例如Github,Gitlab或Bitbucket)会通过webhook通知你存储库中的变化。您可以通过提供商的用户界面将webhook配置为您感兴趣的URL和一组事件。例如, Github 将通过一个包含提交列表的JSON主体和一个等于“push”的头部“X-Github-Event”来POST webhook。如果您在spring-cloud-config-monitor库中添加了依赖项并在Config Server中激活了Spring Cloud Bus,则会启用“/ monitor”节点。

Read more

《Maven官方文档》Maven 开发

原文链接   译者:carvendy

Maven 开发

这文档描述怎么入门开发Maven。这是一个独立页来描述怎么构建Maven的。

找一些工作来做

首先你需要一些事情来做!解决方案可以在几个JIRA项目中找到。

  • JIRA解决方案 当你找到一个你需要的解决方案,工作想在解决方案中加入日志,所核心开发和其他人民在寻找以了解其他人已经在什么。

Read more

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: 《Maven官方文档》Maven 开发

伪共享

2.2.9 伪共享

2.2.9.1什么是伪共享

计算机系统中为了解决主内存与CPU运行速度的差距,在CPU与主内存之间添加了一级或者多级高速缓冲存储器(Cache),这个Cache一般是集成到CPU内部的,所以也叫 CPU Cache,如下图是两级cache结构:

Read more

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: 伪共享

《Spring Cloud Config官方文档》之Spring Cloud Config客户端

10.  Spring Cloud Config客户端

Spring Boot应用程序可以立即利用Spring Config服务器(或应用程序开发人员提供的其他外部属性资源),还可以获取与Environment更改事件有关的一些其他有用的功能。

Read more

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: 《Spring Cloud Config官方文档》之Spring Cloud Config客户端

线程池使用FutureTask时候需要注意的一点事

8.4 线程池使用FutureTask时候需要注意的一点事

线程池使用FutureTask的时候如果拒绝策略设置为了 DiscardPolicyDiscardOldestPolicy并且在被拒绝的任务的Future对象上调用无参get方法那么调用线程会一直被阻塞。 Read more

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: 线程池使用FutureTask时候需要注意的一点事

《Spring Cloud Config官方文档》快速启动

原文链接

第二部分 Spring Cloud 配置

1.3.5.BUILD-SNAPSHOT

Spring Cloud 配置为分布式系统中的外部配置提供服务器和客户端支持。借助Config Server,您可以在所有环境中管理应用程序的外部属性。客户端和服务器上的概念与Spring Environment 和  PropertySource 抽象是一样的,所以它们非常适合Spring应用程序,但可以与任何运行在任何语言的应用程序一起使用。当应用程序从开发到测试转移到部署管道时,您可以管理这些环境之间的配置,并确保应用程序具有在迁移时所需运行的所有内容。服务器存储后端的默认实现使用git,因此它可以轻松地支持标记版本的配置环境,并且可以通过广泛的工具来访问管理内容。使用Spring配置添加替代实现并插入它们是很容易的。

Read more

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: 《Spring Cloud Config官方文档》快速启动

线程不安全的SimpleDateFormat

8.5 SimpleDateFormat是线程不安全的

SimpleDateFormat是Java提供的一个格式化和解析日期的工具类,日常开发中应该经常会用到,但是由于它是线程不安全的,多线程公用一个SimpleDateFormat实例对日期进行解析或者格式化会导致程序出错,本节就讨论下它为何是线程不安全的,以及如何避免。

Read more

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: 线程不安全的SimpleDateFormat

return top