1、@Autowiredjava
spring2.5引入@Autowired 註解。用於對類的成員變量,方法及構造函數進行注入。取代了get、set方法: spring
// create and configure beans ApplicationContext context = new ClassPathXmlApplicationContext("services.xml", "daos.xml"); // retrieve configured instance PetStoreService service = context.getBean("petStore", PetStoreService.class); // use configured instance List<String> userList = service.getUsernameList();
註解形式函數
@Autowired 默認byType形式
@Autowired @Qualifier("beanId") 使用byName形式
@Autowired( required=false) 使用byType形式,注入值不存在,能夠爲nullui
2、@Resourcethis
JSR-250 註解prototype
註解形式code
@Resource 默認byName形式
@Resource(name="loginService") 使用byName形式
@Resource(type="") 使用byType形式xml
注意:
@Resource 默認byName 注入。name能夠是字段名。當找不到匹配的bean才按類型裝配。對象
3、細節問題資源
@Autowired ( autowire屬性 )
byType 發現多個bean或沒有,拋異常
byName 指定名稱,沒有,拋異常
Contructor 沒有,拋異常
autodetect 決定默認狀況下,用byType仍是Contructor
@Resource
跟@Autowired 相似,不過@Resource 默認按照名稱式匹配,匹配不成功能夠按照類型匹配,固然若是指定了name,則只按名稱進行匹配。
@Service
使用組件掃描時,默認將使用此註解的類的第一字母小寫做爲bean的id生成bean。能夠使用@Service("myName"),指定要生成的bean的id。
@Scope
在配置bean時,能夠對其做用域進行限制。 默認爲singleton,單一實例。也能夠設置做用域爲 prototype,任意數量的對象實例。
<!-- A bean definition with singleton scope --> <bean id="..." class="..." scope="singleton"> <!-- collaborators and configuration for this bean go here --> </bean>
除了,在配置文件中進行配置。還能夠使用註解:
@Service("userXxx")@Scope("prototype") public class UserServiceImpl implements UserXxx { …… }
在添加註解的相應的類中,若是想初始化或銷燬某個方法,咱們能夠直接在方法上添加註解,以下:
@PostConstruct public void addItem() { System.out.println("初始化方法"); }
``` @PreDestroy
public void testItem() {
System.out.println("釋放資源");
} ```