spring注入bean进入工具类的静态方法
来源:互联网 发布:阿里云url中文乱码 编辑:程序博客网 时间:2024/06/06 01:51
package com.caiwufei.common.db;import javax.annotation.PostConstruct;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.mongodb.core.MongoTemplate;import org.springframework.stereotype.Component;import com.caiwufei.common.db.mongo.MongoDynamicTemplateSource;@Componentpublic class DBContextHolder{@Autowiredprivate MongoDynamicTemplateSource dynamicTemplateSource;private static DBContextHolder dbContextHolder;private static final ThreadLocal<String> dbName = new ThreadLocal<String>();private static final ThreadLocal<String> mongoTemplate = new ThreadLocal<String>(); @PostConstructpublic void init() {dbContextHolder = this;dbContextHolder.dynamicTemplateSource = this.dynamicTemplateSource;}public void setMongoTemplateSource(MongoDynamicTemplateSource mongoTemplateSource) {this.dynamicTemplateSource = mongoTemplateSource;}public static class DB {public static void changeTargetDataSource(String dataKey){dbName.set(dataKey);}public static String getTargetDataSource(){return dbName.get();}}public static class Mongo {public static void changeTargetMongoTemplate(String mongoTemplateKey){mongoTemplate.set(mongoTemplateKey);}public static String getTargetMongoTemplate(){return mongoTemplate.get();}}public static MongoTemplate mongoTemplate() {return dbContextHolder.dynamicTemplateSource.getMongoTemplate();}}
看上面的代码,工具类DBContextHolder中注入了private MongoDynamicTemplateSource dynamicTemplateSource动态的mongodb模板。
通过设计这个工具类,既是spring中的一个bean,又是一个工具类,静态方法可以直接DBContextHolder.Mongo.getTargetMongoTemplate();这样使用。
模板大致如下:
class O{@Autowiredprivate D d;private static O o;@PostConstructpublic void init() {o = this;o.d = this.d;}public void setD(D dd) {this.d = dd;}}
阅读全文
0 0
- spring注入bean进入工具类的静态方法
- Spring 在静态工具类中使用注解注入bean
- spring 在静态工具类中使用注解注入bean
- spring mvc 工具类的静态方法使用注入
- 在工具类静态方法调用@Autowired注入的bean方法
- 静态方法注入bean
- 静态工具类注入service的方法
- spring 注入静态工具类
- 使用Spring注解,在静态方法中注入bean
- Spring Bean 注入 Servlet 的方法
- Spring方法注入非单例bean的调用
- Spring Bean 注入 Servlet 的方法
- spring注入静态bean步骤 spring在普通类中注入bean实例
- Spring的bean注入
- 【Spring】 Bean的注入
- spring注入时bean的set方法为什么不能是static类型的?(为什么要用单例模式而不是静态方法)
- 普通静态类方法获取Spring注入的Been实体
- 普通静态类方法获取Spring注入的Been实体
- DiskLruCache基础
- lesson15homework
- 获取input原来的值,input还原
- 什么时候不应当使用虚函数
- NetCDF一维数据的写入
- spring注入bean进入工具类的静态方法
- 2017.10.22 Ardupilot开发者大会会议笔记,绝对干货满满!
- python-文件操作
- socket 实现简单的计算器
- 图解powerdesigner连接MySQL数据库
- 自定义动画之Drawable结合ProgressBar
- Java基础——集合
- 数组一些方法
- RabbitMQ应用实例Python版-工作队列