# 通过反射机制,实现不同对象,但是 field name 相同字段的复制
public int createBrand(PmsBrandDto pmsBrandDto) {
PmsBrand pmsBrand = new PmsBrand();
BeanUtils.copyProperties(pmsBrandDto,pmsBrand);
return brandMapper.insertSelective(pmsBrand);
}
service mysql Transactional
public interface OmsOrderService {
@Transactional
int close(List<Long> ids, String note);
}
@Service
public class OmsOrderServiceImpl implements OmsOrderService {
@Override
public int close(List<Long> ids, String note) {
//...
}
}
枚举类参数验证
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD,ElementType.PARAMETER})
@Constraint(validatedBy = FlagValidatorClass.class)
// TODO: 19-7-9 FlagValidator define. param validator
public @interface FlagValidator {
String[] value() default {};
String message() default "flag is not found";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
public class FlagValidatorClass implements ConstraintValidator<FlagValidator, Integer> {
private String[] values;
@Override
public void initialize(FlagValidator flagValidator) {
this.values = flagValidator.value();
}
@Override
public boolean isValid(Integer value, ConstraintValidatorContext constraintValidatorContext) {
boolean isValid = false;
if (value == null) {
//当状态为空时使用默认值
return true;
}
for (int i = 0; i < values.length; i++) {
if (values[i].equals(String.valueOf(value))) {
isValid = true;
break;
}
}
return isValid;
}
}
public class PmsProductAttributeParam {
@ApiModelProperty("属性选择类型:0->唯一;1->单选;2->多选")
// TODO: 19-7-9 FlagValidator used. param validator
@FlagValidator({"0","1","2"})
private Integer selectType;
}
@Configuration
public class RestTemplateConfig {
@Bean
public RestTemplate restTemplate(){
return new RestTemplate();
}
}
@Controller
@RequestMapping("/template")
public class RestTemplateDemoController {
@Autowired
private RestTemplate restTemplate;
@Value("${host.mall.admin}")
private String HOST_MALL_ADMIN;
&#