Dieser Artikel zeigt die Injektion von Eigenschaften wie Int, String, Array, List, Set, Map, Datum usw.
Unter ihnen wird die Injektion des Datumsarts mit dem von Spring bereitgestellten Attributeditor erreicht. Zunächst werden die fünf Entitätsklassen verwendet.
Paket com.jadyer.model; import Java.util.date; importieren java.util.list; import Java.util.map; Java.util.set importieren; / *** Injektion gemeinsamer Eigenschaften* @see Injektion von int, String, Array, Liste, Set, Karte, Datum*/ öffentliche Klasse Bean11 {private Integer intValue; private String StrValue; private Zeichenfolge [] ArrayValue; Private List ListValue; privates SetValue; private Map MapValue; privates Datumswert; / * Setter und Getter für sieben Attribute */} Paket com.jadyer.model; öffentliche Klasse Bean22 {private Bean33 Bean33; private Bean44 Bean4422; // Injektion: für den Attributnamen irrelevant, aber mit setBean44 () privat bean55 bean55; / * Setter und Getter für drei Attribute */} Paket com.jadyer.model; öffentliche Klasse Bean33 {private Integer id; privater Zeichenfolge Name; privater String Sex; / * Setter und Getter für drei Attribute */} Paket com.jadyer.model; öffentliche Klasse Bean33 {private Integer id; privater Zeichenfolge Name; privater String Sex; / * Setter und Getter für drei Attribute */} Paket com.jadyer.model; öffentliche Klasse Bean44 {private Integer id; privater Zeichenfolge Name; privater String Sex; privates Ganzzahlalter; /* Setter und Getter der vier Attribute sind geringfügig*/} Paket com.jadyer.model; öffentliche Klasse Bean55 {private String -Passwort; /* Setter und Getter des Passworts sind geringfügig*/} Dann gibt es unseren benutzerdefinierten Java.util.Date -Konverter
Paket com.jadyer.util; Import Java.beans.PropertyEditorsupport; Java.text.ParseException importieren; Java.Text.SimpledateFormat importieren; import Java.util.date; /*** java.util.date Property Editor. Äquivalent zu einem Typkonverter. Hier soll die Zeichenfolge zum Datumstyp * @see konvertieren ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Custom Property Editor -Dinge, Sie müssen die Klasse von PropertyEditorsupport -Klasse erben und die setAtext () -Methode * @see schließlich überschreiben, den benutzerdefinierten Eigenschaftseditor in den Spring und dann * @see injizieren, und dann * @see ----- void setaStext (String text) löst illegalArgumentException {System.out.println ("==============" + Text); try {date date = new SimpledateFormat (Muster) .Parse (Text); this.setValue (Datum); // Hinweis: Was hier eingerichtet wird, ist ein java.util.date -Objekt, daher ist die Ausgabemaßzeit das Standardformat} catch (ParseException e) {e.printstacktrace (); neue IllegalArgumentException (Text) werfen; // Werfen Sie weiterhin illegale Ausnahmen mit Parametern nach oben}}} Die ApplicationContext-Beans.xml-Datei, die für alle Entitätsklassen verwendet wird
<? xmlns: aop = "http://www.springframework.org/schema/aop" xmlns: tx = "http://www.spingframework.org/schema/tx" xsi: Schemalocation = "http://wwwwwwwwwwwwwwwwwwwwwwww.Stx http://www.springframework.org/schema/beans/spring-beans-2.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5sd http://www.springFramework.org/schema/tx http://www.springframework.org/schema/tx/sping-tx/sping-tx-tx-tx-2.5.5.5.5.5.5.5.5.1. <!-Das Standard-Lazy-init = "True" -attribut ist in Zeile 49 der Injava-Klasse beschrieben-> <!-Standard-autowire = "byname oder bytype" sind zwei Möglichkeiten, um die von Spri0ng bereitgestellten Bohnen automatisch zu montieren. Für Details-> <!- ******* ****************************************************************************************************************************************************************** ******* ****************************************************************************************************************************************************************** ******* ****************************************************************************************************************************************************************** ****************************************************************************************************************************************************************** ****************************************************************************************************************************************************************** Die Standardausgabe wird ====== utildatePropertyEditor.Setastext () ======== 4. Juni 2010-> <! Datei und Injektion-> <!-Der Vorteil davon ist, dass einige Konfigurationen in der Federkonfigurationsdatei falsch geschrieben werden, sie sofort erkannt werden kann-> <!-Die Konfigurationsdatei von Strus1.x hat keine Probleme, wenn eine Klasse falsch geschrieben wird. Nur wenn es tatsächlich ausgeführt wird, geben Sie für den Frühjahr Probleme-> <! Dies beinhaltet faul, dh Verzögerungsinitialisierung-> <!-Nur die Feder-Konfigurationsdatei wie <beans xsi: scheemalocation = "http: // www ...." Standard-Lazy-Init = "True">-> <!-Der Aktionsumfang ist die gesamte Konfigurationsdatei. In ähnlicher Weise können die Lazy-Init-Attribute jedes <Bean> -Tags auch separat konfiguriert werden-> <!-, aber dies ist nicht festgelegt, aber die Injektion ist abgeschlossen, wenn der Beanfaktor erstellt wird, was für die Überprüfung von Fehlern-> <! ********** 123 will automatically convert to int--> <property name="strValue" value="Hello_Spring"/> <property name="arrayValue"> <list> <value>array11</value> <value>array22</value> </list> </property> <property name="listValue"> <list> <value>list11</value> <value>list22</value> </list> </property> <property name="setValue"> <set> <value>set11</value> <value>set22</value> </set> </property> <property name="mapValue"> <map> <entry key="key11" value="value11"/> <entry key="key22" value="value22"/> </map> </property> <property name="dateValue" value="June 4, 2010 "/> <!-Hier sollte das Datumsformat mit der Konfiguration von ApplicationContext-editor.xml-> </bean> <bean id =" bean22 "> <Eigenschaft name =" bean33 "ref =" bean33 "/> <Property Name =" Bean44 "Ref =" Bean44 "/> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> </> <Bean5" sein. <bean id = "bean55"> <Eigenschaft name = "Passwort" value = "123"/> </bean> </beans>
Die ApplicationContext-common.xml-Datei, die für Klassen öffentliche Entität verwendet wird
<? xmlns: aop = "http://www.springframework.org/schema/aop" xmlns: tx = "http://www.spingframework.org/schema/tx" xsi: Schemalocation = "http://wwwwwwwwwwwwwwwwwwwwwwww.Stx http://www.springframework.org/schema/beans/spring-beans-2.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springFramework.org/schema/tx http://www.springframework.org/schema/tx/tx/sping-tx-tx-tx-2.5.5.5.1.g/schema/sschema/tx/sping-tx-tx-2.5.5.5.5.-Wa. Beans-> <!-Geben Sie zuerst die abstrakte Eigenschaft des <Bean> -Tags zu True an und dann in anderen <Beans>-> <bean id = "AbstractBean" Abstract = "true"> <Eigenschaft name = "id" value = "2"/> <Property name = "name" value = "zhang qiling". id = "bean33" parent = "AbstractBean"/> <bean id = "bean44" parent = "AbstractBean"> <Eigenschaftsname = "Alter" value = "26"/> </bean> </beans> <! value = "100"/> <Eigenschaft name = "name" value = "zhang san </bean> ->
Die für den Eigenschaft von Java.util.Date verwendete Anwendungscontext-eDitor.xml-Datei
<? xmlns: aop = "http://www.springframework.org/schema/aop" xmlns: tx = "http://www.spingframework.org/schema/tx" xsi: Schemalocation = "http://wwwwwwwwwwwwwwwwwwwwwwww.Stx http://www.springframework.org/schema/beans/spring-beans-2.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5sd http://www.springframework.org/schema/tx http://www.springframework.org/schema/schema/sping-tx/sping-tx-2.5.5.5. id = "UtildatePropertyEditor"> <Eigenschaft name = "muster" value = "yyyyy mm monat ddd"/> </bean> <!-Überprüfen Sie den Quellcode und stellen Sie fest, dass eine SetCustomeditor-Methode in Zeile 131 der CustomeditorConFigurer-Klasse angegeben ist. key = "java.util.date" value-ref = "uTildatePropertyEditor"/> </map> </property> </beans> <!-Sie können auch die interne <bean> verwenden, um den UtildatatePropertyEditor intern zu schreiben-> <!-. <Bean>-> <!-Beispiel lautet wie folgt-> <!-<bean id = "CustomEditors"> <Eigenschaft name = "CustomEditors"> <map> <Eintragsschlüssel = "java.util.date"> <bean> <Property name = "muster" value = "yyyy mon monat ddd tag"/> </ban> </ban> </ban> </ban> </ban>
Schließlich die mit Junit3.8 geschriebene Einheitstestklasse
Paket com.jadyer.junit; Import JUNIT.Framework.TestCase; import org.springframework.context.ApplicationContext; import org.springframework.context.support.classPathXmlApplicationContext; import com.jadyer.model.bean11; import com.jadyer.model.bean22; public class PropertyInjunctionTest erweitert testCase {private applicationContext factory; @Override Protected void setup () löst eine Ausnahme aus { /**** ==== Lesen Sie eine einzelne Konfigurationsdatei ===== **** /// factory = new classPhodexMlApplicationContext ("applicationContext.xml"); /**** ==== Lesen Sie mehrere Konfigurationsdateien mit Arrays ===== **** // Auf diese Weise werden zwei Konfigurationsdateien als eins verwendet. String [] {"applicationContext.xml", "applicationContext-editor.xml"}; // factory = new classpathxmlApplicationContext (configLocations); /**** ====== Verwenden Sie das*Übereinstimmungsmuster, um mehrere Konfigurationsdateien zu lesen new classPathXmlApplicationContext ("ApplicationContext-*. XML"); } /*** Diese Methode zeigt die Injektion gemeinsamer Attribute, einschließlich int, String, Array, Liste, Set, Karte, Datumseinspritzung* @see, wobei die Injektion des Datumstyps mit Hilfe von Spring Property Editor* /public void testinjection11 () {// Bean11 Bean11 = New Bean11 () implementiert wird. // Wenn Sie einfach neu sind, werden seine Attribute nicht injiziert. Die Voraussetzung für die Injektion muss aus dem IOC -Behälter herausgenommen werden, bevor sie bean11 bean11 = (bean11) fabrik injiziert wird. // zu diesem Zeitpunkt wird Bean11 aus dem IOC -Container erhalten, sodass seine Abhängigkeiten in system.out.outln ("bean11.intvalue =" + bean11.getIntValue ()) injiziert werden; System.out.println ("Bean11.strvalue =" + bean11.getStrValue ()); System.out.println ("Bean11.ArrayValue =" + Bean11.getArrayValue ()); System.out.println ("bean11.listValue =" + bean11.getListValue ()); System.out.println ("Bean11.setValue =" + bean11.getSetValue ()); System.out.println ("Bean11.mapValue =" + bean11.getMapValue ()); System.out.println ("Bean11.DateValue =" + bean11.getDateValue ()); } / *** Diese Methode zeigt hauptsächlich die Abstraktion öffentlicher Konfigurationen, um die Konfigurationsmenge zu verringern. System.out.println ("bean22.bean33.id =" + bean22.getbean33 (). GetId ()); System.out.println ("Bean22.bean33.Name =" + bean22.getbean33 (). GetName ()); System.out.println ("Bean22.bean33.Sex =" + bean22.getbean33 (). GetSex ()); System.out.println ("bean22.bean44.id =" + bean22.getBean44 (). GetId ()); System.out.println ("Bean22.bean44.Name =" + bean22.getBean44 (). GetName ()); System.out.println ("Bean22.bean44.Sex =" + bean22.getBean44 (). GetSex ()); System.out.println ("Bean22.bean44.age =" + bean22.getBean44 (). Getage ()); System.out.println ("Bean22.bean55.Password =" + bean22.getbean55 (). GetPassword ()); }}Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.