Classes comuns na interface de serviço de chamada SpringMVC

No SpringMVC, o Controlador pode usar diretamente a anotação @Resource para chamar a camada de lógica de negócios do Serviço, mas o que deve ser feito quando classes comuns ou classes de ferramentas precisam chamar a interface de Serviço?

Em seguida, forneça duas soluções

 

1. Recarregue o arquivo de configuração Spring para instanciar o bean de contexto

ApplicationContext appContext = new ClassPathXmlApplicationContext("applicationContext-common.xml");  
StudentService studentService = (StudentService)appContext.getBean("studentService");  

Use ClassPathXmlApplicationContext como o ponto de entrada para carregar o arquivo de configuração do Spring em CLASSPATH, concluir o carregamento de todas as instâncias do Bean e obter as instâncias do Bean.

 

2. Implementar a interface ApplicationContextAware (recomendado)

Por meio da interface ApplicationContextAware, o Bean instanciado pode ser obtido a partir do contexto Spring existente.

(1) Crie a classe de ferramenta SpringContextUtil para implementar a interface ApplicationContextAware

@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) {
        return appCtx.getBean(beanName);
    }
	
}

(2) Injete a classe de ferramenta SpringContextUtil no contêiner Spring

<bean id="springContextUtil" class="com.cn.unit.spring.SpringContextUtil"/>

(3) Configure o Listener que carrega o contêiner Spring no projeto web.xml

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

(4) Então você pode felizmente colocar o feijão no recipiente de primavera

UserServiceImpl userService = (UserServiceImpl) SpringContextUtil.getBean("userService");
userService.insertUser(user);

 

 Dê a alguém uma mão de rosa para deixar um perfume, se te ajudar, venha 点个赞!

Acho que você gosta

Origin blog.csdn.net/ii950606/article/details/100081293
Recomendado
Clasificación