admin管理员组

文章数量:1794759

Spring MVC获取ApplicationContext

Spring MVC获取ApplicationContext

Spring MVC获取ApplicationContext

获得了ApplicationContext你就可以根据bean名字去获取相应的bean.啥也不说了,直接上代码:

package com.cloume.tmcp.configuration; import java.io.Serializable; import java.util.List; import org.springframework.beans.BeansException; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.security.access.PermissionEvaluator; import org.springframework.security.core.Authentication; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.stereotype.Component; import org.springframework.web.context.support.WebApplicationObjectSupport; @Component @EnableAutoConfiguration public class YourClass implements ApplicationContextAware{ //注意是static的 private static ApplicationContext applicationContext; public boolean getMongoData() { MongoTemplate mongoTemplate = (MongoTemplate)applicationContext.getBean("mongoTemplate", MongoTemplate.class); Data data = mongoTemplate.findOne(Query.query(Criteria.where("username").is(username)), Data.class); return data; } /** * Spring启动的时候会自动调用下面的方法设置ApplicationContext的值 */ @Override public void setApplicationContext(ApplicationContext ctx) throws BeansException { applicationContext = ctx; } }

上面是直接使用当前类实现ApplicationContextAware接口的,下面提供一个单例模式的SpringContextUtil,将这个类放到你的工程中去,需要的时候直接调用就可以了。

package orgpany.xxx; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; /** * * 获取spring容器,以访问容器中定义的其他bean */ public class SpringContextUtil implements ApplicationContextAware { // Spring应用上下文环境 private static ApplicationContext applicationContext; /** * 实现ApplicationContextAware接口的回调方法,设置上下文环境 * * @param applicationContext */ public void setApplicationContext(ApplicationContext applicationContext) { SpringContextUtil.applicationContext = applicationContext; } /** * @return ApplicationContext */ public static ApplicationContext getApplicationContext() { return applicationContext; } /** * 获取对象 * 这里重写了bean方法,起主要作用 * @param name * @return Object 一个以所给名字注册的bean的实例 * @throws BeansException */ public static Object getBean(String name) throws BeansException { return applicationContext.getBean(name); } }

使用方法:MongoTemplate mongoTemplate = (MongoTemplate)SpringContextUtil.getBean("mongoTemplate"); //bean的名称

本文标签: springMVCApplicationContext