註解配置Spring
阿新 • • 發佈:2018-12-26
使用註解配置Spring
步驟:
1.導包4+2+spring-aop
2.為主配置檔案引入新的名稱空間(約束)
將配置檔案以xml Editor形式開啟
切換到design介面,右擊beans,點選edit NameSpaces...
點選Specify New Namespace 點選browse
選擇select XML Catalog entry 找到自己的schema檔案
引入完畢~
3.開啟使用註解代理配置檔案
<!--指定掃描根目錄下的 所有類中的註解 注意:掃描包時,會掃描指定目錄的子孫包 --> <context:component-scan base-package="cn.hncu"></context:component-scan>
4.在類中使用註解完成配置
//<bean name="user" class="cn.itcast.bean.User" />
將物件註冊到容器
@Component("user")
@Service("user") // service層
@Controller("user") // web層
@Repository("user")// dao層
修改物件的作用範圍
指定物件的作用範圍@Scope(scopeName="singleton")
值型別引入
引用型別引入:
@Autowired 自動裝配 //問題:如果匹配多個型別一致的物件.將無法選擇具體注入哪一個物件
@Qualifier("car2")//使用@Qualifier註解告訴spring容器自動裝配哪個名稱的物件
@Resource(name="car")//手動注入,指定注入哪個名稱的物件
初始化|銷燬方法
@PostConstruct //在物件被建立後呼叫.init-method
@PreDestroy //在銷燬之前呼叫.destory-method
package cn.hncu.bean; import javax.annotation.PostConstruct; import javax.annotation.PreDestroy; import javax.annotation.Resource; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; //<bean name="user" class="cn.itcast.bean.User" /> @Component("user") //@Service("user") // service層 //@Controller("user") // web層 //@Repository("user")// dao層 //指定物件的作用範圍 @Scope(scopeName="singleton") public class User { private String name; @Value("18") private Integer age; //@Autowired //自動裝配 //問題:如果匹配多個型別一致的物件.將無法選擇具體注入哪一個物件. //@Qualifier("car2")//使用@Qualifier註解告訴spring容器自動裝配哪個名稱的物件 @Resource(name="car")//手動注入,指定注入哪個名稱的物件 private Car car; public Car getCar() { return car; } public void setCar(Car car) { this.car = car; } public String getName() { return name; } @Value("tom") public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } @PostConstruct //在物件被建立後呼叫.init-method public void init(){ System.out.println("我是初始化方法!"); } @PreDestroy //在銷燬之前呼叫.destory-method public void destory(){ System.out.println("我是銷燬方法!"); } @Override public String toString() { return "User [name=" + name + ", age=" + age + ", car=" + car + "]"; } }