我定义了一个bean在Spring上下文文件'Application ationContext.xml'如下所示:
<bean id="daoBean" class="org.mockito.Mockito" factory-method="mock">
<constructor-arg value="com.xxx.DAOImpl" />
</bean>
在我的服务类(ServiceImpl)中,我使用如下bean:
@Component("serviceImpl")
public class ServiceImpl{
// other code here
@Autowired
private transient DAOImpl daoBean;
// other code here
}
正在从JUnit测试类访问我的服务类。
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "/applicationContext.xml" })
public class JUnitTest{
// other code here
@Autowired
private transient ServiceImpl serviceImpl;
// test cases are here
}
当我执行测试用例时,它会给出错误提示:
创建名为“ServiceImpl”的bean时出错:自动连线依赖项的注入失败;嵌套的异常是org。springframework。豆。工厂BeanCreationException:无法自动连接字段:private transient com。xxx。DAOImpl
当我从服务类中删除@Autow0009并使用@Resources(name="daoBean")时,测试用例工作正常。
public class ServiceImpl{
// other code here
@Resource(name = "daoBean")
private transient DAOImpl daoBean;
// other code here
}
我的问题是为什么在这种情况下@Autowung不起作用?我需要用@Autowoe配置其他任何东西吗,这样它才能正常工作。我不想改变我的服务层类来将@Autowoe替换为@Resources。
Mockito。mock()
有一个通用的返回类型T
,它在运行时被删除,因此Spring无法推断创建的mock的类型,它将在Spring上下文中简单地注册为对象
。这就是为什么@Autowired
不起作用(因为它试图按依赖项的类型查找依赖项)。
看看这个问题的答案。
问题内容: 您可以在不使用元素的情况下在Spring application-context.xml文件中创建列表吗? 我有一个其构造函数带有对象的bean,并且我想通过“ value”属性传递整个列表。原因是此值来自.properties文件,您无法在.properties文件中定义列表。 我想做这样的事情…可能吗? MyClass.java: application-context.xml:
我们如何使用Spring Boot在Web应用程序构建的Web应用程序上下文中找到所有bean。我看到了许多从应用程序上下文中获取bean但不从Web应用程序上下文中获取bean的示例。
但是,我有一个组件,它注入了EurekaClient来从中获取服务实例 因此,从这个服务开始,我的应用程序无法加载ApplicationContext。 到目前为止我所尝试的 解决这个问题的恰当方法是什么?
问题内容: app.py test.py 我正在将 应用程序 导入到 test.py中 以进行单元测试。在将’ before_request ‘函数调用到test.py中时,它会抛出RuntimeError:在应用程序上下文之外工作同样会在调用’ input_info() ‘时发生 问题答案: Flask有一个Application Context ,似乎您需要执行以下操作: 您可能还可以将调用推
问题内容: Spring框架中Application context和bean factory的简单词义。 问题答案: BeanFactory厂 该是初始化,配置实际的容器,并管理多个bean。这些bean通常彼此协作,因此彼此之间具有依赖性。这些依赖关系反映在所使用的配置数据中(尽管某些依赖关系可能不会作为配置数据可见,而是在运行时Bean之间的编程交互作用的函数)。 ApplicationCo
我有一个spring boot应用程序abc.myapp.war,它部署在外部tomcat服务器上。默认情况下,tomcat使用war文件名作为部署的应用程序的上下文路径,因此它变成http://localhost:8080/abc.myapp,但我希望有一个自定义的上下文路径,如http://localhost:8080/abc/myapp。我阅读了其他帖子,他们建议在tomcat的server