Setter方法输入

实体类Rumenz.java/Holder.java

package com.rumenz;public class Rumenz {private Integer id;private String name;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}
}package com.rumenz;public class Holder {private Rumenz rumenz;public Rumenz getRumenz() {return rumenz;}public void setRumenz(Rumenz rumenz) {this.rumenz = rumenz;}
}

手动输入方式

  • XML 资源配置元信息

配置Beans.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:util="http://www.springframework.org/schema/util"xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/util https://www.springframework.org/schema/util/spring-util.xsd"><bean id="rumenz" class="com.rumenz.Rumenz"><property name="id" value="123"/><property name="name" value="入门小站"/></bean><bean id="holder" class="com.rumenz.Holder"><property name="rumenz" ref="rumenz"/></bean>
</beans>

调用

package com.rumenz;
public class DemoApplication {public static void main(String[] args) {DefaultListableBeanFactory db=new DefaultListableBeanFactory();XmlBeanDefinitionReader xr=new XmlBeanDefinitionReader(db);xr.loadBeanDefinitions("Beans.xml");Holder bean = db.getBean(Holder.class);System.out.println(bean.getRumenz().getName());}
}
  • Java 注解配置元信息

配置文件Beans.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:util="http://www.springframework.org/schema/util"xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/util https://www.springframework.org/schema/util/spring-util.xsd"><bean id="rumenz" class="com.rumenz.Rumenz"><property name="id" value="123"/><property name="name" value="入门小站"/></bean>
</beans>

调用

package com.rumenz;import org.springframework.beans.factory.support.DefaultListableBeanFactory;
import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.Bean;public class DemoApplication {public static void main(String[] args) {AnnotationConfigApplicationContext ac=new AnnotationConfigApplicationContext();XmlBeanDefinitionReader xr=new XmlBeanDefinitionReader(ac);xr.loadBeanDefinitions("Beans.xml");ac.register(DemoApplication.class);ac.refresh();Holder bean = ac.getBean(Holder.class);System.out.println(bean.getRumenz().getName());ac.close();}@Beanpublic Holder holder(Rumenz rumenz){Holder h=new Holder();h.setRumenz(rumenz);return h;}}
  • API 配置元信息

配置文件Beans.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:util="http://www.springframework.org/schema/util"xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/util https://www.springframework.org/schema/util/spring-util.xsd"><bean id="rumenz" class="com.rumenz.Rumenz"><property name="id" value="123"/><property name="name" value="入门小站"/></bean>
</beans>

调用

package com.rumenz;ramework.context.annotation.Bean;public class DemoApplication {public static void main(String[] args) {AnnotationConfigApplicationContext ac=new AnnotationConfigApplicationContext();BeanDefinition beanDefinition=createBeanDefinition();ac.registerBeanDefinition("holder",beanDefinition);XmlBeanDefinitionReader xr=new XmlBeanDefinitionReader(ac);xr.loadBeanDefinitions("Beans.xml");ac.register(DemoApplication.class);ac.refresh();Holder bean = ac.getBean(Holder.class);System.out.println(bean.getRumenz().getName());ac.close();}private static BeanDefinition createBeanDefinition() {BeanDefinitionBuilder beanDefinitionBuilder=BeanDefinitionBuilder.genericBeanDefinition(Holder.class);beanDefinitionBuilder.addPropertyReference("rumenz","rumenz");return beanDefinitionBuilder.getBeanDefinition();}}

自动模式注入

  • byType

配置文件Beans.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:util="http://www.springframework.org/schema/util"xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/util https://www.springframework.org/schema/util/spring-util.xsd"><bean id="rumenz" class="com.rumenz.Rumenz"><property name="id" value="123"/><property name="name" value="入门小站"/></bean><bean id="holder" class="com.rumenz.Holder" autowire="byType"></bean>
</beans>

调用

package com.rumenz;public class DemoApplication {public static void main(String[] args) {DefaultListableBeanFactory db=new DefaultListableBeanFactory();XmlBeanDefinitionReader xr=new XmlBeanDefinitionReader(db);xr.loadBeanDefinitions("Beans.xml");Holder bean = db.getBean(Holder.class);System.out.println(bean.getRumenz().getName());}}
  • byName

配置文件Beans.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:util="http://www.springframework.org/schema/util"xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/util https://www.springframework.org/schema/util/spring-util.xsd"><bean id="rumenz" class="com.rumenz.Rumenz"><property name="id" value="123"/><property name="name" value="入门小站"/></bean><bean id="holder" class="com.rumenz.Holder" autowire="byName"></bean>
</beans>

调用

package com.rumenz;public class DemoApplication {public static void main(String[] args) {DefaultListableBeanFactory db=new DefaultListableBeanFactory();XmlBeanDefinitionReader xr=new XmlBeanDefinitionReader(db);xr.loadBeanDefinitions("Beans.xml");Holder bean = db.getBean(Holder.class);System.out.println(bean.getRumenz().getName());}}

原文: https://rumenz.com/rumenbiji/spring-setter-injection.html

Spring Setter方法注入相关推荐

  1. Spring的setter方法注入和构造器注入的对比

    我们知道,Spring的依赖注入,有setter方法注入,实例变量注入,构造器注入等. Spring官方文档里,提到: 依赖注入存在两种主要形式: 构造器注入 setter方法注入 注:其实对于Spr ...

  2. Spring Setter依赖注入示例

    学习如何编写Spring Setter依赖注入示例 . Setter注入是Spring依赖注入的一种 . Spring支持字段注入,Setter注入以及构造函数注入,以将依赖项注入Spring托管的b ...

  3. 依赖注入,setter方法注入

    Spring框架的依赖注入通常有两种实现方式,一种是使用构造方法注入,另一种是使用属性的setter方法注入,这里是setter方法注入: 目录结构: 1.  创建com.DI 包,并在包中创建Tes ...

  4. 使用属性的setter方法注入

    使用属性的setter方法注入 将A类的一个Bean看作类B的一个属性,并类B通过setter方法实现Bean的实例化,即声明变量. 使用setter方法注入是Spring框架中最主流的注入方式,利用 ...

  5. Spring4.x(11)依赖注入-setter方法注入

    依赖注入-setter方法注入 通过无参构造函数+setter方法注入. 一.编写CustomerDao接口 package com.yiidian.dao; /*** * @author http: ...

  6. Spring查找方法注入(Lookup method injection)的底层实现原理

    2019独角兽企业重金招聘Python工程师标准>>> 美女邀我去歌舞厅娱乐,我拒绝了,我觉得跟技术宅男们分享技术更为重要. Spring方法注入的概念:一个由容器管理的single ...

  7. Spring官网阅读(二)(依赖注入及方法注入)

    上篇文章我们学习了官网中的1.2,1.3两小节,主要是涉及了容器,以及Spring实例化对象的一些知识.这篇文章我们继续学习Spring官网,主要是针对1.4小节,主要涉及到Spring的依赖注入.虽 ...

  8. Spring的依赖注入方法

    文章目录 Spring中依赖注入的方法 基于构造方法的注入 根据索引赋值 根据所属类型传值 根据所属类型传值(不推荐) 基于setter注入 基于接口的注入(不常用,这里不说明了) 拓展方式注入 P命 ...

  9. Spring Setter注入原理

    本文内容如有错误.不足之处,欢迎技术爱好者们一同探讨,在本文下面讨论区留言,感谢.欢迎转载,转载请注明出处(https://blog.csdn.net/feng_xiaoshi/article/det ...

最新文章

  1. matlab内存管理
  2. 1. 训练集、开发集、测试集(Train/Dev/Test sets)
  3. 在github上面下载文件夹的方法666
  4. Android---手动创建线程与GUI线程同步(三)
  5. python对列表进行分页_python列表分页
  6. 新海诚没有参与制作的作品_继《你的名字》之后,新海诚又出新作啦!!
  7. Container View Controller
  8. android listview asynctask,Android精通之AsyncTask与ListView讲解
  9. php pdo 缓冲,PDO支持数据缓存_PHP教程
  10. LeetCode 1684. 统计一致字符串的数目(哈希)
  11. child计算机英语作文,范文:The One-Child Family
  12. zabbix专题:第六章 动作Actions、告警方式Medias
  13. 如何拥有一个有意义的人生
  14. sessionStorage跨标签取值
  15. 算术编码python实现_算术编码(Arithmetic coding)的实现
  16. nestjs连接mysql数据库的方法与使用
  17. arduino 控制无刷电机_怎样使用Arduino控制无刷电机
  18. php twitter 登陆sdk,使用Twitter OAuth(PHP)登录Twitter的问题
  19. 【实战练习】汽油辛烷值优化建模(二)(问题一的详细讲解)
  20. 源码安装禅道11.0总结

热门文章

  1. vue2.0实现分页组件
  2. FFMpeg写MP4文件例子分析
  3. [Java] 蓝桥杯ADV-203 算法提高 8皇后·改
  4. 蓝桥杯 PREV-3 历届试题 带分数 Java版
  5. 【Oracle批量更新】根据一个大表批量更新另一大表的方法比较
  6. San 3.7.3 发布,百度开源的 MVVM 组件框架
  7. MDaemon邮件服务器在WorldClient新增的聊天功能
  8. c3p0配置及泄露问题
  9. Eclipse搭建SSH环境实现Struts2分页显示mysql数据库表中内容
  10. 部署Lync监控报告