Spring組件自動掃描詳解及實(shí)例代碼
問題描述
一個(gè)系統(tǒng)往往有成千上萬的組件,如果需要手動將所有組件都納入spring容器中管理,是一個(gè)浩大的工程。
解決方案
Spring 提供組件掃描(component scanning)功能。它能從classpath里自動掃描、偵測和實(shí)例化具有特定注解的組件。基本的注解是@Component,它標(biāo)識一個(gè)受Spring管理的組件。其他特定的注解有@Repository、@Service和@Controller,它們分別標(biāo)識了持久層、服務(wù)處和表現(xiàn)層的組件。
實(shí)現(xiàn)方法
User.Java
package com.zzj.bean;
import javax.annotation.Resource;
import org.springframework.stereotype.Component;
@Component
public class User {
@Resource
private Car car;
public void startCar(){
car.start();
}
}
Car.java
package com.zzj.bean;
import org.springframework.stereotype.Component;
@Component
public class Car {
public void start(){
System.out.println("starting car...");
}
}
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:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
context:component-scan base-package="com.zzj.bean"/>
/beans>
注意:當(dāng)開啟Spring的自動掃描功能以后,自動注入的功能也開啟了。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
您可能感興趣的文章:- Spring MVC 注解自動掃描失效原因分析
- Spring自動掃描無法掃描jar包中bean的解決方法