SpringMVC中普通类调⽤Service接⼝
SpringMVC中Controller直接⽤注解@Resource即可调⽤Service业务逻辑层,但普通类或者⼯具类要调⽤Service接⼝时,该如何操作呢?
接下来提供两种解决⽅案
⼀. 重载Spring配置⽂件实例化上下⽂Bean
ApplicationContext appContext = new ClassPathXmlApplicationContext("l");
StudentService studentService = (Bean("studentService");
通过ClassPathXmlApplicationContext作为⼊⼝,加载CLASSPATH下的Spring配置⽂件,完成对所有Bean实例的加载,并获取Bean 的实例。
⼆. 实现ApplicationContextAware接⼝(推荐)
通过ApplicationContextAware接⼝,实现从已有的Spring上下⽂取得已实例化的Bean。
(1)创建⼯具类SpringContextUtil实现ApplicationContextAware接⼝
mvc的controller@Component
public class SpringContextUtil implements ApplicationContextAware {
private static ApplicationContext appCtx;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
appCtx = applicationContext;
}
public static ApplicationContext getApplicationContext() {
return appCtx;
}
/
/ 添加getBean()⽅法,凭id获取容器管理的Bean
public static Object getBean(String beanName) {
Bean(beanName);
}
}
(2)将⼯具类SpringContextUtil注⼊到Spring容器中
<bean id="springContextUtil" class="com.unit.spring.SpringContextUtil"/>
(3)在项⽬l中配置加载Spring容器的Listener
<listener>
<listener-class>org.t.ContextLoaderListener</listener-class>
</listener>
(4)接下来就可以愉快地获取Spring容器中的Bean了
UserServiceImpl userService = (UserServiceImpl) Bean("userService"); userService.insertUser(user);
赠⼈玫瑰⼿留余⾹,若对您有帮助,来点个赞呗!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论