使用Java配置的N层Web应用程序中的Spring上下文

时间:2015-08-12 16:07:19

标签: java spring annotations spring-data

我们正在构建一个使用以下Java堆栈的Web项目。它使用n层与数据/业务/服务/ Web /客户端层。

Data layer - Java, JPA, Spring-data-JPA
Business layer - Java
Service layer - Java, Apache CXF (REST/SOAP) Webservices

Client layer - AngularJS, Bootstrap

我试图弄清楚如何在这些n层之间传递spring上下文。 我也在尝试使用Java配置而不是XML,所以很困惑。

在我之前的项目中,我们使用XML配置在Web层中创建spring上下文。

我尝试按照本教程http://source.lishman.com/project/689#card/5509/file/19177

进行操作

我可以将工作数据层作为独立的。但不确定如何在业务层中注入存储库??

以下试用版有效,但仅在复制了业务层中的以下配置后,我已在数据层中定义/配置

@Import(value = { DataSourceConfig.class, JpaConfig.class, RepositoryConfig.class })

业务层

配置

@Configuration
@Import(value = { DataSourceConfig.class, JpaConfig.class, RepositoryConfig.class })
public class ServiceConfig {

    @Autowired
    AirlineBusiness airlineBusiness;

    @Bean
    public AirlineBusiness getAirlineBusiness() {
        return new AirlineBusinessImpl();
    }
}

业务界面

@Service
public interface AirlineBusiness extends Serializable {

    public List<Airline> findAll();
}

业务实施

    @Service
    public class AirlineBusinessImpl implements AirlineBusiness {

    @Autowired
    private AirlineRepository airlineRepository;

    @Override
    public List<Airline> findAll() {
        return airlineRepository.findAll();
    }

}

1 个答案:

答案 0 :(得分:1)

只需为每个图层创建一个单独的配置类。在每个配置类中,从下面的层导入配置类(它可以传递):

@Configuration
@Import(value = { DataSourceConfig.class, JpaConfig.class, RepositoryConfig.class })
public class DataConfig {

}

@Configuration
@Import(value = { DataConfig.class })
public class ServiceConfig {
}