admin管理员组文章数量:1794759
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
版权声明:本文标题:Spring MVC获取ApplicationContext 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686616731a86655.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论