Spring註解方式建立的物件為單例
阿新 • • 發佈:2019-01-09
Java建立物件和對物件賦值(屬性)都可以通過Spring的方式來完成
一種方式是通過配置XML檔案
另一種方式是通過註解的方式
註解建立的物件是單例的。
(1)配置檔案,進行掃描
<context:component-scan base-package="包名"></context:component-scan>
%對包中的類、方法、屬性進行掃描
(2)建立物件
%建立了一個UserInsert的類併為該類建立了一個物件(例項化)(沒有名字)
import org.springframework.stereotype.Repository;
@Repository
public class UserInsert {
int i=0;
public void add(){
System.out.println("UserInser Add Method");
}
public void test(){
System.out.println(i);
i++;
System.out.println(i);
}
}
(3)註解注入物件
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service(value="userservice")
public class UserService {
@Autowired
private UserInsert userinser;%獲取前面建立的物件
public void add(){
System.out.println("Service Add Mether");
userinser.add();
userinser.test();
}
}
通過該方法建立的物件是單例的
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service(value="userservice")
public class UserService {
@Autowired
private UserInsert userinser1;%獲取前面註解的物件(物件的注入)
public void add(){
System.out.println("Service Add Mether");
userinser1.add();
userinser1.test();
}
@Autowired
private UserInsert userinser2;%獲取前面註解的物件(物件的注入)
public void add1(){
System.out.println("Add1 Mether");
userinser2.add();
userinser2.test();
}
}
userinser1和userinser2是同一個物件,註解對的方式是通過類別來識別的不是名字。
public static void main(String [] agrs){
ApplicationContext context1=new ClassPathXmlApplicationContext("applicationContext.xml");
UserService adv=(UserService)context1.getBean("userservice");
adv.add();
adv.add1();
輸出結果