Spring如何使用註解的方式建立bean

2022-10-03 09:48:11 字數 2758 閱讀 6820

第一種使用配置類的方式

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...