我正在努力通过类名从一组注入(inject)的标记服务中获取特定服务。举个例子:我将所有实现DriverInterface的服务标记为app.driver并将其绑定(bind)到$drivers变量。在其他一些服务中,我需要获取所有标记为app.driver的驱动程序,然后实例化并仅使用其中的少数驱动程序。但需要的驱动程序是动态的。服务.yml_defaults:autowire:trueautoconfigure:truepublic:falsebind:$drivers:[!taggedapp.driver]_instanceof:DriverInterface:tags:['ap
我的Autowiring不适用于基本的文件实体监听器。我有一个File实体类,它使用注释来指定监听器,例如:/**@Orm\Entity(repositoryClass="root\CoreBundle\Repository\FileRepository")@Orm\EntityListeners({"root\CoreBundle\EventListener\Entity\FileEntityListener"})@Orm\Table(etc...FileEntityListener类开始如下:classFileEntityListener{private$encoderFactor
我有一个大型应用程序,我想将其分解为可管理的模块。我在Jpa中使用spring(Hibernate作为提供者)。我想出了一个结构,其中我有一个包含所有实体和dao类的核心模块,其他模块使用关于持久性的核心模块,每个模块都有自己的一组服务类和Controller。所有Jpa和spring的配置文件都在核心模块中。通过此设置,我面临着在使用核心模块的模块中Autowiringdaobean的问题。所以我的问题是,是否可以从其他模块的核心模块Autowiringbean(或者可能使用跨模块的上下文)?如果有更好的方法,我也愿意接受有关结构的建议。谢谢 最佳答案
意味着如果具有所需类型的bean不超过1个,bean的所有字段将自动注入(inject)依赖项。问题是当使用注解时它是如何工作的,它到底能不能工作。我的测试表明即使我使用@Resource(name="someConcreteFoo")privateFoofoo;如果Foo有多个实现,上下文会尝试按类型Autowiring字段,但会失败.所以,就我所见,default-autowire不与注释混合。我在文档中找不到任何具体内容。扩展问题-当使用xml-only时,spring如何使用默认Autowiring。IE。如果你有.属性注入(inject)是否覆盖默认值(应该是)。我可以做更多
我在通过注解使用springDI时遇到问题,这是我的应用程序:@ServicepublicclassTest{@AutowiredprivateGpsPointEntityDaogpsPointEntityDao;publicvoidtest(){if(gpsPointEntityDao==null)System.out.println("It'snull!\n"+gpsPointEntityDao);}}通用接口(interface):publicinterfaceGenericDao{publicTfind(longid);publicListgetAll();publicvoid
我正在使用Spring3.1构建一个GoogleAppEngine应用程序,但在我的一个jar中获取成员时遇到了问题。我有三个项目:服务器server.modelserver.persistence我有一个ant构建脚本,这样当我的工作区构建时,它会为server.model和server.persistence创建jar,并将它们放在正确的lib目录中对于server项目。在server中,我可以从server.model和server.persistence中Autowiring东西,但在server.model我的server.persistencebean没有连接,即使它们与s
有没有办法在Condition中Autowiringbean?还有下一个例子。我们有2个FileManager的实现。其中一个实现应该根据属性“平台”进行初始化。通过Archaius处理属性。@ComponentpublicclassAwsPlatformConditionimplementsCondition{@AutowiredprivateArchaiusPropertiesarchaiusProperties;@Overridepublicbooleanmatches(ConditionContextconditionContext,AnnotatedTypeMetadataa
ConstructorResolver.autowireConstructor(...)的javadoc说Alsoappliedifexplicitconstructorargumentvaluesarespecified,matchingallremainingargumentswithbeansfromthebeanfactory.但我无法让它工作。我得到一个BeanCreationException:Couldnotresolvematchingconstructor(hint:specifyindex/type/nameargumentsforsimpleparameterst
我有一个带有一些独立beanX的项目,它在一堆服务中Autowiring。服务是相互使用的,最终在单一入口点(Controller)中使用。现在有新的要求:实现X的多个版本,并根据入口点的参数(枚举XType)来决定使用哪个版本。在不改变服务的情况下这样做会很好。我的解决方案想法是创建自定义范围UsesX并实现BeanFactoryPostProcessor,这会将每个带有UsesX的BeanDefinition转换为每个XType的单例集。此外,它将向该bean添加限定符,以便为X和Controller中基于参数的选择创建工厂方法成为可能。但是如何隐式地将此限定符添加到服务中的@Au
我可以将context:annotation-config放在我的XML配置中,它会自动注入(inject)bean类而不需要任何注释是否正确?所以不要使用这些注解类型:publicclassMailman{privateStringname;@AutowiredprivateParcelParcel;publicMailman(Stringname){this.name=name;}@AutowiredpublicvoidsetParcel(ParcelParcel){this.Parcel=Parcel;}@AutowiredpublicvoiddirectionsToParcel