工具类
package cn.sits.rjb.common.utils;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
@Component
public class SpringUtils implements ApplicationContextAware {
private static ApplicationContext applicationContext;
@Override
public void setApplicationContext(ApplicationContext applicationContextParam) throws BeansException {
applicationContext=applicationContextParam;
}
public static Object getObject(String id) {
Object object = null;
object = applicationContext.getBean(id);
return object;
}
public static <T> T getObject(Class<T> tClass) {
return applicationContext.getBean(tClass);
}
public static Object getBean(String tClass) {
return applicationContext.getBean(tClass);
}
public <T> T getBean(Class<T> tClass) {
return applicationContext.getBean(tClass);
}
}
前提:Durid配置需要指定Bean Name
代码获取Connection
druidDataSource.getConnection()获取到的类型是:com.alibaba.druid.pool.DruidPooledConnection,被druid包装过的,
需要使用unwrap()转换一下,
否则会报错:com.alibaba.druid.pool.DruidPooledConnection cannot be cast to oracle.jdbc.OracleConnection
//与Durid配置文件指定的Bean一致
private DruidDataSource druidDataSource = (DruidDataSource)SpringUtils.getBean("oracleDataSource");
//此处druidDataSource.getConnection()获取到的类型是:com.alibaba.druid.pool.DruidPooledConnection,被druid包装过的,需要使用unwrap()转换一下
Connection conn = druidDataSource.getConnection();
conn = conn.unwrap(OracleConnection.class);