Java后台代码调用Spring的@Service Bean的方式
比如:在我的project中有一个类CompassIndexOperation,以:
@Service("CompassIndexOperation")
@Transactional
方式通知Spring创建一个实现类的实例;
且Spring配置xml文件里设置了生成bean的文件文件夹,我的project实例为:
<context:component-scan base-package="com.ourfuture.compass.*"/>
这样。project启动时。会将制定文件夹下的以@Service等标记的类生成bean。
在后台Java代码中调用这一bean的方式例如以下:
ApplicationContext context = WebApplicationContextUtils.getWebApplicationContext
(ServletActionContext.getServletContext());
CompassIndexOperation compassIndexOperation = (CompassIndexOperation) context.
getBean("CompassIndexOperation");
这样就获得了Spring中的CompassIndexOperation Bean实例,当然这是我的project中的Bean。针对不同的project,要获取不同的Bean实例,
仅仅需将上述的CompassIndexOperation 的位置改为相应的Bean的名字就可以。
当中须要导入的包有:
import org.springframework.context.ApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;