1. 程式人生 > >Spring註解方式建立的物件為單例

Spring註解方式建立的物件為單例

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();

輸出結果
這裡寫圖片描述