潘志宝
2024-11-05 cf2287d43a3e6e6a87b799b484c1c6073226c1bf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package com.iailab.module.model.mdk.factory;
 
import com.iailab.module.model.mcs.pre.entity.MmItemTypeEntity;
import com.iailab.module.model.mdk.predict.PredictItemHandler;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Component;
 
/**
 * 创建预测项对象的工厂
 */
@Slf4j
@Component
public class PredictItemFactory {
 
    @Autowired
    private ApplicationContext applicationContext;
 
    @Autowired
    private ItemEntityFactory itemEntityFactory;
 
    /**
     * 根据预测项实体创建对应的预测项对象
     *
     * @param itemId
     * @return
     */
    public PredictItemHandler create(String itemId) {
        MmItemTypeEntity itemTypeEntity = itemEntityFactory.getMmItemTypeEntity(itemId);
        //获取预测项的预测程序的类
        Object itemObject = null;
        try {
            Class<?> clazz = Class.forName(itemTypeEntity.getItemclasstype());
            itemObject = applicationContext.getBean(clazz);
        } catch (Exception e) {
            log.error("exception message : {}", e.getMessage());
        }
        return (PredictItemHandler) itemObject;
    }
}