1. 程式人生 > >註解配置Spring

註解配置Spring

使用註解配置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 + "]";
	}
	
}