Questions tagged «autowired»

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

10
在Spring Framework中@Inject和@Autowired有什么区别?在什么条件下使用哪一个?
我正在SpringSource上浏览一些博客,在其中一个博客中,作者正在使用@Inject,我想他也可以使用@Autowired。 这是一段代码: @Inject private CustomerOrderService customerOrderService; 我不知道之间的区别@Inject和@Autowired,如果有人解释他们的区别将不胜感激,什么情况下要使用哪一个?

18
为什么我的Spring @Autowired字段为空?
注意:这旨在作为常见问题的规范答案。 我有一个带有字段()的Spring @Service类(MileageFeeCalculator),但是该字段是我尝试使用它时所用的。日志显示该bean和该bean都在创建,但是每当我尝试在服务bean上调用该方法时,都会得到一个a 。Spring为什么不自动接线该领域?@AutowiredrateServicenullMileageFeeCalculatorMileageRateServiceNullPointerExceptionmileageCharge 控制器类: @Controller public class MileageFeeController { @RequestMapping("/mileage/{miles}") @ResponseBody public float mileageFee(@PathVariable int miles) { MileageFeeCalculator calc = new MileageFeeCalculator(); return calc.mileageCharge(miles); } } 服务等级: @Service public class MileageFeeCalculator { @Autowired private MileageRateService rateService; // <--- should be autowired, is null public float mileageCharge(final int miles) { …

11
Spring的自动布线如何工作?
我对control(IoC)的反转如何在Spring。 说我有一个称为服务的类UserServiceImpl,它实现了UserService接口。 怎么会这样@Autowired? 而在我Controllers,我怎么会instantiate在instance这个服务的? 我会做以下事情吗? UserService userService = new UserServiceImpl();

14
春季:@Component与@Bean
我了解到@Component注释是在Spring 2.5中引入的,目的是通过使用类路径扫描摆脱xml bean的定义。 @Bean 是在3.0版本中引入的,可以与 @Configuration以完全摆脱xml文件并改用java config。 是否有可能重新使用@Component注释而不是引入@Bean注释?我的理解是,两种情况下的最终目标都是创建bean。

11
@Resource vs @Autowired
我应该在DI中使用哪个注释@Resource(jsr250)或@Autowired(特定于Spring)? 我已经成功地在过去使用两种,@Resource(name="blah")和@Autowired @Qualifier("blah") 我的直觉是坚持使用该@Resource标签,因为它已被jsr人士批准。 有人对此有强烈的想法吗?

3
了解Spring @Autowired用法
我正在阅读spring 3.0.x参考文档,以了解Spring Autowired注释: 3.9.2 @Autowired和@Inject 我无法理解以下示例。我们需要在XML中做一些工作才能使其工作吗? 例子1 public class SimpleMovieLister { private MovieFinder movieFinder; @Autowired public void setMovieFinder(MovieFinder movieFinder) { this.movieFinder = movieFinder; } // ... } 实施例2 public class MovieRecommender { private MovieCatalog movieCatalog; private CustomerPreferenceDao customerPreferenceDao; @Autowired public void prepare(MovieCatalog movieCatalog, CustomerPreferenceDao customerPreferenceDao) { this.movieCatalog = movieCatalog; this.customerPreferenceDao …

9
Spring @Autowired用法
在Spring会连接的类中使用@Autowired的优缺点是什么? 只是为了澄清一下,我是在专门讨论@Autowired注释,而不是XML的自动装配。 我可能只是不了解它,但是对我来说,这几乎像是一种反模式-您的类开始意识到它们与DI框架相关联,而不仅仅是POJO。也许我是一个受惩罚的but嘴,但我喜欢为bean使用外部XML配置,并且我喜欢进行显式的布线,因此我确切知道在哪里布线。
218 java  spring  autowired 

5
自动装配实现相同接口的两个bean-如何将默认bean设置为自动装配?
背景: 我有一个Spring 2.5 / Java / Tomcat应用程序。下面的bean在整个应用程序中的许多地方都使用过 public class HibernateDeviceDao implements DeviceDao 以下是新的bean: public class JdbcDeviceDao implements DeviceDao 第一个bean的配置如下(包含了软件包中的所有bean) <context:component-scan base-package="com.initech.service.dao.hibernate" /> 第二个(新)bean是单独配置的 <bean id="jdbcDeviceDao" class="com.initech.service.dao.jdbc.JdbcDeviceDao"> <property name="dataSource" ref="jdbcDataSource"> </bean> 启动服务器时,这(当然)会导致异常: 嵌套的异常是org.springframework.beans.factory.NoSuchBeanDefinitionException:没有定义[com.sevenp.mobile.samplemgmt.service.dao.DeviceDao]类型的唯一bean:期望的单个匹配bean,但发现2:[deviceDao,jdbcDeviceDao] 从试图像这样自动装配bean的类中 @Autowired private DeviceDao hibernateDevicDao; 因为有两个bean实现相同的接口。 问题: 是否可以配置bean,以便 1.我不必对现有的类进行更改,因为这些类已经HibernateDeviceDao自动接线 2.仍然可以像这样使用第二个(新)bean: @Autowired @Qualifier("jdbcDeviceDao") 也就是说,我需要一种将HibernateDeviceDaobean 配置为自动装配的默认bean的方法,同时允许在JdbcDeviceDao带有@Qualifier注释的显式指定中同时使用the 。 我已经尝试过的: 我尝试设置属性 autowire-candidate="false" …


4
场注入到底是什么?如何避免?
我在有关Spring MVC和Portlet的一些帖子中读到,不建议使用字段注入。据我了解,字段注入是当您使用以下方式注入Bean时@Autowired: @Component public class MyComponent { @Autowired private Cart cart; } 在研究期间,我还阅读了有关构造函数注入的信息: @Component public class MyComponent { private final Cart cart; @Autowired public MyComponent(Cart cart){ this.cart = cart; } } 这两种类型的注射都有哪些优缺点? 编辑1:由于此问题被标记为该问题的重复,我检查了它。因为在问题和答案中都没有任何代码示例,所以我不确定我所使用的注入类型是否正确。

7
如何在Spring中使用Mockito模拟自动装配的@Value字段?
我正在使用Spring 3.1.4.RELEASE和Mockito 1.9.5。在我的春季班上,我有: @Value("#{myProps['default.url']}") private String defaultUrl; @Value("#{myProps['default.password']}") private String defaultrPassword; // ... 从我目前设置的JUnit测试中可以看到: @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration({ "classpath:test-context.xml" }) public class MyTest { 我想为“ defaultUrl”字段模拟一个值。请注意,我不想模拟其他字段的值,我想保留它们的值,只保留“ defaultUrl”字段。另外请注意,setDefaultUrl我的班级中没有明确的“ setter”方法(例如),并且我不想仅为测试目的而创建任何方法。 鉴于此,我该如何模拟该字段的值?

1
了解spring @Configuration类
在理解“ Spring @Autowired用法”这个问题之后,我想为弹簧接线的另一个选项(@Configuration类)创建一个完整的知识库。 假设我有一个看起来像这样的spring 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" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <import resource="another-application-context.xml"/> <bean id="someBean" class="stack.overflow.spring.configuration.SomeClassImpl"> <constructor-arg value="${some.interesting.property}" /> </bean> <bean id="anotherBean" class="stack.overflow.spring.configuration.AnotherClassImpl"> <constructor-arg ref="someBean"/> <constructor-arg ref="beanFromSomewhereElse"/> </bean> </beans> 我该如何使用@Configuration呢?它对代码本身有影响吗?

6
@Autowired和静态方法
我有@Autowired必须从静态方法中使用的服务。我知道这是错误的,但是我无法更改当前的设计,因为这需要大量的工作,因此我需要一些简单的技巧。我不能更改randomMethod()为非静态,而需要使用此自动装配的bean。有什么线索怎么做? @Service public class Foo { public int doStuff() { return 1; } } public class Boo { @Autowired Foo foo; public static void randomMethod() { foo.doStuff(); } }
100 java  spring  static  autowired 


2
在另一个bean的构造函数中引用时,@ Autowired bean为null
下面显示的是我尝试引用我的ApplicationProperties bean的代码片段。当我从构造函数中引用它时,它为null,但是从另一个方法中引用时,它很好。到现在为止,我在其他类中使用此自动装配的bean都没有问题。但这是我第一次尝试在另一个类的构造函数中使用它。 在下面的代码段中,当从构造方法调用时,applicationProperties为null,但在convert方法中引用时,则为null。我在想什么 @Component public class DocumentManager implements IDocumentManager { private Log logger = LogFactory.getLog(this.getClass()); private OfficeManager officeManager = null; private ConverterService converterService = null; @Autowired private IApplicationProperties applicationProperties; // If I try and use the Autowired applicationProperties bean in the constructor // it is null ? public DocumentManager() { …
89 java  spring  autowired 

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.