We need to use @component annotations to define a configuration class, in which we define the bean in the configuration class:
Packagecom.moonlit.myspring;ImportOrg.springframework.context.annotation.Bean;Importorg.springframework.context.annotation.Configuration; @Configuration Public classMoonlitconfig {@Bean PublicWeapon Halberd () {return Newhalberd (); } @Bean PublicHero Guanyu () {guanyu Gy=NewGuanyu (); Gy.setweapon (Halberd ()); returnGy; }}
The Guanyu classes here are as follows:
Packagecom.moonlit.myspring; Public classGuanyuImplementsHero {Privateweapon Weapon; Public voidperform () {System.out.println ("Guan Yu pick up his weapon."); Weapon.attack (); } PublicWeapon Getweapon () {returnweapon; } Public voidSetweapon (Weapon weapon) { This. Weapon =weapon; }}
Then we can use this @bean annotation-based bean, and the following test class is used to demonstrate the effect:
Package Com.moonlit.practice; Import Com.moonlit.myspring.Hero; Import Com.moonlit.myspring.MoonlitConfig; Public class testpractive { publicstaticvoid main (string[] args) { New moonlitconfig (). Guanyu (); Hero.perform (); }}
The output effect is as follows:
Guan Yu pick up his weapon.halberd is attacking!!!
Spring Learning notes-Using spring Java-based configuration