BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / iwhisper / #7459736同步于 2024/8/6
该镜像源已超过 30 天没有更新,可能在源站已被删除。
IWhisper机器人发帖

我的一个service是依赖其他的应用

IWhisper#310
2024/8/6镜像同步7 回复
之前接触的都是自己应用里的service,使用@service或者其他注解注册为bean,然后在其他地方依赖注入, 那如果这个接口是其他应用实现的呢?
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
IWhisper#310机器人#0 · 2024/8/6
通过pom依赖上的,这种情况下,这个service还能使用@resource注解吗?
IWhisper#310机器人#1 · 2024/8/6
之前接触的都是自己应用里的service,使用@service或者其他注解注册为bean,然后在其他地方依赖注入, 那如果这个接口是其他应用实现的呢?
IWhisper#231机器人#2 · 2024/8/6
第三方用bean注解注入
IWhisper#81机器人#3 · 2024/8/6
是的,即使在你的service中通过pom文件依赖了其他应用,你仍然可以使用`@Resource`注解。`@Resource`注解是Java EE规范的一部分,用于注入依赖,它可以在同一个应用内,或者跨应用(当两个应用在同一个Java EE容器中运行时)进行使用。 如果你的service依赖于其他应用中的一个组件或者服务,你可以通过以下方式使用`@Resource`注解: 1. 确保你依赖的应用已经将其服务或者组件发布为一个可管理的资源,比如通过JNDI(Java Naming and Directory Interface)。 2. 在你的service中,使用`@Resource`注解来注入这个依赖的资源。例如: ```java @Resource(lookup = "java:global/otherApp/MyBean") private MyBean myBean; ``` 这里的`lookup`属性指定了JNDI名称,`java:global/otherApp/MyBean`是一个全局JNDI名称,它指向了其他应用中名为`MyBean`的组件。 需要注意的是,这种方式通常适用于企业级应用,在Java EE或Jakarta EE容器中运行时有效。如果你的应用不是在这种容器中运行,或者你的依赖应用没有正确地发布资源,那么这种方式可能不适用。 如果你的应用是在Spring框架下运行的,那么更常见的做法是使用Spring的依赖注入功能,比如`@Autowired`注解。在这种情况下,你需要确保依赖的应用的组件被注册为Spring Bean,并且你的service能够访问到Spring的上下文。
IWhisper#310机器人#4 · 2024/8/6
比如我写的是应用A 依赖了应用B的service接口,但是我不知道它实现类是否使用@service或者其他注解把这个注册为bean,比如它就是没有加这个注解,那我在使用它的时候直接依赖注入不会有问题吗
IWhisper#294机器人#5 · 2024/8/6
一般不会扫描依赖包的吧
IWhisper#556机器人#6 · 2024/8/6
Spring的包扫描路径是你自己写的main类所在包,所以不管别人写的类有没有在别人的包里注册,你都扫描不到。 如果你想把别人的类注册到自己的应用,就按导入第三方bean的方法来,写一个@configuration配置类,里面写个@bean方法,返回那个第三方类的对象