`

3. spring_injection

阅读更多

Spring的普通属性注入

    参见Spring文档3.3.3

 

什么叫属性编辑器呢?
    * 自定义属性编辑器,是将Spring配置文件中的字符串转换成相应的对象注入,
       Spring已经内置了许多类型编辑器,我们可以定义自己的属性编辑器
  
如何定义属性编辑器?
    * 继承PropertyEditorSupport类,覆写setAsText()方法,参见UtilDatePropertyEditor.java
    * 将属性编辑器注册到Spring中,参见applicationContext-editor.xml

 

=======================================================================

Bean1.java

 

package com.bjsxt.spring;

import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;

 

public class Bean1 {

     private String strValue;

     private int intValue;

     private List listValue;

     private Set setValue;

     private String[] arrayValue;

     private Map map;

     private Date dateValue;

 

     public String[] getArrayValue() {
          return arrayValue;
     }

 

     public void setArrayValue(String[] arrayValue) {
          this.arrayValue = arrayValue;
     }

 

     public int getIntValue() {
          return intValue;
     }

 

     public void setIntValue(int intValue) {
          this.intValue = intValue;
     }

 

     public List getListValue() {
          return listValue;
     }

 

     public void setListValue(List listValue) {
          this.listValue = listValue;
     }

 

     public Map getMap() {
          return map;
     }

 

     public void setMap(Map map) {
          this.map = map;
     }

 

    public Set getSetValue() {
          return setValue;
    }

 

     public void setSetValue(Set setValue) {
          this.setValue = setValue;
     }

 

     public String getStrValue() {
          return strValue;
     }

 

     public void setStrValue(String strValue) {
          this.strValue = strValue;
    }

 

     public Date getDateValue() {
          return dateValue;
     }

 

     public void setDateValue(Date dateValue) {
          this.dateValue = dateValue;
     }

 

}

 

 

 

=======================================================================

UtilDatePropertyEditor.java

 

package com.bjsxt.spring;

import java.beans.PropertyEditorSupport;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

 

public class UtilDatePropertyEditor extends PropertyEditorSupport{

     private String format;
 
     public void setAsText(String text) throws IllegalArgumentException {


          System.out.println("UtilDatePropertyEditor.setAsText()-- text = " + text);
          SimpleDateFormat sdf = new SimpleDateFormat(format);


          try {
               Date date = sdf.parse(text);
               this.setValue(date);
          } catch (ParseException e) {
               e.printStackTrace();
          }
     }

 

     public void setFormat(String format) {
          this.format = format;
     }  

 
}

 

 

 

=======================================================================

applicationContext-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:aop="http://www.springframework.org/schema/aop"
      xmlns:tx="http://www.springframework.org/schema/tx"
      xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
     <bean id="Bean1" class="com.bjsxt.spring.Bean1">
          <property name="strValue" value="Hello"></property>
          <property name="intValue" value="123"></property>
          <property name="listValue">
               <list>
                    <value>List1</value>
                        <value>List2</value>
                        <value>List3</value>
                        <value>List4</value>
                </list>
           </property>
           <property name="setValue">
               <set>
                    <value>set1</value>
                    <value>set2</value>
                    <value>set3</value>
                    <value>set4</value>
               </set>
                      </property>
      <property name="arrayValue">
           <list>
                <value>array1</value>
                <value>array2</value>
                <value>array3</value>
                            <value>array4</value>
           </list>
      </property>
      <property name="map">
           <map>
                <entry key="key1" value="value1"></entry>
                <entry key="key2" value="value2"></entry>
                <entry key="key3" value="value3"></entry>
                            <entry key="key4" value="value4"></entry>
           </map>
      </property>
      <property name="dateValue">
           <value>2008-08-08</value>
      </property>
 </bean>
</beans>

 

 

 

=======================================================================

applicationContext-editor.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:aop="http://www.springframework.org/schema/aop"
      xmlns:tx="http://www.springframework.org/schema/tx"
      xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
          
    <!--  -->
      <bean id="CustomEditorConfigurer"

               class="org.springframework.beans.factory.config.CustomEditorConfigurer">
            <property name="customEditors">
                  <map>
                        <entry key="java.util.Date">
                              <bean class="com.bjsxt.spring.UtilDatePropertyEditor">
                                    <property name="format" value="yyyy-MM-dd"></property>
                              </bean>
                        </entry>
                  </map>
            </property>
      </bean>
</beans>

 

 

 

=======================================================================

InjectionTest.java

 

package com.bjsxt.spring;

import junit.framework.TestCase;

import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;

 

public class InjectionTest extends TestCase {

 

      public void testInjection1() {
            // 通过多个配置文件初始化bean工厂
            // String[] array = new String[]{"applicationContext-beans.xml"};
            // BeanFactory factory = new ClassPathXmlApplicationContext(array);
            // 通过配置文件初始化bean工厂
            BeanFactory factory = new ClassPathXmlApplicationContext(
                   "applicationContext-*.xml");
            Bean1 bean1 = (Bean1) factory.getBean("Bean1");

            System.out.println("strValue " + bean1.getStrValue());
            System.out.println("intValue " + bean1.getIntValue());
            System.out.println("listValue " + bean1.getListValue());
            System.out.println("setValue " + bean1.getSetValue());
            System.out.println("arrayValue " + bean1.getArrayValue());
            System.out.println("mapValue " + bean1.getMap());
            System.out.println("dateValue " + bean1.getDateValue());
      }

}

分享到:
评论

相关推荐

    org.springframework.context_3.0.5.release.jar.zip

    在Java开发领域,Spring框架无疑是最重要的依赖注入(Dependency Injection,简称DI)和面向切面编程(Aspect-Oriented Programming,简称AOP)框架之一。而`org.springframework.context`包是Spring框架的核心部分...

    1.spring_whyspring

    3. **数据访问集成(Data Access Integration)**:Spring支持多种数据访问技术,包括JDBC、ORM框架(如Hibernate和MyBatis),提供了事务管理、数据源连接池等功能,方便数据库操作。 4. **MVC框架**:Spring MVC...

    Manning.Spring.in.Action.5th.Edition_spring_action_

    《Spring in Action 第5版》是关于Spring框架的一本权威指南,由Manning出版社出版,主要聚焦于Spring框架的最新版本及其在实际开发中的应用。"Spring Action"这个标签突出了本书的核心内容,即如何实战操作Spring...

    Struts2_0+spring2_0+hibernate3_1.zip_site:www.pudn.com_spring_ss

    **Spring** 框架是Java企业级应用的核心,它提供了全面的依赖注入(DI,Dependency Injection)和面向切面编程(AOP,Aspect-Oriented Programming)支持。Spring不仅包括了数据访问、事务管理、远程服务等功能,还...

    myMVC.rar_spring_springframework

    Spring以其依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP)的核心特性而著名,这使得代码更加模块化和易于管理。 在MVC模式中,Spring扮演着控制器的角色,连接模型和...

    shop第一次做的项目.zip_spring_网上商城 spring_购物_购物SpringMVC_购物商城项目

    首先,Spring框架是Java开发中的核心组件,它提供了依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP)等特性,使得开发者可以更加灵活地管理和组织代码。在本项目中,Spring...

    Spring_IOC_.rar_spring ioc

    在Spring框架中,IOC主要体现在两个方面:依赖注入(Dependency Injection,简称DI)和Bean工厂。依赖注入是IOC的核心,它允许我们不通过硬编码的方式来指定对象之间的依赖关系,而是通过配置文件或注解来声明这些...

    spring+dwr.rar_dwr_dwr SPRING_spring dwr

    它支持依赖注入(Dependency Injection, DI),面向切面编程(Aspect-Oriented Programming, AOP),以及模型-视图-控制器(Model-View-Controller, MVC)等设计模式。Spring框架的核心特性可以用来构建任何Java应用...

    BBS.rar_bbs论坛spring_hibernate_spring bbs_struts hibernate bbs_论坛

    2. **Spring框架**:Spring是一个全面的企业级应用框架,提供了DI(Dependency Injection)和AOP(Aspect-Oriented Programming)功能。DI允许开发者解耦组件,提高代码的可测试性和灵活性;AOP则允许定义横切关注点...

    SSM.zip_mybatis_spring_springMVC mybatis_springmvc_ssm

    **Spring框架** 是一个全面的企业级应用开发框架,提供依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP),简化了Java应用的开发。Spring的核心是IoC容器,它负责创建对象、...

    petShopINspring.zip_petshop_spring_宠物商店

    2. **依赖注入(Dependency Injection, DI)** - Spring的核心特性之一就是DI,它允许开发者声明性地管理对象及其依赖关系,无需硬编码依赖。 - 在宠物商店项目中,可以看到服务类(如PetService)和DAO(如PetDAO...

    尚学堂_Spring_0300_IOC_Injection_Type

    标题中的"Spring_0300_IOC_Injection_Type"指的是Spring框架中的依赖注入(Dependency Injection,简称DI)机制,特别是关于类型注入(Type Injection)的知识点。在Spring框架中,依赖注入是核心特性之一,它使得...

    spring_injection1

    标题“spring_injection1”可能指的是Spring框架中的依赖注入(Dependency Injection,简称DI)概念的讲解,这在Spring框架中是核心特性之一。这个压缩包可能包含了一些关于Spring DI的源代码示例或者教程文档。 ...

    demo.zip_DEMO_spring mvc_ssm demo

    Spring的核心特性包括依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP)。依赖注入使得对象之间的关系在运行时动态管理,降低了代码的耦合度。而AOP则允许开发者定义“切面...

    spring-framework-5.1.x_spring_

    首先,我们要理解Spring的核心设计思想——依赖注入(Dependency Injection,DI)。Spring通过DI实现了组件之间的松耦合,使得代码更易于测试和维护。在5.1.x版本中,Spring对DI机制进行了优化,提供了更加灵活的...

    ssh_crm.rar_crm_essentialyt3_spring_ssh_ssh_crm

    Spring以其依赖注入(Dependency Injection, DI)和面向切面编程(Aspect-Oriented Programming, AOP)而闻名,它简化了组件的装配和管理,降低了系统的耦合度。在SSH CRM中,Spring将负责处理事务管理、数据访问层...

    org.springframework.core.jar

    Spring的核心特性包括依赖注入(Dependency Injection, DI)、面向切面编程(Aspect-Oriented Programming, AOP)以及对各种数据库访问技术的支持。`org.springframework.core.jar`作为Spring框架的基础,扮演着至关...

    spring_note.rar_inversion_spring concept

    dependency injection AOP的概念与好处 Spring简介 Spring应用IOC/DI(重要) xml annotation Spring应用AOP(重要) xml annotation Struts2.1.6 + Spring2.5.6 + Hibernate3.3.2整合(重要) ...

    J2EE大家好.rar_J2EE_hibernate_spring_spring hibernate

    Spring框架则是一个全面的企业级应用开发框架,它包含了依赖注入(DI,Dependency Injection)、面向切面编程(AOP,Aspect-Oriented Programming)、模型-视图-控制器(MVC,Model-View-Controller)等核心特性。...

Global site tag (gtag.js) - Google Analytics