spring data如何获取自定义实现的factoryBean实例

花间_拾零 2016-09-06 01:27:53
Spring下自定义实现factoryBean


application.xml关于jpa repository配置


顶层factoryBean


查阅官方文档发现可通过以下方法在外部使用
//RepositoryFactorySupport factory = … // Instantiate factory here
//CodeTypeDao repository = factory.getRepository(CodeTypeDao.class);

请问如何拿到注入到spring容器中的自定义factoryBean实例?谢谢!!
...全文
424 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
花间_拾零 2016-09-06
  • 打赏
  • 举报
回复
引用 1 楼 fangmingshijie 的回复:
在什么代码里使用,注入就能获取吧?

刚打印了spring里面全部的bean,发现spring data自定义的factoryBean以及jpa相关的bean都没有
package com.ld.common.service;

import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport;

public class ServletContextService implements ApplicationContextAware{
//setter inject servletContext
private ApplicationContext applicationContext;

@Override
public void setApplicationContext(ApplicationContext arg0)
throws BeansException {
// TODO Auto-generated method stub
this.applicationContext=arg0;
}

public Object getBean(String name){
return applicationContext.getBean(name);
}

public boolean containsBean(String name){
return applicationContext.containsBean(name);
}

@SuppressWarnings({ "unchecked", "rawtypes" })
public <T> T getBeanByClassType(Class<T> cls){
return applicationContext.getBean(cls);
}

public void getAllBeans(){
String[] ret=applicationContext.getBeanDefinitionNames();
for(String curr:ret){
System.out.println(curr);
}
}

现在在开发一个接口,前台传实体的名字,后台要动态拿到DAO实例,查数据库这条记录有没有更新。使用注入效果如下,


现在因为实体有几百个 ,这样加进来不好扩展。所以想到从spring容器中去取。要点是怎么拿到spring data的工厂bean实例。

  • 打赏
  • 举报
回复
在什么代码里使用,注入就能获取吧?

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧