
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