หน้าเว็บ

วันพฤหัสบดีที่ 20 กันยายน พ.ศ. 2555

get service by service name using application context spring : java

1. ที่ service ให้ตั้งชื่อ service ลงไปก่อน
package com.blogspot.na5cent.services;
...
...
...

@Service("dBPOPService")
@Transactional(propagation = Propagation.REQUIRED)
public class DBPOPServiceImpl implements DBPOPService {
   ...
   ...
   ...
}
2. ใน service ที่เรียกใช้งาน  ให้  @Autowired ApplicationContext เข้ามา  ดังนี้
package com.blogspot.na5cent.workers;

import org.springframework.context.ApplicationContext;//*************
...
...
...

@Transactional(propagation = Propagation.REQUIRED)
@Service("defaultWorker")
public class DefaultWorker implements Worker {

    static final Logger LOG = LoggerFactory.getLogger(DefaultWorker.class);
    @Autowired
    private ApplicationContext ctx; //********

    ...
    ...
    ...
}
3. เรียกใช้
...
...
...
@Transactional(propagation = Propagation.REQUIRED)
@Service("defaultWorker")
public class DefaultWorker implements Worker {

    static final Logger LOG = LoggerFactory.getLogger(DefaultWorker.class);
    @Autowired
    private ApplicationContext ctx; //********

    ...
    ...
    ...

    @Override
    public void run() {
        Service service = (Service)ctx.getBean("dbPOPService"); //**********
        ...
        ...
        ...
    }
}

ไม่มีความคิดเห็น:

แสดงความคิดเห็น