Spring - 注解替代配置的@Configuration、@Bean和@ComponentScan

本文介绍了Spring从3.0开始引入的基于注解的配置方式,包括@Configuration用于定义配置类,@Bean用于注册bean对象,以及@ComponentScan用于组件扫描。通过这些注解,可以避免XML配置,简化Spring容器的初始化。文中还详细讲解了如何使用@Configuration和@Bean注解创建和管理bean,以及结合@ComponentScan进行组件扫描的实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、注解启动和相关注解的说明

    从Spring3.0开始,提供了另外一种启动spring容器的方式,用注解@Configuration定义配置类,然后使用AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext实现基于Java配置类的方式加载Spring的应用上下文初始化Spring容器,无需再使用applicationContext.xml进行配置


    @Configuration  标注在类上,可以理解为把该类作为配置类,等价于spring的xml配置文件中的<beans>标签,用于配置spring容器(应用上下文)

    @Bean  标注在返回实例对象方法上,可理解为用spring的xml配置文中的<bean>标签,用于注册bean对象。通过@Bean注解需要在方法内显式创建对象并返回,注解的Bean的名称默认与标注的方法名相同,可以通过注解属性指定;@Bean注解的默认作用域为单例Singleton作用域,可以通过@Scope("prototype")设置为原型作用域

    @ComponentScan  标注在主配置类上,可以理解为Spirng的xml配置文件中的<context:component-scan />标签。配合@Component、@Controller、@Service、@Ripository等注解可以无需@Bean显示创建方式注册对象
 

二、通过@Configuration+@Bean注解代码注册Bean给Spring管理

        1、简单的样例

/**
 * 待注册给Spring管理的类
 */
package com.xl.atn;

public class StoreManager {

	public StoreManager() {
	}

	public void init() {
		System.out.println("init");
	}

	public void save(Object o) {
		System.out.println("Save Object. obj=" + o + ".");
	}
	
}
/**
 * 主配置类
 */
package com.xl.atn;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Scope;


@Configuration  // 注解声明为配置类 
// 相当于 <beans xmlns="http://www.spr
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值