第一種使用配置類的方式
1、建立乙個bean
package com.springbean;
public class person
public void setname(string name)
public void setage(integer age)
public string getname()
public integer getage()
@override
public string tostring() ';
}}2、建立配置類:
import com.springbean.person;
import org.springframework.context.annotation.bean;
import org.springframework.context.annotation.configuration;
@configuration
public class personconfig }
3、測試
import com.spring.config.personconfig;
import com.springbean.person;
import org.springframework.context.applicationcontext;
import org.springframework.context.annotation.annotationconfigapplicationcontext;
public class applicationtest } }
和xml配置檔案一樣,預設的bean是單例的,如果需要改變為prototype,xml配置檔案裡是加上scope="prototype",這裡personconfig配置類中需要加上註解@scope("prototype")。
介紹一下bean的幾種型別的作用域。
不加註解測試:
applicationcontext applicationcontext = new annotationconfigapplicationcontext(personconfig.class);
person bean = applicationcontext.getbean(person.class);
person bean2 = applicationcontext.getbean(person.class);
system.out.println(bean==bean2);//列印結果為true
加上註解@scope("prototype")測試:
applicationcontext applicationcontext = new annotationconfigapplicationcontext(personconfig.class);
person bean = applicationcontext.getbean(person.class);
person bean2 = applicationcontext.getbean(person.class);
system.out.println(bean==bean2);
//列印結果為fale
我們也可以改變單例時ioc載入的時候就建立例項,只要在我們的personconfig配置類中加上@lazy註解,使用懶載入。測試
public class applica程式設計客棧tiontest */
}}這是時列印欄將不會列印出「已經建立例項」,就實現的單例情況下的懶載入。
第二種使用@import註解的方式
新建乙個student類
public class student
在配置類personconfig上使用@import註解,這裡面可以傳入乙個陣列,用大括號{}
@configuration
@import()
public class personconfig
}列印結果:com.springbean.student@2c34f934 ,注入成功
還可以在@import中加入importselector的實現類來實現bean的注入
建立parent和teacher類
public class parent
public class teacher
建立importselector的實現類myimportselector,返回需要注入的bean,這裡是全類名
public class myimportselector implements importselector;
}}修改personconfig,這裡傳入實現類myimportselector
@configuration
@import()
public class personconfig {
測試:parent parent = applicationcontext.getbean(parent.class);
teacher teacher = applicationcontext.getbean(teacher.class);
system.out.println(parent);
system.out.println(teacher);
列印結果:
com.springbean.parent@3b2cf7ab
com.springbean.teacher@2aa5fe93
本文標題: spring如何使用註解的方式建立bean
本文位址: /ruanjian/j**a/287541.html
使用註解方式配置Spring
在配置檔案中新增如下 spring會自動掃瞄改包下的所有註解 component user 當分不清時用它 controller user web層 service user service層 repository dao層 不寫名稱預設是類名小寫 scope scopename prototype...
Spring使用註解方式注入多例的方式
目前spring netty的開發方式這麼火熱,想把netty註冊成spring元件就一定得用多例的方式,我不由得想吐槽明明這麼常見的需求網上相關部落格都少的很,這裡給出spring使用註解注入多例的方式 在需要多例呼叫的類上加 scope prototype 在進行注入時,不能直接使用 autow...
Spring以註解方式使用aop
7.spring以註解方式使用 xmlversion 1.0 encoding utf 8 beans xmlns xsi xmlns xmlns context xmlns aop xsi schemalocation spring beans 4.2.xsd spring context 4.2...