1. 程式人生 > 程式設計 >Spring系列十一:Spring @Configuration註解

Spring系列十一:Spring @Configuration註解

我欲穿花尋路,直入白雲深處,浩氣展虹霓。

概述

Spring @Configuration註解有助於基於Spring註解的自動裝配。@Configuration註解指示一個類宣告瞭一個或多個@Bean方法,Spring容器可以對該類進行處理,以便在執行時為這些bean生成bean定義和服務請求。。

spring 2開始,我們就將bean配置寫入xml檔案中。但是Spring 3允許將bean定義移出xml檔案。我們可以在Java檔案本身中給出bean定義。這稱為Spring Java Config功能(使用@Configuration註解)

Spring @Configuration註解用法

在任何類頂部使用@Configuration註解來宣告該類提供了一個或多個@Bean方法,並且可以由Spring容器進行處理以在執行時為這些bean生成bean定義和服務請求。

@Configuration
public class AppConfig {
 
    @Bean(name="demoService")
    public DemoClass service()
    {
        
    }
}
複製程式碼

Spring @Configuration註解示例

@Configuration註解的用法。

建立maven專案

mvn archetype:generate
    -DgroupId=cn.howtodoinjava.core
    -DartifactId=springCoreTest
    -DarchetypeArtifactId=maven-archetype-quickstart
    -DinteractiveMode=false
 
mvn eclipse:eclipse
複製程式碼

更新Spring依賴項

<properties>
	<spring.version>3.0.5.RELEASE</spring.version>
  </properties>
 
  <dependencies>
      
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope
>
test</scope> </dependency> <!-- Spring 3 dependencies --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <!-- For JavaConfig --> <dependency> <groupId>cglib</groupId> <artifactId>cglib</artifactId> <version>2.2.2</version> </dependency> </dependencies> 複製程式碼

建立spring bean

public interface DemoManager {
    public String getServiceName();
}
 
public class DemoManagerImpl implements DemoManager
{
    @Override
    public String getServiceName()
    {
        return "My first service with Spring 3";
    }
}
複製程式碼

Spring配置類

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
 
import cn.howtodoinjava.core.beans.DemoManager;
import cn.howtodoinjava.core.beans.DemoManagerImpl;
 
@Configuration
public class ApplicationConfiguration {
 
    @Bean(name="demoService")
    public DemoManager helloWorld()
    {
        return new DemoManagerImpl();
    }
}
複製程式碼

測試

測試Java Config 可配置的bean


package cn.howtodoinjava.core.verify;
 
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
 
import com.howtodoinjava.core.beans.DemoManager;
import com.howtodoinjava.core.config.ApplicationConfiguration;
 
public class VerifySpringCoreFeature
{
    public static void main(String[] args)
    {
        ApplicationContext context = new AnnotationConfigApplicationContext(ApplicationConfiguration.class);
 
        DemoManager  obj = (DemoManager) context.getBean("demoService");
 
        System.out.println( obj.getServiceName() );
    }
}
複製程式碼

原文連結:Spring @Configuration annotation example