相关疑难解决方法(0)

如何使用注释执行Spring Lookup方法注入?

有没有办法使用注释使用查找方法注入?

鉴于以下课程:

@Service
public abstract class A {


    protected abstract createB();

}
Run Code Online (Sandbox Code Playgroud)

为了使它工作,我必须在spring applicationContext.xml中声明以下内容:

<bean id="b" class="com.xyz.B">
</bean>

<bean id="a" class="com.xyz.A">
    <lookup-method name="createB" bean="b"/>
</bean>
Run Code Online (Sandbox Code Playgroud)

即使我正在使用,<context:component-scan base>我也必须在XML中声明它.我认为这不是一个好方法.

如何用注释做到这一点?

spring dependency-injection spring-annotations

30
推荐指数
4
解决办法
2万
查看次数

Spring Prototype-没有@Autowired的Bean Provider

我有一个原型 Bean,它由带有以下内容的单例 bean 实例化Provider

@Component
@Scope("prototype")
class MyPrototype {}

@Component
class MySingleton {
    @Autowired
    javax.inject.Provider<MyPrototype> prototypeFactory;
}
Run Code Online (Sandbox Code Playgroud)

这很好用,但我们公司规定@Autowired不允许这样做;常见的模式是@Resource(SingletonBeanClass.BEAN_ID).

是否可以通过Provider这种方式进行注释,以便 Spring 查找可以创建它?

我知道我可以使用@Lookup或单例工厂 bean 添加工厂方法,但我更喜欢Provider.

编辑:我没有让它以这种方式工作,最后不得不编辑spring.xml;详情请参见下文。

java spring

5
推荐指数
1
解决办法
1479
查看次数