ClassPathXmlApplicationContext与FileSystemXmlApplicationContext的区别:
ClassPathXmlApplicationContext使用方法:(classpath路劲查找)
ClassPathXmlApplicationContext 默认会去 classPath 路径下找。classPath 路径指的就是编译后的 classes 目录。
FileSystemXmlApplicationContext使用方法(项目路径或者相对路径)
FileSystemXmlApplicationContext 默认是去项目的路径下加载,可以是相对路径,也可以是绝对路径,若是绝对路径,“file:” 前缀可以缺省。
配置Spring bean元数据的方式
- 基于 XML 配置
- 基于 注解 配置:Spring2.5以上版本支持
- 基于Java 配置:Spring3.0以上版本支持
注入的方式:
- Constructor构造器注入: Setter属性方法注入 使用构造方法的参数,做为注入的通道。
- Setter属性方法注入: 使用属性对应的Setter方法参数,做为注入的通道。
使用Setter注入,请确保当前类拥有无参构造方法.
构造注入三种方式标明方法中的参数:
1.type 根据数据类型
2.index 根据顺序
3.name 根据参数名
ref与value的区别
- ref传入引用
- value传入值
<bean id="repostitoryBean1" class="com.apesource.repostitory.Repostitory1">
</bean>
<bean id="repostitoryBean2" class="com.apesource.repostitory.Repostitory2">
</bean>
<bean id="serviceBean1" class="com.apesource.service.Service1">
<!--构造方法注入-->
<constructor-arg name="irepostitory" ref="repostitoryBean1"></constructor-arg>
<!--setter注入-->
<property name="irepostitory" ref="repostitoryBean1"></property>
</bean>
注入list 、set、map、props类型的集合数据。
仍保留集合了特性。
Spring中的自动组装
autowire属性设置自动组装参数
- no默认,关闭自动组装。
- byName,按名称自动组装,Spring会查找 相同名称的属性Setter进行注入。
- constructor,类似于按类型自动组装,Spring会 查找相同类型的构造器进行注入。
- byType,按类型自动组装,Spring会查找 相同类型的属性Setter进行注入。
使用注解完成自动化装配bean
类级别注解:
@Component:表明该类会作为组件 类,并告知Spring要 为这个类创建bean。
@ComponentScan:启用组件扫描, 默认当前配置类 所在包为基础包。
basePackages : 基础包 basePackageClasses: 指定类所在包为基础包
@Primary:(一 般与@Component 配合使用)在自动装配时,设置 某个bean为首选。
方法级别注解:
@Autowired:自动注入一个符 合类型要求的 bean
required: 是否为必须注入项。
@Qualifier:指定所注入的 bean的ID
value: 所注入的bean的ID
@Scope:定义bean的作用域。
Java Config
@Configuration:定义Spring配置类
@Bean:声明配置该方法所 产生的对象为 Spring中的bean
导入和混合配置
@Import:导入其他配置类
@ImportResouce:导入其他XML配置文件