suchen
HeimJavajavaLernprogrammDetaillierte Einführung in JAVAEE – Frühling

Detaillierte Einführung in JAVAEE – Frühling

Jun 21, 2017 am 09:53 AM
javaee介绍搭建概念

1. Einführung in den Frühling

1. Federposition in der dreistufigen Architektur

2. Spring-One-Stop-Framework

Positiv Dies liegt daran, dass das Federgerüst von Natur aus behälterartig ist.

Die im Behälter installierten Objekte haben also ihre Funktion.

Nicht Nur schließt es andere Frameworks nicht aus, es kann auch anderen Frameworks helfen.

 AOP-Unterstützung, IOC-Ideen, Spring JDBC, AOP-Transaktionen, Junit-Testunterstützung

2. Federkonstruktion

1. Leitfadenpaket

 

 

Protokollpaket: com.springsource.org.apache. commons.logging-1.1.1.jar

Optional: com.springsource.org.apache.log4j-1.2.15.jar (die alte Version muss importiert werden, und der Import kann garantieren, dass sie ausgeführt wird )

 2. Erstellen Sie ein Objekt

public class User {private String name;private Integer age;    public String getName() {return name;
    }public void setName(String name) {this.name = name;
    }public Integer getAge() {return age;
    }public void setAge(Integer age) {this.age = age;
    }
}

3. Schreiben Sie das Konfigurationsregistrierungsobjekt in den Container

Der Speicherort ist beliebig (es wird empfohlen, ihn unter src abzulegen)
Der Name der Konfigurationsdatei ist beliebig (empfohlen applicationContext.xml)

Importbeschränkungen:

Bearbeiten Sie dann applicationContext.xml

Nachdem Sie den Editor aufgerufen haben, klicken Sie auf „Hinzufügen und xsi importieren“

 

Nachdem Sie xsi hinzugefügt haben, klicken Sie erneut auf „Hinzufügen“ und geben Sie einen neuen Namespace an

Wählen Sie dann das xsd aus, das Sie gerade importiert haben

Klicken Sie auf OK, kehren Sie zur aktuellen Seite zurück, legen Sie den Namen des Namespace fest (Sie können die erste Hälfte des Standorts direkt kopieren) Hinweis), Präfix Lassen Sie es leer

 

Klicken Sie auf OK und die folgende Oberfläche wird angezeigt, die anzeigt, dass der Import erfolgreich war.

 

AnwendungContext.xml schreiben:

<?xml  version="1.0" encoding="UTF-8"?><beans><!-- 将User对象交给spring容器管理 --><bean></bean></beans>

4. Codetest

    @Testpublic void fun1(){    //1 创建容器对象ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");//2 向容器"要"user对象User u = (User) ac.getBean("user");//3 打印user对象        System.out.println(u);
    }

3. Frühlingskonzept

1. Gedanken

1.1 ioc

1.2 di

Die Implementierungsklassenfunktion ist relativ einfach.

Der Container der BeanFactory-Schnittstellenimplementierungsklasse ist, dass das Objekt jedes Mal erstellt wird, wenn das Objekt abgerufen wird.

  2.2 ApplicationContext

  Alle im Container konfigurierten Objekte werden bei jedem Start des Containers erstellt und bieten weitere Funktionen.

 

Laden Sie die Konfigurationsdatei aus dem Klassenpfad: ClassPath Use BeanFactory.

4. Detaillierte Erläuterung der Federkonfiguration

 1.Bean Element

 

  2.Bean元素进阶

   2.1 scope属性

   singleton(默认值):单例对象.被标识为单例的对象在spring容器中只会存在一个实例

   prototype:多例原型.被标识为多例的对象,每次再获得才会创建.每次创建都是新的对象.整合struts2时,ActionBean必须配置为多例的.

   request:web环境下.对象与request生命周期一致.

   session:web环境下,对象与session生命周期一致.

   2.2 生命周期属性

   init-method:配置一个方法作为生命周期初始化方法.spring会在对象创建之后立即调用.

   destory-method:配置一个方法作为生命周期的销毁方法.spring容器在关闭并销毁所有容器中的对象之前调用.

    <bean></bean>

 

  3.spring创建对象的方式

    <!-- 创建方式1:空参构造创建(重点)  --><bean></bean> <!-- 创建方式2:静态工厂创建 (了解)
          调用UserFactory的createUser方法创建名为user2的对象.放入容器     --><bean></bean><!-- 创建方式3:实例工厂创建 (了解)
         调用UserFactory对象的createUser2方法创建名为user3的对象.放入容器     --><bean></bean><bean></bean>

 

  4.spring的分模块配置

    <!-- 导入其他spring配置文件 --><import></import>

 

五、spring属性注入

  1.注入方式

   1.1 set方法注入(重中之重)

    <!-- set方式注入: --><bean><!--值类型注入: 为User对象中名为name的属性注入tom作为值 --><property></property><property></property><!-- 引用类型注入: 为car属性注入下方配置的car对象 --><property></property></bean><!-- 将car对象配置到容器中 --><bean><property></property><property></property></bean>

   1.2 构造函数注入(重点)

    <!-- 构造函数注入 --><bean><!-- name属性: 构造函数的参数名 --><!-- index属性: 构造函数的参数索引 --><!-- type属性: 构造函数的参数类型--><constructor-arg></constructor-arg><constructor-arg></constructor-arg></bean>

   1.3 p名称空间注入

<!-- p名称空间注入, 走set方法
    1.导入P名称空间  xmlns:p="http://www.springframework.org/schema/p"
    2.使用p:属性完成注入
        |-值类型: p:属性名="值"
        |-对象类型: p:属性名-ref="bean名称" --><bean></bean>

   1.4 spel注入

<!-- 
    spel注入: spring Expression Language sping表达式语言 --><bean><property></property><property></property><property></property></bean>

 

  2.复杂类型注入

   2.1 数组

    <!-- 如果数组中只准备注入一个值(对象),直接使用value|ref即可 
    <property name="arr" value="tom" ></property>--><!-- array注入,多个元素注入 --><property><array><value>tom</value><value>jerry</value><ref></ref></array></property>

   2.2 List

    <!-- 如果List中只准备注入一个值(对象),直接使用value|ref即可 
    <property name="list" value="jack" ></property>--><property><list><value>jack</value><value>rose</value><ref></ref></list></property>

   2.3 Map

    <!-- map类型注入 --><property><map><entry></entry><entry></entry><entry></entry></map> </property>

   2.4 Properties

    <!-- prperties 类型注入 --><property><props><prop>com.jdbc.mysql.Driver</prop><prop>root</prop><prop>1234</prop></props></property>

 

六、练习:将spring容器应用到struts-crm项目

  管理Service对象以及Dao对象

  1.导包(4+2),再加1

   再加1指的是:spring-web-4.2.4.RELEASE.jar(因为要用到web的监听)

 

  2.将Service对象以及Dao对象配置到spring容器

<?xml  version="1.0" encoding="UTF-8"?><beans><!-- 配置Dao --><bean></bean><bean></bean><bean></bean><!-- 配置Service --><bean><property></property></bean><bean><property></property><property></property></bean><bean><property></property></bean></beans>

 

  3.在Action中获得容器中的Service对象

   3.1 web.xml中配置容器随项目启动

  <!-- 可以让spring容器随项目的启动而创建,随项目的关闭而销毁 -->
  <listener>  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <!-- 指定加载spring配置文件的位置 -->
  <context-param>  <param-name>contextConfigLocation</param-name>  <param-value>classpath:applicationContext.xml</param-value>
  </context-param>

   3.2 在Action中获得容器

        //获得spring容器=>从Application域获得即可        //1 获得servletContext对象ServletContext sc = ServletActionContext.getServletContext();//2.从Sc中获得ac容器WebApplicationContext ac = WebApplicationContextUtils.getWebApplicationContext(sc);//3.从容器中获得CustomerServiceUserService us = (UserService) ac.getBean("userService");

 

  4.管理容器在项目中的生命周期

   下面错误的示范.导致每次请求都创建新的容器

        //创建容器对象ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");//获得cs(customerService对象)CustomerService cs = (CustomerService) ac.getBean("customerService");

 

Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in JAVAEE – Frühling. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Wie benutze ich Maven oder Gradle für das fortschrittliche Java -Projektmanagement, die Erstellung von Automatisierung und Abhängigkeitslösung?Wie benutze ich Maven oder Gradle für das fortschrittliche Java -Projektmanagement, die Erstellung von Automatisierung und Abhängigkeitslösung?Mar 17, 2025 pm 05:46 PM

In dem Artikel werden Maven und Gradle für Java -Projektmanagement, Aufbau von Automatisierung und Abhängigkeitslösung erörtert, die ihre Ansätze und Optimierungsstrategien vergleichen.

Wie erstelle und verwende ich benutzerdefinierte Java -Bibliotheken (JAR -Dateien) mit ordnungsgemäßem Versioning und Abhängigkeitsmanagement?Wie erstelle und verwende ich benutzerdefinierte Java -Bibliotheken (JAR -Dateien) mit ordnungsgemäßem Versioning und Abhängigkeitsmanagement?Mar 17, 2025 pm 05:45 PM

In dem Artikel werden benutzerdefinierte Java -Bibliotheken (JAR -Dateien) mit ordnungsgemäßem Versioning- und Abhängigkeitsmanagement erstellt und verwendet, wobei Tools wie Maven und Gradle verwendet werden.

Wie implementiere ich mehrstufige Caching in Java-Anwendungen mit Bibliotheken wie Koffein oder Guava-Cache?Wie implementiere ich mehrstufige Caching in Java-Anwendungen mit Bibliotheken wie Koffein oder Guava-Cache?Mar 17, 2025 pm 05:44 PM

In dem Artikel wird in der Implementierung von mehrstufigem Caching in Java mithilfe von Koffein- und Guava-Cache zur Verbesserung der Anwendungsleistung erläutert. Es deckt die Einrichtungs-, Integrations- und Leistungsvorteile sowie die Bestrafung des Konfigurations- und Räumungsrichtlinienmanagements ab

Wie kann ich JPA (Java Persistence-API) für Objektrelationszuordnungen mit erweiterten Funktionen wie Caching und faulen Laden verwenden?Wie kann ich JPA (Java Persistence-API) für Objektrelationszuordnungen mit erweiterten Funktionen wie Caching und faulen Laden verwenden?Mar 17, 2025 pm 05:43 PM

In dem Artikel werden mit JPA für Objektrelationszuordnungen mit erweiterten Funktionen wie Caching und faulen Laden erläutert. Es deckt Setup, Entity -Mapping und Best Practices zur Optimierung der Leistung ab und hebt potenzielle Fallstricke hervor. [159 Charaktere]

Wie funktioniert der Klassenladungsmechanismus von Java, einschließlich verschiedener Klassenloader und deren Delegationsmodelle?Wie funktioniert der Klassenladungsmechanismus von Java, einschließlich verschiedener Klassenloader und deren Delegationsmodelle?Mar 17, 2025 pm 05:35 PM

Mit der Klassenbelastung von Java wird das Laden, Verknüpfen und Initialisieren von Klassen mithilfe eines hierarchischen Systems mit Bootstrap-, Erweiterungs- und Anwendungsklassenloadern umfasst. Das übergeordnete Delegationsmodell stellt sicher

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Sicherer Prüfungsbrowser

Sicherer Prüfungsbrowser

Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.

MantisBT

MantisBT

Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

SAP NetWeaver Server-Adapter für Eclipse

SAP NetWeaver Server-Adapter für Eclipse

Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

SublimeText3 Englische Version

SublimeText3 Englische Version

Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)