程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> spring框架之javaconfig,springjavaconfig

spring框架之javaconfig,springjavaconfig

編輯:JAVA綜合教程

spring框架之javaconfig,springjavaconfig


簡介:隨著java5的推出,加上當年基於純java annotation的依賴注入框架Guice的出現,spring推出並持續完善了基於java代碼和annotation元信息的依賴關系綁定描述方法,即javaconfig項目

基於javaconfig方式的依賴關系綁定描述基本上映射了最早的基於XML的配置方式

 

一、表達形式層面

基於xml的配置方式是這樣的

<?xml version="1.0" encoding="UTF-8"?>  

<beans xmlns="http://www.springframework.org/schema/beans" 

      xmlns:context="http://www.springframework.org/schema/context" 

        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

            xsi:schemaLocation="  

            http://www.springframework.org/schema/context  

        http://www.springframework.org/schema/context/spring-context.xsd  

        http://www.springframework.org/schema/beans  

        http://www.springframework.org/schema/beans/spring-beans.xsd  > 

<!- bean定義 ->

</beans>

而基於javaconfig的配置方式是這樣的

@configuration

public class MockConfiguration{

  //bean定義

}

任何一個標注了@configuration的java類定義都是一個javaconfig的配置類

 

二、1.注冊bean定義層面基於xml的配置方式是這樣的

<bean id="mockService" class="...MockServiceImpl">

  ...

</bean>而基於javaconfig的配置方式是這樣的

@configuration

public class MockConfiguration{

  @Bean

  public MockService mockService(){

    return new MockServiceImpl():

  }

}

任何一個標注了@Bean的方法,其返回值將作為一個bean定義注冊到Spring的IoC容器,方法 名將默認成為該bean定義的id。

 

2.批量定義注冊bean基於xml的配置方式是這樣的

<context:component-scan base-package="..."/>

配合@Component和@Repository等,將標注了這些元信息annotation的bean定義類批量采集到spring的IoC容器中而基於javaconfig的配置方式是這樣的

@ComponentScan(String[] basePackages

注:@ComponentScan是springboot框架一個關鍵組件

 

四、表達依賴注入關系層面基於xml的配置方式是這樣的

<bean id="mockService" class="...MockServiceImpl">

  <property name="dependencyService" ref="dependencyService">

</bean>

<bean id="dependencyService" class="...dependencyServiceImpl"/>

而基於javaconfig的配置方式是這樣的

 

@configuration

public class MockConfiguration{

  @Bean

  public MockService mockService(){

    return new MockServiceImpl(dependencyService()):

  }

  @Bean

  public DependencyService dependencyService(){

    return new DependencyServiceImpl():

  }

}

如果一個bean依賴其他bean,則直接調用對應javaconfig類中依賴bean的創建方法就可以了

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved