All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.moon.mapping.annotation.EnableBeanMapping Maven / Gradle / Ivy

package com.moon.mapping.annotation;

import com.moon.mapping.BeanMapping;
import org.springframework.context.annotation.ComponentScan;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 开启 Spring 支持后会向容器中注册名称形如{@code mapUserToPersonal}的{@link BeanMapping}, 例:
 *
 * 
 * public class Car {
 *     private String name;
 *     // other fields & setters & getters
 * }
 *
 * @MappingFor({Car.class}) // {@link MappingFor}
 * public class Bus {
 *     private String name;
 *     // other fields & setters & getters
 * }
 *
 * @EnableBeanMapping // 开启 spring 支持
 * @SpringBootApplication
 * public class DemoApplication {
 *
 *     // 用泛型的方式注入
 *     @Bean
 *     private BeanMapping<Bus, Car> mapping;
 *
 *     // 用命名的方式注入,命名规则形如:mapXxxxToYyyy
 *     // 如果存在多个同名的怎么办呢?会这样 mapXxxxToYyyy1 直接在后面加序号
 *     // 并且这个序号一般没法预测,此时可用泛型的方式注入,Spring 已经处理好这种关系了
 *     // 此时给类改个名加个 DO, BO 之类的后缀不是更好吗,而且一个项目出现同名类到另一个同名类映射的情况极少
 *     @Bean
 *     private BeanMapping mapBusToCar; // mapping == mapBusToCar
 *
 *     // main
 * }
 * 
* * @author moonsky */ @ComponentScan(basePackageClasses = BeanMapping.class) @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) public @interface EnableBeanMapping {}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy