當(dāng)前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
SpringBoot —— Bean的注入方式
生活随笔
收集整理的這篇文章主要介紹了
SpringBoot —— Bean的注入方式
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
文章目錄
- 1、組件注解
- 2、@Component + @Bean
- 3、@Import(PlaceHolderClass)快速導(dǎo)入一個組件
- 4、使用Spring提供的FactoryBean注入
1、組件注解
| @Component | 組件定義不清晰時候的注解 |
| @Controller | 控制器層 |
| @Service | 服務(wù)層 |
| @Repository | 數(shù)據(jù)層 |
注:添加注解的類需要與啟動類在同一個包路徑下,如果在別的包下,需要在 啟動類 或 啟動類所在包下的存在以上注解的類 中添加 @ComponentScan 注解。
例如:
啟動類:
package com.springboottest;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.ComponentScan;@SpringBootApplication @ComponentScan(basePackages = {"com.springtest", "com.springboottest"}) public class SpringbootTestApplication {public static void main(String[] args) {SpringApplication.run(SpringbootTestApplication.class, args);}}Student類(與啟動類不在同一個包路徑下):
package com.springtest;import lombok.Data; import org.springframework.stereotype.Component;import java.lang.reflect.Field;@Data @Component public class Student {private String name;private String nickName; }2、@Component + @Bean
@Component public class Test {@Beanpublic User user() {return new User();} }注:@Bean注解的方法,返回值 User 作為注入的 Bean 對象。
3、@Import(PlaceHolderClass)快速導(dǎo)入一個組件
| 一般Class | 直接注入 |
| 實(shí)現(xiàn)了ImportSelector接口的Class | 根據(jù)返回類的全限定名數(shù)組注入 |
| 實(shí)現(xiàn)了ImportBeanDefinitionRegistrar接口的Class | 獲取類描述信息,選擇性手動注入 |
4、使用Spring提供的FactoryBean注入
public class UserFactoryBean implements FactoryBean<User> {// 注入的Bean@Overridepublic User getObject() throws Exception {return new User();}// 注入的Bean類型@Overridepublic Class<?> getObjectType() {return User.class;}// 是否是單例@Overridepublic boolean isSingleton() {return true;} } 創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的SpringBoot —— Bean的注入方式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 程序员的成功是否有规律可循?
- 下一篇: SpringBoot 集成Nacos报错