1.使用@Inject和@Named進行依賴注入
(1) Spring提供了對JSR 330標準注解的支持,因此我們也可以使用JSR 330標準注解來進行依賴注入,不過,在此之前,我們得先使用maven添加相關依賴,如下
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
</dependency>
(2) JSR 330標準注解提供了@Inject注解進行依賴注入,它的作用同@Autowired,我們可以將它用于變數,方法或建構式引數上,如下
@Component
public class ExampleA {
//使用@Inject注解,來進行依賴項的注入,它的作用跟@Autowired是完全一樣的,只不過它是java提供的注解,Spring對其作了實作
@Inject
private ExampleB exampleB;
private ExampleC exampleC;
@Inject
public ExampleA(ExampleC exampleC) {
this.exampleC = exampleC;
}
}
(3) @Named注解的作用同@Qualifier注解,也是指定候選的bean的名稱,排除其他依賴項的干擾
@Component
public class ExampleA {
//使用@Named注解標識候選bean的名稱,如果容器中存在多個ExampleB實體,則選擇其中bean的名稱為exampleB的那個bean進行注入
@Inject
@Named("exampleB")
private ExampleB exampleB;
}
2.@Named注解與@ManagedBean注解
(1) @Named注解與JSR 250中的注解@ManagedBean可以用來替換掉@Component注解,如下
//使用@Named注解定義一個bean,沒錯,@Named注解還可用在類上,用于宣告一個bean,下面這個例子等同于@Component("aaa")
@Named("aaa")
public class ExampleA { }
//此外,我們還可以用@ManagedBean注解來宣告一個bean
@ManagedBean("bbb")
public class ExampleB { }
//開啟注解掃描,則Spring也會把被@Named注解與@ManagedBean注解標注的bean添加至容器中
@Configuration
@ComponentScan(basePackages = "cn.example.spring.boke")
public class Config { }
(2) @Component注解可以組合衍生出其他注解,如@Service,@Controller注解等,而@Named注解與@ManagedBean注解不具備這一功能
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/544252.html
標籤:Java
上一篇:day13-自定義攔截器
下一篇:3. 投票 案例專案(合集)
