我们正在构建一个使用以下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();
}
}
答案 0 :(得分:1)
只需为每个图层创建一个单独的配置类。在每个配置类中,从下面的层导入配置类(它可以传递):
@Configuration
@Import(value = { DataSourceConfig.class, JpaConfig.class, RepositoryConfig.class })
public class DataConfig {
}
@Configuration
@Import(value = { DataConfig.class })
public class ServiceConfig {
}