1. 程式人生 > >14.Spring-註解替代xml配置

14.Spring-註解替代xml配置

QQ群:Java資料共享群 59174518

新增jar包,和加入約束.然後在配置檔案裡面填在註解的掃描 在這裡插入圖片描述

package vc.helloworld.SpringBean;

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.
context.annotation.Scope; import org.springframework.stereotype.Service; //註解裡面的值就是bean標籤裡面的name @Service("userYaDang") // <bean name="user" class="vc.helloworld.SpringBean.UserYaDang"> 這個註解就相當於這樣 // @Controller("userYaDang") // @Component("userYaDang") // @Repository("userYaDang") // @Scope註解跟bena標籤裡面的scope屬性一樣的功能,設定這個物件在ApplicationContext容器裡面是不是單例的還是多例的
@Scope(scopeName = "singleton") // 單例是預設值,如果是單例的話就不用加了 public class UserYaDang { // 給name屬性注入一個叫 亞當的名字. 就是bean裡面的<property name="name" value="亞當"></property> // 但是這樣破壞了封裝性 @Value("亞當") private String name; private Integer age; // 生命週期方法的新增 @PostConstruct // 這個註解新增之後,這個物件在建立之前,呼叫這個方法
public void init() { System.out.println("生命週期的init方法."); } // 這兩個方法必須新增Serlvet的依賴. @PreDestroy // 這個註解新增之後,這個物件在銷燬之後,呼叫這個方法 public void destory() { System.out.println("生命週期的銷燬方法"); } // 引用型別的賦值, 首先要把這個要引入的物件新增在容器中 // 使用@Autowire就可以把這個UserXiaWa注入過來 // 翻譯過來就是自動裝配,是根據型別來檢測來找物件,如果檢測到了,就把這個物件賦值給這裡 // 如果匹配多個型別一致的物件,將無法選擇具體注入哪個物件. // @Qualifier("bean的name") 可以使用這個註解來解決 // @Resource(name="bean的name") 直接使用這個註解可以指定那個名稱的物件 @Autowired private UserXiaWa userXiaWa; @Override public String toString() { return "UserYaDang [name=" + name + ", age=" + age + ", userXiaWa=" + userXiaWa + "]"; } public String getName() { return name; } public void setName(String name) { this.name = name; } // 這是第二種屬性值注入方式,@Value註解讓在set方法上面 @Value("22") public void setAge(Integer age) { this.age = age; } public Integer getAge() { return age; } public UserXiaWa getUserXiaWa() { return userXiaWa; } public void setUserXiaWa(UserXiaWa userXiaWa) { this.userXiaWa = userXiaWa; } public UserYaDang(String name, Integer age, UserXiaWa userXiaWa) { super(); this.name = name; this.age = age; this.userXiaWa = userXiaWa; } public UserYaDang() { super(); System.out.println("亞當建立完畢..."); } }