pgProperties.getJdbcUrl()处空指针异常,显然是@Autowired还没注入
不使用@Autowired,将对象放在参数上public DataSource primaryDataSource(PGProperties pgProperties)就可以了。
@Configuration @ComponentScan @EnableTransactionManagement public class DataSourceConfig { @Bean(name = "primaryDataSource",initMethod = "init", destroyMethod = "close") @Qualifier("primaryDataSource") @Primary public DataSource primaryDataSource(PGProperties pgProperties) { PGXADataSource pgxa=new PGXADataSource(); pgxa.setURL(pgProperties.getJdbcUrl()); pgxa.setUser(pgProperties.getUsername()); pgxa.setPassword(pgProperties.getPassword()); AtomikosDataSourceBean xaDataSource = new AtomikosDataSourceBean(); xaDataSource.setXaDataSource(pgxa); xaDataSource.setUniqueResourceName("primaryDataSource"); return xaDataSource; }