Questions tagged «autowired»

自动装配是DI容器功能,其中将根据某些条件自动查找依赖项。

16
@Autowired-未找到依赖类型的合格bean
我通过使用Spring和Hibernate为服务创建实体,服务和JUnit测试来开始我的项目。所有这些都很好。然后,我添加了spring-mvc来使用许多不同的分步教程来制作此Web应用程序,但是当我尝试使用@Autowired注释制作Controller时,在部署过程中会从Glassfish中得到错误提示。我猜出于某种原因,Spring无法看到我的服务,但是经过多次尝试,我仍然无法处理它。 测试服务 @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = {"classpath:/beans.xml"}) 和 @Autowired MailManager mailManager; 正常工作。 也没有@Autowired的控制器,我可以在Web浏览器中打开项目而不会遇到麻烦。 /src/main/resources/beans.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:util="http://www.springframework.org/schema/util" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_2_0.xsd"> <context:property-placeholder location="jdbc.properties" /> <context:component-scan base-package="pl.com.radzikowski.webmail"> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" /> </context:component-scan> <!--<context:component-scan base-package="pl.com.radzikowski.webmail.service" …

9
从Spring自动装配中排除子包?
在Spring 3.1中,有没有一种简单的方法可以将程序包/子程序包排除在自动装配之外? 例如,如果我想在的基本软件包中包括组件扫描,com.example是否有一种简单的方法可以排除com.example.ignore? (为什么?我想从集成测试中排除一些组件)
82 spring  autowired 

6
如何在Spring中自动装配通用类型<T>的Bean?
我有一个Item&lt;T&gt;需要在@Configuration类中自动装配的bean 。 @Configuration public class AppConfig { @Bean public Item&lt;String&gt; stringItem() { return new StringItem(); } @Bean public Item&lt;Integer&gt; integerItem() { return new IntegerItem(); } } 但是当我尝试时@Autowire Item&lt;String&gt;,出现以下异常。 "No qualifying bean of type [Item] is defined: expected single matching bean but found 2: stringItem, integerItem" 如何Item&lt;T&gt;在Spring中自动装配通用类型?

6
在测试过程中注入@Autowired私有字段
我有一个组件安装程序,它实际上是一个应用程序的启动器。它的配置如下: @Component public class MyLauncher { @Autowired MyService myService; //other methods } MyService带有@ServiceSpring注释,并自动连接到我的启动器类中,没有任何问题。 我想为MyLauncher编写一些jUnit测试用例,为此,我启动了一个这样的类: public class MyLauncherTest private MyLauncher myLauncher = new MyLauncher(); @Test public void someTest() { } } 我可以为MyService创建一个Mock对象,然后将其注入测试类中的myLauncher吗?由于Spring正在处理自动装配,因此我目前在myLauncher中没有吸气剂或吸气剂。如果可能的话,我不想添加getter和setter。我可以告诉测试用例使用@Beforeinit方法将模拟对象注入自动装配的变量中吗? 如果我要彻底解决这个问题,请随意说。我还是这个新手。我的主要目标是只具有一些Java代码或注释,即可将模拟对象放入该@Autowired变量中,而无需编写setter方法或使用applicationContext-test.xml文件。我宁愿在.java文件中维护测试用例的所有内容,而不必只为测试维护单独的应用程序内容。 我希望将Mockito用于模拟对象。过去,我是通过使用org.mockito.Mockito和创建对象来完成此操作的Mockito.mock(MyClass.class)。

1
Spring在没有@Autowired注解的情况下将依赖项注入构造函数中
我正在尝试这个官方Spring教程中的示例,并且对此代码有依赖性:https : //github.com/spring-guides/gs-async-method/tree/master/complete 如果您看一下AppRunner.java 课堂上的代码,我有两个问题: 服务器启动时,如果我在此类的构造函数中放置一个断点,则看起来像在构造函数中,GitHubLookupService是由spring提供的,使用@Service配置bean。但是,@Autowired构造函数上没有注释,那么在世界上该构造函数如何以正确的依赖关系进行调用?应该是null。 这是Spring Boot的自动假设吗? Spring是否看到“私有字段+构造函数参数”,并且假定它应该寻找合适的bean? 是Spring Framework还是Spring boot? 我缺少什么了吗? 如我所记得,必须为bean /服务等提供默认构造函数。为什么此类(AppRunner)没有默认构造函数?Spring如何知道应该使用参数运行构造函数?是因为它是唯一的构造函数吗?

5
在独立的Java应用程序中使用Spring 3 autowire
这是我的代码: public class Main { public static void main(String[] args) { Main p = new Main(); p.start(args); } @Autowired private MyBean myBean; private void start(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("META-INF/config.xml"); System.out.println("my beans method: " + myBean.getStr()); } } @Service public class MyBean { public String getStr() { return …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.