草庐IT

autowired

全部标签

Spring @Autowireing 与通用工厂构建的 bean

我有一组具有复杂初始化方案的类。基本上,我从需要获取的接口(interface)开始,然后进行大量调用,最终得到一个实现该接口(interface)的对象。为了处理这个问题,我创建了一个工厂类,它可以在给定接口(interface)的情况下生成最终对象。我把这个工厂变成了一个bean,在XML中我指定了我的各种服务bean,通过这个工厂对象实例化,并带有它们将实现的接口(interface)的参数。这很好用,我完全得到了我需要的bean。不幸的是,我想从我的Controller类中访问它们,这些是通过组件扫描发现的。我在这里使用@Autowired,似乎Spring不知道这些是什么类型

spring - 单例和 @Autowired 返回 NULL

我有一个存储库管理器来管理我的存储库。我有@Autowired来实例化我的属性,但它们始终为空。bean在我的xml中正确配置。有什么原因吗?publicclassRepositoryManager{privatestaticRepositoryManagerinstance;privateRepositoryManager(){}publicstaticRepositoryManagerInstance(){if(instance==null)instance=newRepositoryManager();returninstance;}@AutowiredprivateIUserR

spring - 如何@Autowire 验证器类中的对象?

是否可以在Validation类中Autowiring对象?对于应该是Autowired的对象,我一直为null... 最佳答案 您的验证类是启用的Springbean吗?如果没有,您的对象Autowiring总是会为null。确保您已启用验证类。并且不要忘记启用注释配置bean后处理器(请参阅元素)如何启用您的验证类作为托管Springbean。要么1°通过使用xml(如上图)2°改用注解(注意@Component就在类的上方)@ComponentpublicclassAccessRequestValidatorimplement

java - 了解 Spring Boot @Autowired

我不明白SpringBoot的注释@Autowired是如何正确工作的。这是一个简单的例子:@SpringBootApplicationpublicclassApp{@AutowiredpublicStarterstarter;publicstaticvoidmain(String[]args){SpringApplication.run(App.class,args);}publicApp(){System.out.println("initApp");//starter.init();}}--@RepositorypublicclassStarter{publicStarter()

java - 使用 JMockit 模拟 Autowiring 的接口(interface)实现

我们正在为一个使用SpringAutowiring注入(inject)依赖项的类编写JUnit测试,该依赖项是接口(interface)的某个实例。由于被测类从未显式实例化依赖项或将其传递给构造函数,因此JMockit似乎也没有义务实例化它。到目前为止,我们一直在使用SpringRunner为我们加载Spring模拟依赖项,这很有效。我们不喜欢的两件事是1)每次运行测试时都必须加载和初始化Spring框架,这并不十分快速,以及2)我们被迫将所有模拟依赖项显式创建为真实类,这JMockit有助于消除。这是我们正在测试的一个简化示例:publicclassUnitUnderTest{@Au

在 Cobertura 检测类的情况下,Spring @Autowired 失败

问题Cobertura仪器在特定情况下会破坏Autowiring的Spring。有谁知道如何解决这个问题?场景我正在运行带有cobertura-maven-plugin版本2.5.1的MVN3.0.4。mvn测试运行没有问题mvncompile、package等也可以正常运行。mvncobertura:cobertura在添加2个新功能之前也没有任何问题,这些新功能引入了许多新类,包括两个新的com.mycompany.executor执行器类。(示例:除了现有的MyExecutor之外,还添加了MyHappyExecutor和MySadExecutor)从cobertura检测过程中

java - Spring Data Repository Autowiring 失败

我在这个问题上工作了很长一段时间,但无法让它工作。希望你们中的一些人能抽出时间来帮助我。场景我正在构建一个使用SpringMVC的Web应用程序。这个webapp应该使用另一个包含持久层的Maven项目。持久层目前只包含一个服务和一个SpringData存储库。持久层本身对本地MySQL实例起作用。我的问题我对持久层进行了JUnit测试。测试加载并保存实体。这是通过服务处理的。两种操作都可以正常工作。现在我正在webapp的Maven项目中的JUnit测试中尝试相同的方法。我再次尝试保存和加载实体。但这一次失败了。Spring声明服务内部的Repository引用无法Autowirin

java - Spring 中基于泛型类型的 Autowiring 。它是如何工作的?

如您所知,Spring4中有一个新特性:基于泛型类型的Autowiring。它非常有用,但我想知道Spring开发人员是如何绕过类型删除的,这使他们以前无法开发此类功能。 最佳答案 删除意味着信息从运行时中消失了。它仍然存在于编译时信息中,您可以通过反射访问这些信息。粗略地讲,您可以认为有关单个instances的通用信息已被删除,但有关类的通用信息不会。例如,这是一个定义泛型方法的简单程序foo然后从main打印出关于它的通用信息:importjava.util.*;importjava.lang.reflect.*;public

java - 如何禁用某个 bean 的 Spring Autowiring ?

jar(外部库)中有一些类在内部使用Spring。所以库类的结构如下:@ComponentpublicclassTestBean{@AutowiredprivateTestDependencydependency;...}并且库提供了构造对象的API:publicclassLibrary{publicstaticTestBeancreateBean(){ApplicationContextcontext=newAnnotationConfigApplicationContext(springConfigs);returncontext.getBean(TestBean);}}在我的应用

spring - Spring @autowired 是否不适用于非单例容器?

我有一个MyTask实现Runnable的类并且在任何给定时刻都可以实例化许多这样的对象。我想将某些属性Autowiring到MyTask类。但我认为如果我标记MyTask与@Component那么它将成为一个Spring管理的单例对吗?这不是我想要的,我需要这个类的许多独立实例由TaskExecutor运行。所以我的问题:a)我对@Component的理解是否存在根本性错误?注解?它不会使MyTask变成Spring管理的单例?b)是否应该使用其他注释以便spring检测到@Autowired并注入(inject)属性?c)SpringAutowiring是否不适用于非单件容器/类,