零、总结
MapStruct:简化对象间的映射操作,提高开发效率
@Mapper public interface MyMapper { @Mapping(source = "name", target = "fullName") @Mapping(source = "age", target = "yearsOld") Target sourceToTarget(Source source); } // 在编译时会自动生成实现了映射接口的具体实现类, Mapper名称加Impl MyMapper mapper = new MyMapperImpl(); Target target = mapper.sourceToTarget(source);
SPI:作用:在运行时动态加载实现类,而不是在编译时静态绑定。不需要显式地引用实现类
通过 META-INF/services 目录下提供一个以接口名称命名的文本文件 实现
ServiceLoader<Animal> serviceLoader = ServiceLoader.load(Animal.class); for (Animal animal : serviceLoader) { .