或者,我可以org.springframework.beans.factory.config.Scope
使用特定@Scope
注释的注释绑定自定义接口实现吗?
例如,我已经定制了一个新的范围类型:
@javax.inject.Scope @Retention(RUNTIME)
@interface Conversation {}
class ConversationScope implements Scope { ... }
class ConversationScopeConfigurer extends BeanFactoryPostProcessor
{ beanFactory.registerScope("conversation", new ConversationScope()); }
Run Code Online (Sandbox Code Playgroud)
现在我想用它,
@Component
@Conversation
class Topic { ... }
Run Code Online (Sandbox Code Playgroud)
代替,
@Component
@org.springframework.context.annotation.Scope("conversation")
class Topic { ... }
Run Code Online (Sandbox Code Playgroud)
可能吗?
在spring-context中有类似"AnnotationPostProcessor"的东西吗?
有没有人有JSR 330对Guice的经验?从我收集的内容来看,Guice不是JSR 330的实现,但如果它类似于Hibernate和JPA,那么实现在API中支持许多其他功能.由于我已经在使用GWT-Dispatch,Warp-persist guice-serlvet等,因此转移到支持JSR 330的EJB容器会有什么收获?
Spring有自己的Qualifier
注释,我认为它等同于javax.inject.Named
注释,而注释又是JSR-330中的具体限定符.
那么,我想知道Spring的哪个版本(如果有的话)支持Qualifier?
这是我的示例用法,遗憾的是它不适用于spring-context 3.0.5:
@Retention(RUNTIME)
@javax.inject.Qualifier
public @interface Version {
String value();
}
@Configuration
public class MyConfig {
@Bean("book-12") @Version("a") Book book12a() { ... }
@Bean("book-12") @Version("b") Book book12b() { ... }
}
@Component
public class UserClass {
@Inject @Named("book-12") Book anybook12;
@Inject @Named("book-12") @Version("b") Book book12_b;
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试在Spring 3中使用JSR-330注释.
是否有一个JSR-330相当于Spring的@Value
注释用于插入属性值?例如,我可以@Provider
以指示Spring注入属性值的方式使用吗?
Guice的SVN版本支持JSR-330注释("JSR-330集成 - 这是一个仅在Guice SVN中可用的实验性未发布功能").谷歌给出了建议:"现在,坚持使用Guice的注释和提供者界面." Guice 2现在已经有一年了,我想知道在不久的将来是否会有JSR-330支持.有人知道吗?
我是Agorava的技术主管,Agorava是一个帮助消费社交网络数据的框架.
今天,Agorava基于CDI构建,以简化其在Java EE堆栈中的使用,但我们希望为Dagger提供一个实现,以便为Android提供更轻松的解决方案.
我的问题是:我们可以在CDI和Dagger实现之间共享通用的JSR 330兼容代码吗?换句话说,是否有可能与匕首在罐子轴承JSR 330注释已经编译代码和源代码延伸或在一个特定匕首罐使用此代码(与@Provides
,@Modules
和其他匕首特定项目)?
如果答案是否,是否有任何问题用Dagger编译器编译我的常见JSR 330 jar并在我的CDI实现中使用它?更准确地说@Inject
,限定符和其他JSR 330细节仍然可以在运行时使用,带有这些注释代码的类是否仍然不受Dagger编译器的影响?最后是否有一种关于Dagger生成的代码(类名,注释)的跟踪器,以允许CDI检测它并忽略它?
所有
我不知道JSR-330中的Inject和Provider之间有什么区别.我正在使用谷歌guice,并且每天使用@Inject
,我知道在JSR-330中,它有Provider<T>
.
我的问题是
Provider<T>
?Provider<T>
?@Inject
?提前致谢.
我尝试@Named
在创建 bean 的方法上使用注释,但这似乎不起作用。在这里找不到任何问题或证实这一点的博客。阅读 jcp.org 上的描述,我没有看到 JSR-330 引入的任何 b/w beans 和依赖注入的关系:https://jcp.org/en/jsr/detail ?id=330
java ×8
jsr330 ×8
spring ×4
guice ×3
annotations ×1
cdi ×1
dagger ×1
glassfish ×1
qualifiers ×1