全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

详解Spring 两种注入的方式(Set和构造)实例

依赖注入是指对象之间关系的控制权由应用代码中转到外部容器。Spring框架主要提供了Set注入和构造注入两种依赖注入方式。

1:Set注入指的就是在接受注入的类中定义一个要被注入的类型的一个set方法,并在参数中定义需要注入的元素。Set注入式一种装配Bean属性的直接方法,但Set注入的一个缺点就是它假设了所有的可变属性都可以通过set方法访问到,无法清晰地表示哪些属性是必须的,哪些属性是可选的。

2:构造注入是在接收注入的类中定义一个构造方法,并在构造方法中定义需要注入的参数。构造注入方式的优势是通过构造方法来强制依赖关系。

下面介绍一下两种方式的用法:

一:在Myeclipse中(笔者使用的是Myeclipse10版本)新建一个项目(Java project或者web project都可)

二:右键项目 - MyEclipse - Add Spring Capabilities(添加Spring支持),选择3.0版本并添加引用核心类库,点击下一步。

三:选择新创建一个spring bean 配置文件放到项目src目录下。

四:点击下一步,指定hibernate 配置页,直接默认,点击完成即可。

五:新建类 HelloWorld.Java

package com.xiami.spring; 
 
public class HelloWorld { 
 
  private String str; 
 
  /** 
   * 默认构造方法 
   */ 
  public HelloWorld() { 
  } 
 
  /** 
   * 用来进行构造注入的构造方法 
   * 
   * @param str 
   */ 
  public HelloWorld(String str) { 
    this.str = str; 
  } 
 
  /** 
   * 用来进行Set注入的方法 
   * @param str 
   */ 
  public void setStr(String str) { 
    this.str = str; 
  } 
 
  /** 
   * 输出字符串的方法 
   */ 
  public void sayHello() { 
    System.out.println(str); 
  } 
} 

六:新建测试类Test.java

package com.xiami.spring; 
 
import org.springframework.beans.factory.BeanFactory; 
import org.springframework.beans.factory.xml.XmlBeanFactory; 
import org.springframework.core.io.ClassPathResource; 
 
public class Test { 
 
  /** 
   * @param args 
   */ 
  public static void main(String[] args) { 
    // TODO Auto-generated method stub 
    //载入spring配置文件 
    BeanFactory bFactory = new XmlBeanFactory(new ClassPathResource("applicationContext.xml")); 
    HelloWorld helloWorld = (HelloWorld) bFactory.getBean("helloService"); 
    helloWorld.sayHello(); 
  } 
 
} 

七:打开applicationContext.xml文件,进行添加bean配置

以下是两种方式添加bean:

1:采用Set注入方式的Bean类的配置

右击applicationContext.xml的编辑界面 - Spring - new bean 打开Bean向导窗口,填写Bean Id(自定义命名和Test.java中getBean("???")对应。Bean class 选择要注入的HelloWorld类。点击Properties属性选项卡,给该bean新建一个属性。

八:在属性向导窗口填写 Name 对应HelloWorld.java中的属性名称,Spring Type 选择value,type选择String,Value 随便填值。finish 既可。

九:保存applicationContext.xml, 添加bean后,配置文件多了红色标记的部分,读者可以运行Test.java。测试一下。发现hello world字符串已经注入到了str变量上。

<?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:p="http://www.springframework.org/schema/p" 
  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> 
 
   
  <!-- 使用Set方式注入 --> 
  <!--  
  <span style="color:#ff0000;"><bean id="helloService" class="com.xiami.spring.HelloWorld" 
    abstract="false" lazy-init="default" autowire="default"> 
    <property name="str"> 
      <value type="java.lang.String">hello world</value> 
    </property> 
  </bean></span> 
   --> 
    
   <!-- 使用构造方法方式注入  
   <bean id="helloService" class="com.xiami.spring.HelloWorld" 
    abstract="false" lazy-init="default" autowire="default"> 
    <constructor-arg> 
      <value type="java.lang.String">构造方法注入方式</value> 
    </constructor-arg> 
   </bean> 
   --> 
    
   </beans> 

2:采用构造注入方式的Bean类的配置

在以上Set方式的Bean Wizard(Bean 向导)窗口,不选择Properties选项卡,变为Constructor Args选项卡。并Add 新增一个构造参数。Index和Java Class 不用填写。

十:在增加构造方式bean的时候,之前第一个得先注释或者删除,不允许有多个id相同的bean。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# spring注入方式  # spring  # 构造注入  # set注入实例  # Spring使用Setter完成依赖注入方式  # Spring:bean注入--Set方法注入  # 详解Spring注入集合(数组、List、Map、Set)类型属性  # Spring中的set注入方法  # 两种  # 配置文件  # 选项卡  # 并在  # 新建一个  # 类中  # 的是  # 是在  # 第一个  # 多个  # 是指  # 右键  # 转到  # 可以通过  # 自定义  # 可选  # 既可  # 介绍一下  # 方法来  # 创建一个 


相关文章: 公众号网站制作网页,微信公众号怎么制作?  C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)  如何选择建站程序?包含哪些必备功能与类型?  最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?  免费ppt制作网站,有没有值得推荐的免费PPT网站?  南平网站制作公司,2025年南平市事业单位报名时间?  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  上海网站制作开发公司,上海买房比较好的网站有哪些?  建设网站制作价格,怎样建立自己的公司网站?  南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?  制作网站的软件下载免费,今日头条开宝箱老是需要下载怎么回事?  常州自助建站:操作简便模板丰富,企业个人快速搭建网站  零服务器AI建站解决方案:快速部署与云端平台低成本实践  建站之星代理如何获取技术支持?  Android自定义listview布局实现上拉加载下拉刷新功能  魔毅自助建站系统:模板定制与SEO优化一键生成指南  个人摄影网站制作流程,摄影爱好者都去什么网站?  如何快速搭建自助建站会员专属系统?  专业公司网站制作公司,用什么语言做企业网站比较好?  如何快速启动建站代理加盟业务?  C++时间戳转换成日期时间的步骤和示例代码  如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法  音乐网站服务器如何优化API响应速度?  清单制作人网站有哪些,近日“兴风作浪的姑奶奶”引起很多人的关注这是什么事情?  ,网页ppt怎么弄成自己的ppt?  专业的网站制作设计是什么,如何制作一个企业网站,建设网站的基本步骤有哪些?  如何选择CMS系统实现快速建站与SEO优化?  如何通过虚拟主机快速搭建个人网站?  如何生成腾讯云建站专用兑换码?  建站之星IIS配置教程:代码生成技巧与站点搭建指南  企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?  黑客如何利用漏洞与弱口令入侵网站服务器?  网站制作公司广州有几家,广州尚艺美发学校网站是多少?  如何选择长沙网站建站模板?H5响应式与品牌定制哪个更优?  如何访问已购建站主机并解决登录问题?  PHP 500报错的快速解决方法  微信小程序 input输入框控件详解及实例(多种示例)  平台云上自助建站如何快速打造专业网站?  整蛊网站制作软件,手机不停的收到各种网站的验证码短信,是手机病毒还是人为恶搞?有这种手机病毒吗?  建站之星Pro快速搭建教程:模板选择与功能配置指南  设计网站制作公司有哪些,制作网页教程?  ,网站推广常用方法?  网站按钮制作软件,如何实现网页中按钮的自动点击?  成都品牌网站制作公司,成都营业执照年报网上怎么办理?  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  如何快速生成橙子建站落地页链接?  外汇网站制作流程,如何在工商银行网站上做外汇买卖?  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  php条件判断怎么写_ifelse和switchcase的使用区别【对比】  如何通过VPS建站无需域名直接访问? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。