學習Spring5必知必會(4)~使用註解配置、使用java程式碼配置

一樂樂發表於2022-02-27

● 注意:使用註解並不能完全取代xml配置,比如配置連線池DruidDataSource,我們就不能到這個類中去貼註解。
  • 想要實現零配置(完全不使用xml進行配置):javaConfig + 註解

● DI註解:註解配置 <context:congfig-config/>

● IoC註解:元件掃描器 <context:component-scan base-package=""/>


一、通過註解自動裝配(比起xml配置的物件型別配置ref,更加推薦使用註解注入

1、 DI 註解:@Autowired、@Resource、@Value

  • value註解的威力: 結合動態properties配置檔案引入值變數 @Value("${service.port}")

★ 注入:

  • 常量型別 value Value

  • 物件型別 ref Autowired/Resource


(1)在配置檔案中新增註解的解析器的配置:

    <!-- DI註解的解析器 -->
    <context:annotation-config/>

(2)使用註解@Autowired

​ □ Autowired 註解尋找 bean 的方式:

​ 1) 首先按照依賴物件的型別找,如果找到,就是用 setter 方法或者欄位直接注入;

​ 2)如果在 Spring 上下文中找到多個匹配的型別,再按照名字去找,如果沒有匹配報錯;

​ 3)可以通過使用 註解@Qualifier("id名字") 來規定依賴物件按照 bean 的 id 和型別的組合方式去找


■ DI註解 Autowired 和 Resource(都需要配置DI註解的解析器):

  • Spring官方是使用:Autowired

  • javaEE規範:Resource 【依賴:javax.annotation-api.jar】


2、IoC 註解:

(1)在配置檔案中新增註解的解析器的配置:

   <!-- IoC註解的解析器 -->
  <context:component-scan base-package="com.shan.ioc"/>

(2)使用註解@Component 配置Bean

  • @Component 元件若是不寫value屬性值,此時的bean的id預設是型別首字母小寫
// <bean id="dataSource" class="com.shan.ioc.MyDataSource"/>
@Component("dataSource")
public class MyDataSource {

}

■ bean 元件版型:四個元件的功能是相同的,只是用於標註不同型別的元件。

@Component 泛指元件,當元件不好歸類的時候,我們可以使用這個註解進行標註。

@Repository (持久層)用於標註資料訪問元件,即 DAO 元件。

@Service (業務層)用於標註業務層元件。

@Controller (控制層)用於標註控制層元件(如 struts 中的 Ation,SpringMVC 的 Controller)


3、作用域註解、初始化和銷燬註解: @Scope、@PostConstruct、@PreDestroy

  • 其中初始化和銷燬註解【依賴:javax.annotation-api.jar】

二、通過java程式碼裝配 java-config

相關文章