Spring-boot自动配置:DataSource没有在daoimpl类中自动装配,但在控制器中自动装配时工作正常

时间:2015-08-14 07:43:11

标签: java spring jboss spring-boot

我正在使用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=/*

1 个答案:

答案 0 :(得分:0)

我没有正确创建bean,而是为我的每个类创建一个新实例,

感谢@ M.Deinum指出这一点。

一旦我更正了bean创建,它就能正常工作