潘志宝
2024-12-23 5bf42aa9950058f391805e6fb8d7376f4378924b
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
42
package com.iailab.module.model.mdk.factory;
 
import com.iailab.module.model.mcs.pre.entity.MmItemTypeEntity;
import com.iailab.module.model.mcs.pre.service.MmItemTypeService;
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 MmItemTypeService mmItemTypeService;
 
    /**
     * 根据预测项实体创建对应的预测项对象
     *
     * @param itemId
     * @return
     */
    public PredictItemHandler create(String itemId) {
        MmItemTypeEntity itemTypeEntity = mmItemTypeService.getItemTypeByItemId(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;
    }
}