我正在使用REST WebService,我需要使用Jboss数据源与数据库进行交互。
问题在于,当我尝试在DAO的impl类中自动装配数据源时,它具有null。 但是,如果我在Controller上自动装配数据源,它可以正常工作
DaoClass:
@Repository
public class OrderListDaoImpl implements OrderListDao{
@Autowired
private DataSource dataSource; // this here gives null
public List<OrderDTO> getOrderList(SearchOrderDto searchOrderDto,int pageSize,
int pageNumber,String sortBy,String sortType,boolean pagination,DataSource dataSourced)
throws Exception{
}
}
我的申请类:
@Configuration
@ComponentScan("net.colt.*")
@EnableAutoConfiguration
public class Application extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(applicationClass, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(applicationClass);
}
private static Class<Application> applicationClass = Application.class;
}
我的控制员:
@RestController
public class OrderSearchController {
@Autowired
private DataSource dataSource; // This gets initialized properly
@RequestMapping("/getOrderList")
ResponseEntity<String> getOrderList(){
}
}
我正在使用spring boot auto config。我的应用程序属性文件是:
spring.datasource.jndi-name=java\:jboss/datasources/orders_ds
server.servlet-path=/*
答案 0 :(得分:0)
我没有正确创建bean,而是为我的每个类创建一个新实例,
感谢@ M.Deinum指出这一点。
一旦我更正了bean创建,它就能正常工作