转载

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系列十一:Spring @Configuration注解

关注微信公众号 java干货 不定期分享干货资料

原文链接: Spring @Configuration annotation example

原文  https://niocoder.com/2019/10/22/Spring系列十一-Spring-@Configuration注解/
正文到此结束
Loading...