Spring注入方式以及注解

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类型的集合数据。

仍保留集合了特性。


list.png

set.png

map.png

props.png

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配置文件

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容