Spring組件自動(dòng)掃描詳解及實(shí)例代碼
問(wèn)題描述
一個(gè)系統(tǒng)往往有成千上萬(wàn)的組件,如果需要手動(dòng)將所有組件都納入spring容器中管理,是一個(gè)浩大的工程。
解決方案
Spring 提供組件掃描(component scanning)功能。它能從classpath里自動(dòng)掃描、偵測(cè)和實(shí)例化具有特定注解的組件?;镜淖⒔馐茾Component,它標(biāo)識(shí)一個(gè)受Spring管理的組件。其他特定的注解有@Repository、@Service和@Controller,它們分別標(biāo)識(shí)了持久層、服務(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)開(kāi)啟Spring的自動(dòng)掃描功能以后,自動(dòng)注入的功能也開(kāi)啟了。
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
您可能感興趣的文章:- Spring MVC 注解自動(dòng)掃描失效原因分析
- Spring自動(dòng)掃描無(wú)法掃描jar包中bean的解決方法