系列目录 1.net core天马行空系列:原生DI+AOP实现spring boot注解式编程 2.net core天马行空系列: 泛型仓储和声明式事物实现最优雅的crud操作 哈哈哈哈,大家好,我就是高产似母猪的三合.日常开发中,我们常会遇到这样的场景,一个接口,有多个实现类,在某个业务中,我们希望指定某个实现类,如今网络上常见的解决方案,就是注入一个委托或者利用工厂模式,这些方式虽然能实现功能,但使用起来还是不够优雅,如何才称得上优雅呢?自然是在添加服务的时候给服务指定名称,注入的时候根据…
 SRE vs DevOps:是敌是友? - DockOne.io http://www.dockone.io/article/5935   RE vs DevOps:是敌是友? [编者的话]网站可靠性工程(SRE)和DevOps是两个具有相当多重叠的热门学科.在过去,一些人认为SRE是与DevOps相竞争的一组实践.但我们不认为他们有那么大差别.SRE是什么?它与DevOps有什么关系? 今年早些时候,我们(Liz Fong-Jones 和 Seth Vargo)发布了一组视频试图来回答这些问…
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.Validate; import org.apache.poi.ss.formula.functions.T; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.lang.reflect.*; import java.util.HashMap; import…
上面是一个标准的json的响应内容截图,第一个红圈”per_page”是一个json对象,我们可以根据”per_page”来找到对应值是3,而第二个红圈“data”是一个JSON数组,而不是对象,不能直接去拿到里面值,需要遍历数组. 下面,我们写一个JSON解析的工具方法类,如果是像第一个红圈的JSON对象,我们直接返回对应的值,如果是需要解析类似data数组里面的json对象的值,这里我们构造方法默认解析数组第一个元素的内容. 在src/main/java下新建一个包:com.qa.util,…
Class : ClassUtil package pri.lime.main; import java.io.File; import java.io.IOException; import java.net.URL; import java.util.ArrayList; import java.util.Enumeration; /** * 查找指定路径下面实现指定接口的全部类 * * @author Liang * * 2017年5月9日 */ public class ClassUti…
(一)Eclipse IDE的做法 它会解析所有的Java文件.Class文件. 技巧:在Eclipse中,选中Interface,按下F4,就可以查看到所有的实现类及子接口. 例如: (二)自己怎么做? (1)如果你自己也不知道这个接口有哪些实现类 采用java默认的ClassLoader是没有办法获得所有实现类的,因为ClassLoader是在程序运行期间才会加载类到static区域,即如果你的程序需要使用某一个class,jvm发现这个class还没有被ClassLoader加载,就会主动…
转自:http://www.cnblogs.com/yjmyzz/p/3448330.html java中的匿名类有一个倍儿神奇的用法,见下面代码示例: 1 package contract; 2 3 public interface ISay { 4 void sayHello(); 5 } 上面是一个简单的接口,下面是如何使用: 1 package jimmy; 2 import contract.ISay; 3 public class Program { 4 public static…
因为平时在调用service层时都是在controller中,有配置扫描注入,spring会根据配置自动注入所依赖的服务层. 但因我们写的工具类不属于controller层,所以当所写接口需要调用服务层是,常常会为NULL. 代码如下: //关于工具类调用服务层的方法 @Autowired //注入service层 private VTcTbdwdmService vTcTbdwdmService; //在spring初始化之前,初始化一个静态类 private static MulCondit…
1. 首先, Interface1 接口有两个实现类 Interface1Impl1 和 Interface1Impl2 Interface1 接口: package com.example.service; /** * Created by liuzh on 2018-05-29. * 接口1 */ public interface Interface1 { void fun1(); } 以下是接口的两个实现类,请注意@service注解的使用方式,这里给每个实现类标注了不同的名称,方便在@R…
你可能偶尔需要编写退化类,目的只是为了集中实例域: // Degenerate classes like this should not be public! class Point { public double x; public double y; } 由于这种类的数据域是可以直接访问的,所以他们不能提供“封装”带来的好处.如果不改变API,就不能改变其数据表示法,不能强加任何约束,当域被访问时不能采取任何辅助行为.强硬派的面向对象程序员会非常厌恶这种类,认为这种类应该被包含private…