第一种,采用 @PostConstruct 注解方式实现
@Component
public class DBHelp {
@Autowired
private DataSource dataSource;
private static DBHelp dbHelp;
@PostConstruct
public void init(){
dbHelp = this;
dbHelp.dataSource = this.dataSource;
}
public static Connection getConn() {
Connection conn = null;
try {
conn = dbHelp.dataSource.getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
}
第二种,采用getter和setter方式注入
@Component
public class DBHelp {
private static DataSource dataSource;
public static DataSource getDataSource() {
return DBHelp.dataSource;
}
@Autowired
public void setDataSource(DataSource dataSource) {
DBHelp.dataSource = dataSource;
}
public static Connection getConn() {
Connection conn = null;
try {
conn = dbHelp.dataSource.getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
}
注意点:
1,类上需要加上@Component标识,标识此类是一个Bean
2,第二种实现方式的setter方法不能携带static标识