javascript
Spring学习7之自动装配Bean03
前言
接上節(jié)我們學(xué)習(xí)隱式的自動(dòng)裝配bean,今天我們學(xué)習(xí)用Java方式來(lái)配置bean!
一、如何用Java實(shí)現(xiàn)配置Bean
我們需要使用JavaConfig,一個(gè)配置類!
二、使用步驟
1.需要的實(shí)體類
package com.shan.pojo;import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component;@Component //這個(gè)類被Spring接管了,注冊(cè)到了容器中 public class User {@Value("小黑神") //給屬性注入值private String name;public String getName() {return name;}//public void setName(String name) {this.name = name;}@Overridepublic String toString() {return "User{" +"name='" + name + '\'' +'}';}}2.需要一個(gè)JavaConfig(可以理解為一個(gè)配置類)
package com.shan.config;import com.shan.pojo.User; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import;//@Configuration 代表他是一個(gè)配置類,相當(dāng)于beans.xml @Configuration @ComponentScan("com.shan.pojo") @Import(MyConfig2.class) public class MyConfig {//這個(gè)方法的名字就是id的屬性//方法的返回值,就相當(dāng)于bean的class屬性@Beanpublic User user(){return new User();}} package com.shan.config;import com.shan.pojo.User; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import;//@Configuration 代表他是一個(gè)配置類,相當(dāng)于beans.xml @Configuration @ComponentScan("com.shan.pojo") @Import(MyConfig2.class) public class MyConfig {//這個(gè)方法的名字就是id的屬性//方法的返回值,就相當(dāng)于bean的class屬性@Beanpublic User user(){return new User();}}@Configuration 代表他是一個(gè)配置類,相當(dāng)于beans.xml
這個(gè)也會(huì)被Spring容器托管,注冊(cè)到容器中,因?yàn)樗緛?lái)就是一個(gè)@Component,
@Import(MyConfig2.class)相當(dāng)于導(dǎo)入的作用,將Config2的配置導(dǎo)入到總的那個(gè)配置類中!
@Bean 注冊(cè)一個(gè)Bean,就相當(dāng)于之前的bean標(biāo)簽
測(cè)試類
import com.shan.config.MyConfig; import com.shan.pojo.User; import org.springframework.context.annotation.AnnotationConfigApplicationContext;public class MyTest {public static void main(String[] args) {AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(MyConfig.class);User user = context.getBean("user", User.class);System.out.println(user.toString());System.out.println(user.getName());}}如果完全使用了配置類方式去做,我們就只能通過(guò)AnnotationConfigApplicationContext上下文來(lái)獲取容器,通過(guò)配置類的class去加載!!!
總結(jié)
這種方式在我們學(xué)習(xí)Spring時(shí)理解就行,在將來(lái)SpringBoot中隨處可見(jiàn)。
我們現(xiàn)在完全不需要xml配置文件去做了,全權(quán)交給Java來(lái)做。
xml配置文件與注解:
-
xml更加萬(wàn)能,適用于任何場(chǎng)合且維護(hù)簡(jiǎn)單
-
注解不是自己的類使用不了,維護(hù)相對(duì)復(fù)雜
作者有話說(shuō)
博客創(chuàng)作不易,希望看到這里的讀者動(dòng)動(dòng)你的小手點(diǎn)個(gè)贊,如果喜歡的小伙伴可以一鍵三連,作者大大在這里給大家謝謝了。
總結(jié)
以上是生活随笔為你收集整理的Spring学习7之自动装配Bean03的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Spring学习6之自动装配Bean02
- 下一篇: Spring学习8之静态代理