Spring笔记(4)-----<bean>的基本配置

Spring容器成功需要具备的三个条件:

1)Spring框架的类包都已经放在应用程序的类路径下。

2)应用程序为Spring提供了完备的Bean配置信息。

3)Bean的类都已经放在类路径下。

Spring启动时读取应用程序的Bean配置信息,在容器中生成一份相应的Bean配置注册表,然后根据这张注册表实例化Bean,装配好Bean的依赖关系,为上层应用提供准备就绪的运行环境。

Bean的配置信息是Bean的元数据信息,有4部分:

1)Bean的实现类。

2)Bean的属性信息。

3)Bean的依赖关系。

4)Bean的行为配置。

元数据在Spring容器内部对应物是有一个个BeanDefination形成的Bean注册表,实现了外部表示与内部信息的解耦。

Bean配置信息定义了Bean的实现以及它们之间的依赖关系,Spring容器根据配置信息在容器内部建立了注册表,,然后根据注册表加载,实例化Bean,并建立依赖关系,然后把这些Bean放入缓冲池中,以供外部程序调用。

Spring配置文件的文件头:

如下示例:

<?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"
	xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:jee="http://www.springframework.org/schema/jee"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="
		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
		http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.1.xsd
		http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.1.xsd
		http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
		>
</pre><p><span style="font-family:Microsoft YaHei;font-size:14px;">xmlns="http://www.springframework.org/schema/beans"没有空间名,默认命名空间。</span></p><p><span style="font-family:Microsoft YaHei;font-size:14px;">xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi命名空间,这个命名空间用于为每个文档命名空间指定相应的Schema样式文件,这个标准组织定义的标准命名空间。</span></p><p><span style="font-family:Microsoft YaHei;font-size:14px;">xmlns:context:这个命名空间是Spring配置的命名空间,是自定义的。</span></p><p><span style="font-family:Microsoft YaHei;font-size:14px;">命名空间的定义分2步:</span></p><p><span style="font-family:Microsoft YaHei;font-size:14px;">1)指定命名空间的名称。</span></p><p><span style="font-family:Microsoft YaHei;font-size:14px;">2)指定命名空间的Schema文件的位置,两个位置用空格或换行进行分隔,写一个统一的xsi:schemaLocation,所有命名空间的Schema文件都写在一起。</span></p><p><span style="font-family:Microsoft YaHei;font-size:14px;">Bean的基本配置:</span></p><p><span style="font-family:Microsoft YaHei;font-size:14px;"><span style="white-space:pre">	</span>SpringIOC容器中一个Bean即对应配置文件中的一个<bean>,id为这个Bean的名称,通过getBean(id)即可获取对应的Bean,class属性指定了Bean对应的实现类。</span><pre name="code" class="html"><?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
	<bean id="userDao" class="com.test.dao.UserDao">
		<property name="sessionFactory" ref="sessionFactory"/>
	</bean>
	<bean id="userService" class="com.test.service.impl.UserServiceImpl" >
		<property name="userDao" ref="userDao" />
	</bean>
</beans>

而Spring的命名问题:id是唯一的,而且有特殊字符限制必须以字母开始,不能以逗号,空格之类的。如果我们想用特殊字符,可以使用<bean>的name属性,name属性可以有特殊字符,而且bean的name可以相同,如果重名以最后一个声明的为准,因为后面的Bean覆盖了前面的Bean.....所以我们还是使用id吧。如果一个Bean的id和name都没声明,那么Spring会根据class属性,你的包名类名去获取Bean.

Spring笔记(4)-----<bean>的基本配置

时间: 2024-10-12 22:56:53

Spring笔记(4)-----<bean>的基本配置的相关文章

Spring笔记——7.高级依赖关系配置

为了方便与可读性,组件与组件2之间的耦合使用配置文件依赖注入,而基本类型的成员变量则直接爱代码中设置.有的时候bean的属性值可能是某个方法的返回值,或者类的field值,或者是另一个对象的get方法的返回值.Spring支持将任意方法的返回值.类或者对象的Feild值,其他bean的get返回值直接定义成容器中的一个bean. 获取其他bean的属性值 PropertyPathFactoryBean用来获取其他bean的属性值(get的返回值)获得的值可以注入给其他bean,也可以定义为新的b

Bean 注解(Annotation)配置(1)- 通过注解加载Bean

Spring 系列教程 Spring 框架介绍 Spring 框架模块 Spring开发环境搭建(Eclipse) 创建一个简单的Spring应用 Spring 控制反转容器(Inversion of Control – IOC) 理解依赖注入(DI – Dependency Injection) Bean XML 配置(1)- 通过XML配置加载Bean Bean XML 配置(2)- Bean作用域与生命周期回调方法配置 Bean XML 配置(3)- 依赖注入配置 Bean XML 配置(

跟着柴毛毛学Spring(3)——简化Bean的配置

通过前面的学习.我们会感觉到对于一个有较多Bean的大项目,Spring的配置会比較复杂. 那么接下来我们就介绍怎样简化Spring的配置. 简化Spring的配置主要分为两类: 1. 自己主动装配 2. 自己主动扫描 以下就具体介绍这两种简化配置的方式. 自己主动装配 自己主动装配的种类 byName:依据属性的名字自己主动装配 byType:依据属性的类型自己主动装配 constructor:依据构造器的參数类型自己主动装配 autodetect:最佳自己主动装配.首先採用construct

Spring使用教程(二)配置bean:静态工厂方法和实例工厂方法

public class Car { private String brand; private double price; public String getBrand() { return brand; } public void setBrand(String brand) { this.brand = brand; } public double getPrice() { return price; } public void setPrice(double price) { this.

Spring笔记(一):Ioc 之 Bean的管理

前提: 1.需要 spring.dom4j.junit.commons-logging等的jar包, 配置web.xml,新增 applicationContext.xml 2.Spring主要核心是: 1)控制反转(IOC):以前传统的java开发模式中,当需要一个对象时我们,我们会自己使用new或者getInstance等直接或者间接调用构造方法创建一个对象,而在Spring开发模式中,Spring容器使用了工厂模式为我们创建了所需要的对象,我们使用时不需要自己去创建,直接调用Spring为

spring配置,spring中的bean 的id不能相同

lib下加入包 spring.jar commons-logging.jar src下添加 applicationContext.xml 1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLS

使用反射创建Bean、Spring中是如何根据类名配置创建Bean实例、Java提供了Class类获取类别的字段和方法,包括构造方法

Java提供了Class类,可以通过编程方式获取类别的字段和方法,包括构造方法 获取Class类实例的方法: 类名.class 实例名.getClass() Class.forName(className) public class RefTest { @Test public void testRef(){ //Class cls = RefTest.class; //Class.forName("com.jboa.service.RefTest"); //new RefTest()

spring在整合框架中常用配置的bean

1 数据源 1.1spring默认的数据源DriverManagerDatasource <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"><

Spring笔记之三----基于Annotation的Spring配置

使用Annotation 来创建Bean有两种方式 在配置类中创建bean(配置类是指标注为@Configuration的类),在配置类中每一个创建bean的方法都应该标注为@Bean,可以在@Bean 这个annotation中指定Bean name,如果没有指定,则默认使用方法的名字:注意在配置类中一个方法创建的Bean要引用另外一个方法创建的Bean,则直接调用方法即可: 将Java类标注为 @Component,@Repository,@Service,@Controller中的任何一种