【发布时间】:2014-12-14 13:58:07
【问题描述】:
我正在使用 Maven 完全基于 Java 配置开发两个基于 spring 的应用程序(Ex app1 和 app2),并且没有 XML 配置。
通过 Maven -WAR 插件,我创建了 app2 的 Jar 引用,并使用 mvn install:install file 将 app2 jar 与 app1 绑定。
app2 - 它用于从数据源获取信息。
我已在 app1 实现类中自动装配 app2 服务以获取在 app2 应用程序中使用 @Service 注释的详细信息。
我的第一个疑问是:
app1 和 app2 都有单独的 AppConfig.java 文件。是否可以简单地自动装配以 Jar 格式提供的 @Service 之一,否则我需要将 App2 的 AppConfig java 文件定义或导入到 App1 的 AppConfig.jave 文件中.
我已尝试使用简单的自动装配外部 JAR @Service 类并以错误结束。
请帮助我将外部 Jar 的 @Service 自动连接到
实现类。
下面是我的 App1 存储库类
@Repository
public class VehicleRepository {
@Autowired
VehicleService vehicleservice;
public Map<String, item> getAllTypes(String type) {
Vehicke vehicle = vehicleservice.getAllVehicle(type);
// handle response here...
} catch (Exception ex) {
// handle exception here
} finally {
}
return vehicleDetails;
}
}
VehicleService 在外部 Jar 中可用。
VehicleService 类:
@Service
public class VehicleService {
public VehicleService() {
}
@Autowired
PortRepository portRepository;
@Autowired
MessageSource messageSource;
public Vehicle getAllVehicles(String type) {
List<Vehicle> cehicles = portRepository.getPorts();
return vehicle;
}
【问题讨论】:
-
Beans 由配置类定义。如果 Spring 没有使用其中一个配置类进行初始化,那么显然由该配置类定义的 bean 对于 Spring 来说是未知的。
-
@JBNizet 有没有办法在存储库类中的自动装配服务之前调用 App2 的配置或如何将 App2 的 AppConfig 文件调用/包含到 App1 的 Appcofig 中
-
通过从 App1 的配置类中导入 App2 的配置类:docs.spring.io/spring/docs/current/javadoc-api/org/…。但是,如果这些真的是设计为独立运行的应用程序,那么您肯定会遇到冲突的 bean。您可能必须编写一个单独的配置类来仅从 App2 加载在用作 App1 的一部分时有意义的 bean。
标签: spring service jar autowired maven-war-plugin