栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring(五)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring(五)

文章目录
    • Spring 注入内部Beans
    • Spring 注入内部Beans的样例
    • Spring注入集合
    • Spring注入集合样例
      • 注入Bean引用
      • 注入null和空字符串的值

Spring 注入内部Beans
  1. Java的内部类是在其他类的范围内被定义的,所以inner beans 是在其他 bean 的范围内定义的 bean。
  2. 或元素中的元素称为内部bean




   
      
         
      
   


Spring 注入内部Beans的样例
  1. 创建一个名称为 SpringExample 的项目,并且在创建项目的 src 文件夹中创建一个包 com.tutorialspoint 。
  2. 使用 Add External JARs 选项,添加所需的 Spring 库
  3. 在 com.tutorialspoint 包中创建Java类TextEditor、SpellChecker 和 MainApp。
  4. 在 src 文件夹中创建 Beans 配置文件 Beans.xml。

TextEditor.java 文件的内容:

package com.tutorialspoint;
public class TextEditor {
   private SpellChecker spellChecker;
   // a setter method to inject the dependency.
   public void setSpellChecker(SpellChecker spellChecker) {
      System.out.println("Inside setSpellChecker." );
      this.spellChecker = spellChecker;
   }  
   // a getter method to return spellChecker
   public SpellChecker getSpellChecker() {
      return spellChecker;
   }
   public void spellCheck() {
      spellChecker.checkSpelling();
   }
}

依赖的类文件 SpellChecker.java 内容:

package com.tutorialspoint;
public class SpellChecker {
   public SpellChecker(){
      System.out.println("Inside SpellChecker constructor." );
   }
   public void checkSpelling(){
      System.out.println("Inside checkSpelling." );
   }   
}

MainApp.java 文件的内容:

package com.tutorialspoint;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class MainApp {
   public static void main(String[] args) {
      ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml");
      TextEditor te = (TextEditor) context.getBean("textEditor");
      te.spellCheck();
   }
}

使用内部 bean 为基于 setter 注入进行配置的配置文件 Beans.xml 文件:





   
   
      
         
       
   


运行程序,输入结果为:

Inside SpellChecker constructor.
Inside setSpellChecker.
Inside checkSpelling.
Spring注入集合
  1. 可以使用 value 属性来配置基本数据类型和在你的 bean 配置文件中使用标签的 ref 属性来配置对象引用
  2. 如果想要传递多个值,如 Java Collection 类型 List、Set、Map 和 Properties,Spring 提供了四种类型的集合的配置元素
元素描述
list有助于连线,如注入一列值,允许重复。
set有助于连线一组值,但是不能重复。
map可以用来注入名称-值对的集合,其中名称和值可以是任何类型。
props可以用来注入名称-值对的集合,其中名称和值都是字符串类型。
  1. 可以使用list或者ser来连接任何java.util.Collection 的实现或数组,以下是两种实现情况
    1. 传递集合中直接的值
    2. 传递一个 bean 的引用作为集合的元素
Spring注入集合样例
  1. 创建一个名称为 SpringExample 的项目,并且在创建项目的 src 文件夹中创建一个包 com.tutorialspoint
  2. 使用 Add External JARs 选项,添加所需的 Spring 库
  3. 在 com.tutorialspoint 包中创建Java类TextEditor、SpellChecker 和 MainApp。
  4. 在 src 文件夹中创建 Beans 配置文件 Beans.xml

JavaCollection.java 文件的内容:

package com.tutorialspoint;
import java.util.*;
public class JavaCollection {
   List addressList;
   Set  addressSet;
   Map  addressMap;
   Properties addressProp;
   // a setter method to set List
   public void setAddressList(List addressList) {
      this.addressList = addressList;
   }
   // prints and returns all the elements of the list.
   public List getAddressList() {
      System.out.println("List Elements :"  + addressList);
      return addressList;
   }
   // a setter method to set Set
   public void setAddressSet(Set addressSet) {
      this.addressSet = addressSet;
   }
   // prints and returns all the elements of the Set.
   public Set getAddressSet() {
      System.out.println("Set Elements :"  + addressSet);
      return addressSet;
   }
   // a setter method to set Map
   public void setAddressMap(Map addressMap) {
      this.addressMap = addressMap;
   }  
   // prints and returns all the elements of the Map.
   public Map getAddressMap() {
      System.out.println("Map Elements :"  + addressMap);
      return addressMap;
   }
   // a setter method to set Property
   public void setAddressProp(Properties addressProp) {
      this.addressProp = addressProp;
   } 
   // prints and returns all the elements of the Property.
   public Properties getAddressProp() {
      System.out.println("Property Elements :"  + addressProp);
      return addressProp;
   }
}

MainApp.Java文件内容

package com.tutorialspoint;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class MainApp {
   public static void main(String[] args) {
      ApplicationContext context = 
             new ClassPathXmlApplicationContext("Beans.xml");
      JavaCollection jc=(JavaCollection)context.getBean("javaCollection");
      jc.getAddressList();
      jc.getAddressSet();
      jc.getAddressMap();
      jc.getAddressProp();
   }
}

配置所有类型的集合的配置文件 Beans.xml 文件:





   
   

      
      
         
            INDIA
            Pakistan
            USA
            USA
         
      

      
      
         
            INDIA
            Pakistan
            USA
            USA
        
      

      
      
         
            
            
            
            
         
      

      
      
         
            INDIA
            Pakistan
            USA
            USA
         
      

   


运行程序,输出以下结果

List Elements :[INDIA, Pakistan, USA, USA]
Set Elements :[INDIA, Pakistan, USA]
Map Elements :{1=INDIA, 2=Pakistan, 3=USA, 4=USA}
Property Elements :{two=Pakistan, one=INDIA, three=USA, four=USA}
注入Bean引用
  1. 注入 bean 的引用作为集合的元素,以将引用和值混合在一起,如下所示




   
   

      
      
         
            
            
            Pakistan
         
      

      
      
         
            
            
            Pakistan
         
      

      
      
         
            
            
            
         
      

   


  1. 为了使用上面定一定bean,需要定义setter方法,
注入null和空字符串的值

bean配置样例


   

  1. 上述bean配置相当于 Java 代码:exampleBean.setEmail("")。
  2. 如果需要传递一个NULL值,可以这么传递这个空值

   

  1. 上述bean配置相当于 Java 代码:exampleBean.setEmail(null)。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/329072.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号