Java Spring boot自动配置:数据源未在daoimpl类中自动连接,但在contoller中自动连接时工作正常
我正在使用RESTWebService,我需要使用Jboss数据源与数据库交互 问题是,当我试图在DAO的impl类中自动连接数据源时,它具有null。 但是,如果我在控制器上自动连接数据源,它可以正常工作 级别:Java Spring boot自动配置:数据源未在daoimpl类中自动连接,但在contoller中自动连接时工作正常,java,spring,jboss,spring-boot,Java,Spring,Jboss,Spring Boot,我正在使用RESTWebService,我需要使用Jboss数据源与数据库交互 问题是,当我试图在DAO的impl类中自动连接数据源时,它具有null。 但是,如果我在控制器上自动连接数据源,它可以正常工作 级别: @Repository public class OrderListDaoImpl implements OrderListDao{ @Autowired private DataSource dataSource; // this here gives null
@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{
}
}
我没有正确地创建bean,而是为我的每个类创建了一个新实例 感谢@M.Deinum指出这一点
一旦我纠正了bean的创建,它就正常工作了我没有正确创建bean,而是为我的每个类创建了一个新实例 感谢@M.Deinum指出这一点
一旦我纠正了bean的创建,它就正常工作了。
OrderListDaoImpl
和OrderSearchController
都在路径中:@ComponentScan(“net.colt.*)
?首先你的包是错误的,删除*
,其次它不能为null,否则spring会给出一个异常。因此,我怀疑您是在代码中自己创建一个新实例,而不是使用spring管理的实例。@M.Deinum,我想我明白您的意思了。。让我试试OrderListDaoImpl
和OrderSearchController
是否在路径中:@ComponentScan(“net.colt.*)
?首先,您的包出错,请删除*
,其次,它不能为null,否则spring会给出异常。因此,我怀疑您是在代码中自己创建一个新实例,而不是使用spring管理的实例。@M.Deinum,我想我明白您的意思了。。让我试试
@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.datasource.jndi-name=java\:jboss/datasources/orders_ds
server.servlet-path=/*