ITKeyword,专注技术干货聚合推荐

注册 | 登录

Spring中装配bean的三种主要方式

MCtime 分享于 2016-05-06

推荐:Spring学习(十八)Bean 的三种依赖注入方式介绍

依赖注入:让调用类对某一接口实现类的依赖关系由第三方注入,以移除调用类对某一接口实现类的依赖。 接下来将详细的向大家介绍Spring容器支持的三种依赖注入的

2020腾讯云共同战“疫”,助力复工(优惠前所未有!4核8G,5M带宽 1684元/3年),
地址https://cloud.tencent.com/act/cps/redirect?redirect=1053

2020阿里云最低价产品入口,含代金券(新老用户有优惠),
地址https://www.aliyun.com/minisite/goods


1.自动化配置

package com.springinaction.test;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

@Configuration//告诉spring这是一个配置类
@ComponentScan//扫描组件
public class CDPlayerConfig {

}
package com.springinaction.test;

import org.springframework.stereotype.Component;

@Component
public class SgtPeppers implements CompactDisc{//CompactDisc是一个接口

	private String title = "Sgt. Pepper's Linel Hearts Cloub Band";
	private String artist = "The Beatles";
	
	@Override
	public void play() {
		System.out.println("Playing " + title + " by " + artist);
	}

}


2.基于java的显示配置:要在java中声明bean,我们需要一个方法

推荐:(3)Spring的三种实例 bean 的方式 以及 Spring中bean的作用域。 以及 bean的生命周期

第一种: 1.使用类构造器实例化  <bean id="personService" class="cn.itm.service.impl.PersonServiceBean"></bean> import cn.itm.service.PersonService;pu

package com.springinaction.test;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class CDPlayerConfig {

	@Bean//@Bean会告诉Spring这个方法将返回一个对象,该对象要注册为Spring应用上下文中的bean
	public CompactDisc sgtPeppers(){
		return new SgtPeppers();
	}
}
package com.springinaction.test;

import org.springframework.stereotype.Component;

//这里没有哦
public class SgtPeppers implements CompactDisc{

	private String title = "Sgt. Pepper's Linel Hearts Cloub Band";
	private String artist = "The Beatles";
	
	@Override
	public void play() {
		System.out.println("Playing " + title + " by " + artist);
	}

}

3.基于XML的显示配置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:Context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
    http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"
    >
	<!-- 简单bean引用-->
	<bean id="compactDisc" class="com.springinaction.test.CompactDisc"/>
	<bean id="cdPlayer" class="com.springinaction.test.CdPlayer">
        <!-- 构造器中参数为CompactDisc对象 -->
        <constructor-arg ref="compactDisc"/>
    </bean>
	</beans>
不管采用扫描方式,这些技术都描述了Spring应用中的组件以及这些组件之间的关系;

建议尽可能的使用自动化配置,以避免显示配置带来的维护成本;

如果你确实需要显示配置Spring的话,应该优先选择基于Java的配置,它比基于XML的配置更强大、类型安全并且易于重构!

推荐:Spring中bean装配问题

Spring中bean装配属性 编写java文件 package com.cloud.bean;public class Dog { private String name; private int age; public String getName() { retu

1.自动化配置 package com.springinaction.test;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.Configuration;@Configura

相关阅读排行


相关内容推荐

最新文章

×

×

请激活账号

为了能正常使用评论、编辑功能及以后陆续为用户提供的其他产品,请激活账号。

您的注册邮箱: 修改

重新发送激活邮件 进入我的邮箱

如果您没有收到激活邮件,请注意检查垃圾箱。