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

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,我们需要一个方法

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的配置更强大、类型安全并且易于重构!

时间: 2024-11-09 02:46:33

Spring中装配bean的三种主要方式的相关文章

Spring框架装配Bean的三种方式

欢迎查看Java开发之上帝之眼系列教程,如果您正在为Java后端庞大的体系所困扰,如果您正在为各种繁出不穷的技术和各种框架所迷茫,那么本系列文章将带您窥探Java庞大的体系.本系列教程希望您能站在上帝的角度去观察(了解)Java体系.使Java的各种后端技术在你心中模块化:让你在工作中能将Java各个技术了然于心:能够即插即用.本章我们来一起了解Spring专栏-SpringBean装配. 本章我们一起来探讨SpringBean的装配,所谓 "装配" 就是值将Bean安装Bean容器中

spring在xml文件中配置bean的三种方法

一.最常见,也是缺省,是调用spring的缺省工厂类 spring缺省工厂类:org.springframework.beans.factory.support.DefaultListableBeanFactory使用其静态方法preInstantiateSingletons() 配置文件中最普通最基本的定义一个普通bean<bean id="DvdTypeDAOBean" class="com.machome.dvd.impl.DvdTypeDAO" >

spring 装配bean的三种方式

这段时间在学习Spring,依赖注入DI和面向切面编程AOP是Spring框架最核心的部分.这次主要是总结依赖注入的bean的装配方式. 什么是依赖注入呢?也可以称为控制反转,简单的来说,一般完成稍微复杂的业务逻辑,可能需要多个类,会出现有些类要引用其他类的实例,也可以称为依赖其他类.传统的方法就是直接引用那个类对象作为自己的一个属性,但如果我们每次创建这个类的对象时,都会创建依赖的类的对象,还有如果那个类将来可能不用了,还需要到这个类去删除这个对象,那破坏了代码的复用性和导致高度耦合! 依赖注

Spring三 Bean的三种创建方式

创建Bean的三种方式在大多数情况下,Spring容器直接通过new关键字调用构造器来创建Bean实例,而class属性指定Bean实例的实现类,但这不是实例化Bean的唯一方法.实际上,Spring支持使用以下三种方式来创建Bean:(1)调用构造器创建Bean(2)调用静态工厂方法创建Bean(3)调用实例工厂方法创建Bean一 构造器创建Bean实例如果不采用构造注入,Spring底层会调用Bean类的无参数构造器来创建实例,因此该类必须要提供无参数的构造器,并且class属性的值就是该B

MyEclipse中web服务器的三种配置方式

初学Javaweb开发的人们都会遇到一个问题,就是服务器环境的搭建配置问题.下面介绍三种服务器的搭建方式. 直接修改server.xml文件 当你写了一个web应用程序(jsp/servlet),想通过浏览器直接去访问这个页面,需要在Tomcat中配置相关路径: 找到Tomcat下conf目录,你会看到有个server.xml,即服务器配置文件.用文本编译器打开,拉到Host标签,在它结束前加上我们的应用程序路径: <Context path="/HelloWeb" docBas

java中ArrayList集合的三种遍历方式

public class ListDemo { public static void main(String[] args) { ArrayList<String> mList = new ArrayList<>(); mList.add("郭靖"); mList.add("黄蓉"); mList.add("洪七公"); mList.add("周伯通"); // 第一种遍历方式:普通for循环 for

装配Bean的三种方式

一.装配Bean就是在xml写一个Bean标签:装配完Bean,还需要读取xml配置文件创建Spring容器来创建对象: 1.new 实现类方式 正常的三种创建Bean容器的方法都可以根据装配的Bean创建的Bean对象: 2.静态工厂模式方式 其中,静态工厂方式不用创建工厂对象,直接类名点静态方法,静态方法中返回new 的对象: 3.实例工厂模式方式 其中,实例工厂模式要先创建工厂对象,通过工厂对象调用成员方法创建对象: 创建Bean容器时: 原文地址:https://www.cnblogs.

Spring bean的三种创建方式

1.创建Spring工程 使用eclipse创建一个Spring工程,一个简单的方法就是先创建一个Java工程,然后将Spring的Jar包全部放入到工程里面即可开始编写基于Spring框架的程序.Spring的Jar包可以从github上的源码中取得,下载地址是:https://github.com/spring-projects/spring-framework. 下面是在学习<Spring实战>时创建的一个Spring工程,其目录结构如下: 在Spring中,创建应用对象之间协作关系的行

Spring bean的三种注入方式

Spring的一个重要原理就是IOC(Inverse Of Control),即控制反转.IOC就是一种将组件依赖关系的创建和管理置于程序外部的技术,在Spring中Bean组件的实例化和依赖关系的管理控制都由Spring容器负责,对象与对象之间的关系可以简单的理解为对象之间的依赖关系:在 类 A 需要类 B 的一个实例来进行某些操作时,比如在类 A 的方法中需要调用类 B 的方法来完成功能,叫做类 A 依赖于类 B.依赖注入(DI:Dependency Injection) :两个对象之间的依