liuxiaolong
2019-05-09 0d1d88cdb668e75ea8609417ac18ae19947e9525
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
package framework.startup;
 
import org.apache.log4j.Logger;
import org.springframework.context.ApplicationListener;
import org.springframework.context.event.ContextRefreshedEvent;
import org.springframework.web.context.WebApplicationContext;
 
import framework.util.excel.ExcelWriter;
 
/**
 * 框架启动
 * 
 * @author liuyajun, 8384503@qq.com
 * @date 2016年1月30日
 * @time 上午9:38:53
 */
public class FrameStartup implements ApplicationListener<ContextRefreshedEvent> {
 
    private String uploadPath;
    public void setUploadPath(String s){
        this.uploadPath = s;
    }
    public String getUploadPath(){
        return this.uploadPath;
    }
 
    private String downloadPath;
    public void setDownloadPath(String s){
        this.downloadPath = s;
    }
    public String getDownloadPath(){
        return this.downloadPath;
    }
    private String startBean;
    private WebApplicationContext wac;
    
    private Logger log = Logger.getLogger(this.getClass());
    
    @Override
    public void onApplicationEvent(ContextRefreshedEvent event) {
//        org.apache.ibatis.logging.LogFactory2.useLog4JLogging();
//        org.apache.ibatis.logging.LogFactory2.useLog4JLogging();
        /*
         * ==null: spring
         * !=null: springMVC
         */
        if(event.getApplicationContext().getParent() != null){
            log.info("framework load finished, starting load application!");
 
            wac = (WebApplicationContext) event.getApplicationContext();
            FrameUtil.setServletContext(wac.getServletContext());
            FrameUtil.setWebApplicationContext(wac);
            
            FrameUtil.setUploadFilePath(uploadPath);
            FrameUtil.setDownloadFilePath(this.downloadPath);
            
            log.info("upload file path: "+FrameUtil.getUploadFilePath());
            
            //设置 excel
            ExcelWriter.setTempPath(FrameUtil.getDownloadFilePath());
            
            //启动 bean
            this.startBeans();
            
        }
    }
    
    private void startBeans(){
        if(this.startBean ==null){
            return;
        }
        this.startBean = this.startBean.replace("\n", "");
        this.startBean = this.startBean.replace("\r", "");
        this.startBean = this.startBean.replace(" ", "");
        this.startBean = this.startBean.trim();
        
        if(this.startBean.length() ==0){
            return;
        }
        
        String[] beanIds = this.startBean.split(",");    //使用英文逗号分隔
        
        for(String beanId : beanIds){
            try{
                FrameStartBean bean = (FrameStartBean)wac.getBean(beanId);
                bean.startBean();
            }catch(Throwable t){
                log.error("加载启动bean错误", t);
            }
        }
        
    }
 
    public void setStartBean(String startBean) {
        this.startBean = startBean;
    }
 
}