前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spring系列十一:Spring @Configuration注解

Spring系列十一:Spring @Configuration注解

作者头像
java干货
发布2021-02-19 14:29:46
4150
发布2021-02-19 14:29:46
举报
文章被收录于专栏:java干货

我欲穿花寻路,直入白云深处,浩气展虹霓。

概述

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定义和服务请求。

代码语言:javascript
复制
@Configuration
public class AppConfig {
 
    @Bean(name="demoService")
    public DemoClass service()
    {
        
    }
}

Spring @Configuration注解示例

@Configuration注解的用法。

创建maven项目
代码语言:javascript
复制
mvn archetype:generate
    -DgroupId=cn.howtodoinjava.core
    -DartifactId=springCoreTest
    -DarchetypeArtifactId=maven-archetype-quickstart
    -DinteractiveMode=false
 
mvn eclipse:eclipse
更新Spring依赖项
代码语言:javascript
复制
<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
代码语言:javascript
复制
public interface DemoManager {
    public String getServiceName();
}
 
public class DemoManagerImpl implements DemoManager
{
    @Override
    public String getServiceName()
    {
        return "My first service with Spring 3";
    }
}
Spring配置类
代码语言:javascript
复制
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

代码语言:javascript
复制
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() );
    }
}

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/10/22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概述
    • Spring @Configuration注解用法
      • Spring @Configuration注解示例
        • 创建maven项目
        • 更新Spring依赖项
        • 创建spring bean
        • Spring配置类
      • 测试
      相关产品与服务
      容器服务
      腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档