詳解Springboot 註入裝配到IOC容器方式
1、通過bean註解裝配到IOC容器
創建裝配的類,如下
package com.sboot.pr.bean; /** * @author ygb * @Mailbox [email protected] * @date 2021年10月28日 * 通過bean註解裝配到IOC容器 */ public class BeanPOJO { private int id; private String name; private int age; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
通過bean註解裝配BeanPOJO到IOC容器
package com.sboot.pr.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import com.sboot.pr.bean.BeanPOJO; /** * @author ygb * @Mailbox [email protected] * @date 2021年10月28日 * 配置類文件 */ @Configuration public class BeanConfig { /** * 通過bean註解裝配BeanPOJO到IOC容器 * @return */ @Bean(name = "beanPOJO") public BeanPOJO initBeanPOJO() { BeanPOJO pojo = new BeanPOJO(); pojo.setId(1); pojo.setName("BeanPOJO"); pojo.setAge(29); return pojo; } }
把裝配的BeanPOJO 註入
package com.sboot.pr.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import com.sboot.pr.bean.BeanPOJO; import com.sboot.pr.bean.ComponentPOJO; import com.sboot.pr.bean.ComponentScanPOJO; /** * @author ygb * @Mailbox [email protected] * @date 2021年10月28日 */ @RestController public class TestController { @Autowired private BeanPOJO beanPoJO; /** * 獲取通過Bean註解裝配到IOC容器的對象 * @return */ @GetMapping("/boot/getBeanPOJO") public BeanPOJO getBeanPOJO() { return beanPoJO; } }
訪問註入的BeanPOJO信息
http://localhost:1111/boot/getBeanPOJO
2、通過Component註解掃描裝配bean到IOC容器
創建裝配的類,如下
package com.sboot.pr.bean; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.ComponentScan; import org.springframework.stereotype.Component; /** * @author ygb * @Mailbox [email protected] * @date 2021年10月28日 * 通過Component註解掃描註入bean到IOC容器 * 指定bean名稱,默認首個字母小寫 */ @Component("componentPOJO") public class ComponentPOJO { @Value("2") private int id; @Value("ComponentPOJO") private String name; @Value("29") private int age; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
把裝配的ComponentPOJO 註入
package com.sboot.pr.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import com.sboot.pr.bean.BeanPOJO; import com.sboot.pr.bean.ComponentPOJO; import com.sboot.pr.bean.ComponentScanPOJO; /** * @author ygb * @Mailbox [email protected] * @date 2021年10月28日 */ @RestController public class TestController { @Autowired private ComponentPOJO componentPOJO; /** * 獲取通過Component註解裝配到IOC容器的對象 * @return */ @GetMapping("/boot/getComponentPOJO") public ComponentPOJO getComponentPOJO() { return componentPOJO; } }
訪問註入的ComponentPOJO 信息
http://localhost:1111/boot/getComponentPOJO
3、通過ComponentScan註解掃描裝配bean到IOC容器
創建裝配的類,如下
package com.sboot.pr.bean; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; /** * @author ygb * @Mailbox [email protected] * @date 2021年10月28日 * 通過ComponentScan註解掃描註入bean到IOC容器 * 可以指定策列,比如哪些包需要掃描、排除哪些bean被掃描 */ @Configuration @ComponentScan public class ComponentScanPOJO { @Value("3") private int id; @Value("ComponentScanPOJO") private String name; @Value("29") private int age; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
把裝配的ComponentScanPOJO 註入
package com.sboot.pr.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import com.sboot.pr.bean.BeanPOJO; import com.sboot.pr.bean.ComponentPOJO; import com.sboot.pr.bean.ComponentScanPOJO; /** * @author ygb * @Mailbox [email protected] * @date 2021年10月28日 */ @RestController public class TestController { @Autowired private ComponentScanPOJO componentScanPOJO; /** * 獲取通過Component註解裝配到IOC容器的對象 * @return */ @GetMapping("/boot/getComponentScanPOJO") public ComponentScanPOJO getComponentScanPOJO() { return componentScanPOJO; } }
訪問註入的ComponentScanPOJO信息
http://localhost:1111/boot/getComponentScanPOJO
到此這篇關於Springboot 註入裝配到IOC容器方式的文章就介紹到這瞭,更多相關Springboot 註入IOC容器內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- springboot讀取自定義配置文件時出現亂碼解決方案
- 淺談@Value和@Bean的執行順序問題
- JavaBean和SpringBean的區別及創建SpringBean方式
- Java之Spring註解開發案例詳解
- Spring框架學習之Spring @Autowired實現自動裝配的代碼