博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring依赖注入的方式
阅读量:4102 次
发布时间:2019-05-25

本文共 1229 字,大约阅读时间需要 4 分钟。

Spring支持3中依赖注入的方式

1.属性注入
属性注入即通过setter方法注入Bean的属性值或依赖的对象
属性注入使用<property>元素,使用name属性指定Bean的属性名称,value属性或<value>子节点指定属性值
属性注入是实际应用中最常用的注入方式
例:
public static void main(String[] args) {	//创建spring的IOC容器	FileSystemXmlApplicationContext context = new FileSystemXmlApplicationContext("classpath:spring.xml");	//从IOC容器中获取bean的实例   通过bean的名称获取bean的实例	A a = (A)context.getBean("a");	System.out.println(a.getName()+"   "+a.getAge());	B b = (B)context.getBean("b");	System.out.println(b.getA().getName()+"   "+b.getA().getAge());}
结果
2.构造方法注入
通过构造方法注入Bean的属性值或依赖的对象,它保证了Bean实例在实例化就可以使用。
构造器注入在<constructor-arg>元素里声明属性,
<constructor-arg>中没有name属性
按索引入参
根据名字入参
还可根据类型入参,不推荐使用,建议用名字入参
XML配置里的Bean自动装配
Spring IOC 容器可以自动装配Bean。需要做的仅仅是在<bean>的autowire属性里指定自动装配的模式
byType(根据类型自动装配):对象属性所在的类 在容器中 只能拥有一个实例(多个实例是相对的,如果对象中的属性是集合,可以装配多个List里的对象)
byName(根据名称自动装配):根据当前对象属性的名称来查找对应的实例
constructor(通过构造器自动装配):当Bean中存在多个构造器时,此种自动装配方式将会很复杂。不推荐使用
XML配置里的Bean自动装配的缺点
在Bean配置文件里设置autowire属性进行自动装配将会装配Bean的所有属性,然而,若只希望装配个别属性时,autowire属性就不够灵活了。
autowire属性要么根据类型自动装配,要么根据名称自动装配,不能两者兼而有之。
一般情况下,在实际的项目中很少使用自动装配功能,因为和自动装配功能所带来的好处比起来,明确清晰的配置文档更有说服力一些。
你可能感兴趣的文章
成组链接法详解+Java代码
查看>>
数据库系统思维导图
查看>>
SpringMVC(五):EditorMD编辑器开发与文件上传
查看>>
Java 基础 | Int 和 Integer
查看>>
Android 使用 Socket 连接阿里云服务器
查看>>
JSP与Servlet(四):java实现文件上传下载
查看>>
安全框架shiro(二):shiro进阶
查看>>
Linux(三):Linux文件互传。
查看>>
Linux(二):阿里云CentOS7部署SpringBoot项目
查看>>
JPA(一):十分钟入门 JPA
查看>>
JPA(二):JPA 实体映射关系
查看>>
SpringBoot 2.0 | Log4j2 日志写入数据库
查看>>
Docker $ 第一篇 :Docker 入门
查看>>
斯蒂夫·乔布斯《你必须要找到你所爱的东西》
查看>>
Docker $ 第二篇:Docker 镜像的使用
查看>>
Docker $ 第三篇 :Docker 容器的使用
查看>>
Docker $ 第五篇 :Docker 数据管理
查看>>
Docker $ 第六篇 :Docker 网络功能
查看>>
Docker $ Docker 三剑客:Docker-Compose
查看>>
Docker $ 项目部署 :Docker 部署 SpringBoot + Mysql
查看>>