Spring学习笔记-1:Spring装配

本文介绍了Spring框架中的装配机制,包括依赖注入的概念、自动装配bean的方法及Java代码配置Bean的实践。通过具体示例展示了@Component、@Autowired等注解的使用,并介绍了@Configuration和@Bean注解在JavaConfig中的作用。

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

一直再用Spring,但是仅限于使用,也没有系统学习过,最近抽空开始系统学些一下,以spring in action作为参考,以下内容大部分摘自spring in action,仅限于自己学习。

1.装配

创建对象之间的协作关系称为装配,这是依赖注入的本质
Spring容器负责创建bean,并通过DI来协调对象之间的关系。
Spring有三种装配机制:

1)XML中进行显式配置 
2)在Java中进行配置 
3)隐式的bean发现机制和自动装配

2.Spring自动装配bean

1)自动扫描:自动发现应用上下文中创建的bean
2)自动创配:Spring自动满足bean之间的依赖

自动化装配bean:

@Component("name"):表明该类会作为组件类,name表示组件bean的名字,@Component可以用Java依赖注入规范中的@Name("name")替换
@ComponentScan(basePackageClasses={xxxx1.class}):Spring中启用组件扫描(默认扫描与配置相同的包),对应于XML中<context:component-scan>元素,其中basePackageClasses可用basePackages="com.xx.aaa"(包名)替代

由于过程中用到了Junit模拟Spring环境,加载Spring容器,顺带两个注解:

@RunWith(SpringJunit4ClassRunner.class):便于在测试开始的时候自动创建Spring的应用上下文(模拟Spring环境)
@ContextConfiguration(classes=xxxx.class):表明需要在xxx中加载配置(配置文件(Java或者XML文件))

实现自动装配:
@AutoWired:可以用在任何方法上(以下是三种方式)

        @AutoWired
        private CDPlayer cd;
        @AutoWired
        public CDPlayer(CompactDisc cd){
            this.cd = cd;
        }
        //注入Name对象
        @AutoWired
        public void setName(Name name){
            this.name = name;
        }

@Inject可以替代@Autowired

3.Java代码装配Bean
当我们装配的组件来自第三方时,无法用注解装配,此时需要显式配置,推荐使用JavaConfig(不是XML),因为其更强大、安全、对重构友好
@Configuration:表明这个类是一个配置类
@Bean(name=”xxx”):对应的方法会返回一个bean对象,默认与带有该注解的方法名一致
在JavaConfig中装配bean的方式:引用创建bean的方法

        @Bean
        public CDPlayer cdPlayer(){
            return new CDPlayer(compactDisc());
        }
        //使CompactDisc作为方法参数(推荐,不必须在同一个配置类中)
        @Bean
        public CDPlayer cdPlayer(CompactDisc cd){
            return new CDPlayer(cd);
        }

JavaConfig可以使用任何必要的Java功能产生bean实例。

以上仅是个人总结自Spring in Action。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值