1.
最快的例子
Coach介面
package com.example18.example_18; public interface Coach { String getDailyWorkout(); }
CricletCoach 類對介面的實現
package com.example18.example_18; import org.springframework.stereotype.Component; @Component public class CricketCoach implements Coach{ @Override public String getDailyWorkout() { return "Practice fast bowling for 15"; } }
DemoCotroller控制器,構建函式的注入
package com.example18.example_18; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class DemoController { private Coach myCoach; @Autowired public DemoController(Coach theCoach){ myCoach = theCoach; } @GetMapping("/dailvworkout") public String getDailyWorkout(){ return myCoach.getDailyWorkout(); } }
執行結果
2. 如果你有很多不同的類對Coach介面實現,比如你要指定CricletCoach ,你要在前面加上
@Qualifier("cricketCoach")
另外一個可替代方案,不要Qualifier,加上 @Primary
3. 延遲bean初始化
這裡全域性配置
或者使用@lazy
4. bean的生命週期,作用域singleton
上面加上@Scope就是false了
5.方法的配置
@postConstruct
@PreDestroy
6.開發流程
建立 配置類
定義一個@Bean方法
將bean注入我們的控制器中
在 Spring 中,@Configuration
註解用於定義一個配置類,這個類主要用於配置和管理 Bean。被 @Configuration
註解的類會被 Spring 容器識別並用來生成 Bean,這些 Bean 可以在整個應用中作為單例使用。
可以把Bean加上id
這裡使用