SpringBoot 3.2.1 with Java 17
This commit is contained in:
parent
b783830058
commit
f5539d4f5f
@ -1,4 +1,4 @@
|
|||||||
FROM openjdk:11-jdk
|
FROM openjdk:17-jdk
|
||||||
COPY . /ws
|
COPY . /ws
|
||||||
WORKDIR /ws
|
WORKDIR /ws
|
||||||
ENTRYPOINT ["./mvnw", "spring-boot:run", "-f", "pom.xml"]
|
ENTRYPOINT ["./mvnw", "spring-boot:run", "-f", "pom.xml"]
|
@ -1,4 +1,4 @@
|
|||||||
# How construct `WebServices` with SpringBoot 2.1.5 RELEASE (modern way)
|
# How construct `WebServices` with SpringBoot 3.2.1 and Java 17 (modern way)
|
||||||
|
|
||||||
## Run
|
## Run
|
||||||
```
|
```
|
||||||
|
66
pom.xml
66
pom.xml
@ -6,7 +6,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
<artifactId>spring-boot-starter-parent</artifactId>
|
<artifactId>spring-boot-starter-parent</artifactId>
|
||||||
<version>2.1.5.RELEASE</version>
|
<version>3.2.1</version>
|
||||||
<relativePath /> <!-- lookup parent from repository -->
|
<relativePath /> <!-- lookup parent from repository -->
|
||||||
</parent>
|
</parent>
|
||||||
<groupId>com.manalejandro</groupId>
|
<groupId>com.manalejandro</groupId>
|
||||||
@ -17,7 +17,7 @@
|
|||||||
<description>Demo project for Spring Boot with Web Services</description>
|
<description>Demo project for Spring Boot with Web Services</description>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<java.version>11</java.version>
|
<java.version>17</java.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
@ -40,28 +40,6 @@
|
|||||||
<artifactId>spring-boot-starter-test</artifactId>
|
<artifactId>spring-boot-starter-test</artifactId>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!-- https://github.com/eclipse-ee4j/jaxb-ri/issues/1235 -->
|
|
||||||
<!-- https://mvnrepository.com/artifact/javax.xml.bind/jaxb-api -->
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>javax.xml.bind</groupId>
|
|
||||||
<artifactId>jaxb-api</artifactId>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<!-- https://mvnrepository.com/artifact/javax.activation/activation -->
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>javax.activation</groupId>
|
|
||||||
<artifactId>activation</artifactId>
|
|
||||||
<version>1.1</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<!-- https://mvnrepository.com/artifact/org.glassfish.jaxb/jaxb-runtime -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.glassfish.jaxb</groupId>
|
|
||||||
<artifactId>jaxb-runtime</artifactId>
|
|
||||||
</dependency>
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
@ -71,26 +49,26 @@
|
|||||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||||
</plugin>
|
</plugin>
|
||||||
<!-- Plugin for generate WS classes -->
|
<!-- Plugin for generate WS classes -->
|
||||||
<!-- <plugin> -->
|
<plugin>
|
||||||
<!-- <groupId>org.codehaus.mojo</groupId> -->
|
<groupId>org.codehaus.mojo</groupId>
|
||||||
<!-- <artifactId>jaxb2-maven-plugin</artifactId> -->
|
<artifactId>jaxb2-maven-plugin</artifactId>
|
||||||
<!-- <version>2.4</version> -->
|
<version>3.1.0</version>
|
||||||
<!-- <executions> -->
|
<executions>
|
||||||
<!-- <execution> -->
|
<execution>
|
||||||
<!-- <goals> -->
|
<goals>
|
||||||
<!-- <goal>xjc</goal> -->
|
<goal>xjc</goal>
|
||||||
<!-- </goals> -->
|
</goals>
|
||||||
<!-- </execution> -->
|
</execution>
|
||||||
<!-- </executions> -->
|
</executions>
|
||||||
<!-- <configuration> -->
|
<configuration>
|
||||||
<!-- <sources> -->
|
<sources>
|
||||||
<!-- <source>src/main/resources/person.xsd</source> -->
|
<source>src/main/resources/person.xsd</source>
|
||||||
<!-- </sources> -->
|
</sources>
|
||||||
<!-- <packageName>com.manalejandro.ws.model</packageName> -->
|
<packageName>com.manalejandro.ws.model</packageName>
|
||||||
<!-- <outputDirectory>${project.basedir}/src/main/java</outputDirectory> -->
|
<outputDirectory>${project.basedir}/src/main/java</outputDirectory>
|
||||||
<!-- <clearOutputDir>false</clearOutputDir> -->
|
<clearOutputDir>false</clearOutputDir>
|
||||||
<!-- </configuration> -->
|
</configuration>
|
||||||
<!-- </plugin> -->
|
</plugin>
|
||||||
</plugins>
|
</plugins>
|
||||||
</build>
|
</build>
|
||||||
|
|
||||||
|
@ -1,26 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
||||||
<bindings version="2.1" xmlns="http://java.sun.com/xml/ns/jaxb">
|
|
||||||
<!--
|
|
||||||
|
|
||||||
Este archivo ha sido generado por la arquitectura JavaTM para la implantación de la referencia de enlace (JAXB) XML v2.3.0
|
|
||||||
Visite <a href="https://javaee.github.io/jaxb-v2/">https://javaee.github.io/jaxb-v2/</a>
|
|
||||||
Todas las modificaciones realizadas en este archivo se perderán si se vuelve a compilar el esquema de origen.
|
|
||||||
Generado el: 2019.05.19 a las 11:13:06 PM CEST
|
|
||||||
|
|
||||||
-->
|
|
||||||
<bindings scd="x-schema::tns" xmlns:tns="http://www.manalejandro.com/person">
|
|
||||||
<schemaBindings map="false">
|
|
||||||
<package name="com.manalejandro.ws.model"/>
|
|
||||||
</schemaBindings>
|
|
||||||
<bindings scd="tns:getPersonRequest">
|
|
||||||
<class ref="com.manalejandro.ws.model.GetPersonRequest"/>
|
|
||||||
</bindings>
|
|
||||||
<bindings scd="tns:getPersonResponse">
|
|
||||||
<class ref="com.manalejandro.ws.model.GetPersonResponse"/>
|
|
||||||
</bindings>
|
|
||||||
<bindings scd="~tns:Person">
|
|
||||||
<class ref="com.manalejandro.ws.model.Person"/>
|
|
||||||
</bindings>
|
|
||||||
</bindings>
|
|
||||||
</bindings>
|
|
||||||
|
|
@ -1,71 +0,0 @@
|
|||||||
//
|
|
||||||
// Este archivo ha sido generado por la arquitectura JavaTM para la implantación de la referencia de enlace (JAXB) XML v2.3.0
|
|
||||||
// Visite <a href="https://javaee.github.io/jaxb-v2/">https://javaee.github.io/jaxb-v2/</a>
|
|
||||||
// Todas las modificaciones realizadas en este archivo se perderán si se vuelve a compilar el esquema de origen.
|
|
||||||
// Generado el: 2019.05.19 a las 04:09:02 PM CEST
|
|
||||||
//
|
|
||||||
|
|
||||||
|
|
||||||
package com.manalejandro.ws.model;
|
|
||||||
|
|
||||||
import javax.xml.bind.annotation.XmlAccessType;
|
|
||||||
import javax.xml.bind.annotation.XmlAccessorType;
|
|
||||||
import javax.xml.bind.annotation.XmlElement;
|
|
||||||
import javax.xml.bind.annotation.XmlRootElement;
|
|
||||||
import javax.xml.bind.annotation.XmlType;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>Clase Java para anonymous complex type.
|
|
||||||
*
|
|
||||||
* <p>El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase.
|
|
||||||
*
|
|
||||||
* <pre>
|
|
||||||
* <complexType>
|
|
||||||
* <complexContent>
|
|
||||||
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
|
|
||||||
* <sequence>
|
|
||||||
* <element name="name" type="{http://www.w3.org/2001/XMLSchema}string"/>
|
|
||||||
* </sequence>
|
|
||||||
* </restriction>
|
|
||||||
* </complexContent>
|
|
||||||
* </complexType>
|
|
||||||
* </pre>
|
|
||||||
*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
@XmlAccessorType(XmlAccessType.FIELD)
|
|
||||||
@XmlType(name = "", propOrder = {
|
|
||||||
"name"
|
|
||||||
})
|
|
||||||
@XmlRootElement(name = "getPersonRequest")
|
|
||||||
public class GetPersonRequest {
|
|
||||||
|
|
||||||
@XmlElement(required = true)
|
|
||||||
protected String name;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Obtiene el valor de la propiedad name.
|
|
||||||
*
|
|
||||||
* @return
|
|
||||||
* possible object is
|
|
||||||
* {@link String }
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public String getName() {
|
|
||||||
return name;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Define el valor de la propiedad name.
|
|
||||||
*
|
|
||||||
* @param value
|
|
||||||
* allowed object is
|
|
||||||
* {@link String }
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public void setName(String value) {
|
|
||||||
this.name = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,71 +0,0 @@
|
|||||||
//
|
|
||||||
// Este archivo ha sido generado por la arquitectura JavaTM para la implantación de la referencia de enlace (JAXB) XML v2.3.0
|
|
||||||
// Visite <a href="https://javaee.github.io/jaxb-v2/">https://javaee.github.io/jaxb-v2/</a>
|
|
||||||
// Todas las modificaciones realizadas en este archivo se perderán si se vuelve a compilar el esquema de origen.
|
|
||||||
// Generado el: 2019.05.19 a las 04:09:02 PM CEST
|
|
||||||
//
|
|
||||||
|
|
||||||
|
|
||||||
package com.manalejandro.ws.model;
|
|
||||||
|
|
||||||
import javax.xml.bind.annotation.XmlAccessType;
|
|
||||||
import javax.xml.bind.annotation.XmlAccessorType;
|
|
||||||
import javax.xml.bind.annotation.XmlElement;
|
|
||||||
import javax.xml.bind.annotation.XmlRootElement;
|
|
||||||
import javax.xml.bind.annotation.XmlType;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>Clase Java para anonymous complex type.
|
|
||||||
*
|
|
||||||
* <p>El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase.
|
|
||||||
*
|
|
||||||
* <pre>
|
|
||||||
* <complexType>
|
|
||||||
* <complexContent>
|
|
||||||
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
|
|
||||||
* <sequence>
|
|
||||||
* <element name="Person" type="{http://www.manalejandro.com/person}Person"/>
|
|
||||||
* </sequence>
|
|
||||||
* </restriction>
|
|
||||||
* </complexContent>
|
|
||||||
* </complexType>
|
|
||||||
* </pre>
|
|
||||||
*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
@XmlAccessorType(XmlAccessType.FIELD)
|
|
||||||
@XmlType(name = "", propOrder = {
|
|
||||||
"person"
|
|
||||||
})
|
|
||||||
@XmlRootElement(name = "getPersonResponse")
|
|
||||||
public class GetPersonResponse {
|
|
||||||
|
|
||||||
@XmlElement(name = "Person", required = true)
|
|
||||||
protected Person person;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Obtiene el valor de la propiedad person.
|
|
||||||
*
|
|
||||||
* @return
|
|
||||||
* possible object is
|
|
||||||
* {@link Person }
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public Person getPerson() {
|
|
||||||
return person;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Define el valor de la propiedad person.
|
|
||||||
*
|
|
||||||
* @param value
|
|
||||||
* allowed object is
|
|
||||||
* {@link Person }
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public void setPerson(Person value) {
|
|
||||||
this.person = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,63 +0,0 @@
|
|||||||
//
|
|
||||||
// Este archivo ha sido generado por la arquitectura JavaTM para la implantación de la referencia de enlace (JAXB) XML v2.3.0
|
|
||||||
// Visite <a href="https://javaee.github.io/jaxb-v2/">https://javaee.github.io/jaxb-v2/</a>
|
|
||||||
// Todas las modificaciones realizadas en este archivo se perderán si se vuelve a compilar el esquema de origen.
|
|
||||||
// Generado el: 2019.05.19 a las 04:09:02 PM CEST
|
|
||||||
//
|
|
||||||
|
|
||||||
|
|
||||||
package com.manalejandro.ws.model;
|
|
||||||
|
|
||||||
import javax.xml.bind.annotation.XmlRegistry;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This object contains factory methods for each
|
|
||||||
* Java content interface and Java element interface
|
|
||||||
* generated in the com.manalejandro.ws.model package.
|
|
||||||
* <p>An ObjectFactory allows you to programatically
|
|
||||||
* construct new instances of the Java representation
|
|
||||||
* for XML content. The Java representation of XML
|
|
||||||
* content can consist of schema derived interfaces
|
|
||||||
* and classes representing the binding of schema
|
|
||||||
* type definitions, element declarations and model
|
|
||||||
* groups. Factory methods for each of these are
|
|
||||||
* provided in this class.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
@XmlRegistry
|
|
||||||
public class ObjectFactory {
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: com.manalejandro.ws.model
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public ObjectFactory() {
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create an instance of {@link GetPersonRequest }
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public GetPersonRequest createGetPersonRequest() {
|
|
||||||
return new GetPersonRequest();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create an instance of {@link GetPersonResponse }
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public GetPersonResponse createGetPersonResponse() {
|
|
||||||
return new GetPersonResponse();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create an instance of {@link Person }
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public Person createPerson() {
|
|
||||||
return new Person();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,147 +0,0 @@
|
|||||||
//
|
|
||||||
// Este archivo ha sido generado por la arquitectura JavaTM para la implantación de la referencia de enlace (JAXB) XML v2.3.0
|
|
||||||
// Visite <a href="https://javaee.github.io/jaxb-v2/">https://javaee.github.io/jaxb-v2/</a>
|
|
||||||
// Todas las modificaciones realizadas en este archivo se perderán si se vuelve a compilar el esquema de origen.
|
|
||||||
// Generado el: 2019.05.19 a las 04:09:02 PM CEST
|
|
||||||
//
|
|
||||||
|
|
||||||
|
|
||||||
package com.manalejandro.ws.model;
|
|
||||||
|
|
||||||
import javax.xml.bind.annotation.XmlAccessType;
|
|
||||||
import javax.xml.bind.annotation.XmlAccessorType;
|
|
||||||
import javax.xml.bind.annotation.XmlElement;
|
|
||||||
import javax.xml.bind.annotation.XmlSchemaType;
|
|
||||||
import javax.xml.bind.annotation.XmlType;
|
|
||||||
import javax.xml.datatype.XMLGregorianCalendar;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>Clase Java para Person complex type.
|
|
||||||
*
|
|
||||||
* <p>El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase.
|
|
||||||
*
|
|
||||||
* <pre>
|
|
||||||
* <complexType name="Person">
|
|
||||||
* <complexContent>
|
|
||||||
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
|
|
||||||
* <sequence>
|
|
||||||
* <element name="name" type="{http://www.w3.org/2001/XMLSchema}string"/>
|
|
||||||
* <element name="telephone" type="{http://www.w3.org/2001/XMLSchema}int"/>
|
|
||||||
* <element name="address" type="{http://www.w3.org/2001/XMLSchema}string"/>
|
|
||||||
* <element name="birthday" type="{http://www.w3.org/2001/XMLSchema}date"/>
|
|
||||||
* </sequence>
|
|
||||||
* </restriction>
|
|
||||||
* </complexContent>
|
|
||||||
* </complexType>
|
|
||||||
* </pre>
|
|
||||||
*
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
@XmlAccessorType(XmlAccessType.FIELD)
|
|
||||||
@XmlType(name = "Person", propOrder = {
|
|
||||||
"name",
|
|
||||||
"telephone",
|
|
||||||
"address",
|
|
||||||
"birthday"
|
|
||||||
})
|
|
||||||
public class Person {
|
|
||||||
|
|
||||||
@XmlElement(required = true)
|
|
||||||
protected String name;
|
|
||||||
protected int telephone;
|
|
||||||
@XmlElement(required = true)
|
|
||||||
protected String address;
|
|
||||||
@XmlElement(required = true)
|
|
||||||
@XmlSchemaType(name = "date")
|
|
||||||
protected XMLGregorianCalendar birthday;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Obtiene el valor de la propiedad name.
|
|
||||||
*
|
|
||||||
* @return
|
|
||||||
* possible object is
|
|
||||||
* {@link String }
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public String getName() {
|
|
||||||
return name;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Define el valor de la propiedad name.
|
|
||||||
*
|
|
||||||
* @param value
|
|
||||||
* allowed object is
|
|
||||||
* {@link String }
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public void setName(String value) {
|
|
||||||
this.name = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Obtiene el valor de la propiedad telephone.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public int getTelephone() {
|
|
||||||
return telephone;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Define el valor de la propiedad telephone.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public void setTelephone(int value) {
|
|
||||||
this.telephone = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Obtiene el valor de la propiedad address.
|
|
||||||
*
|
|
||||||
* @return
|
|
||||||
* possible object is
|
|
||||||
* {@link String }
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public String getAddress() {
|
|
||||||
return address;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Define el valor de la propiedad address.
|
|
||||||
*
|
|
||||||
* @param value
|
|
||||||
* allowed object is
|
|
||||||
* {@link String }
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public void setAddress(String value) {
|
|
||||||
this.address = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Obtiene el valor de la propiedad birthday.
|
|
||||||
*
|
|
||||||
* @return
|
|
||||||
* possible object is
|
|
||||||
* {@link XMLGregorianCalendar }
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public XMLGregorianCalendar getBirthday() {
|
|
||||||
return birthday;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Define el valor de la propiedad birthday.
|
|
||||||
*
|
|
||||||
* @param value
|
|
||||||
* allowed object is
|
|
||||||
* {@link XMLGregorianCalendar }
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public void setBirthday(XMLGregorianCalendar value) {
|
|
||||||
this.birthday = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,9 +0,0 @@
|
|||||||
//
|
|
||||||
// Este archivo ha sido generado por la arquitectura JavaTM para la implantación de la referencia de enlace (JAXB) XML v2.3.0
|
|
||||||
// Visite <a href="https://javaee.github.io/jaxb-v2/">https://javaee.github.io/jaxb-v2/</a>
|
|
||||||
// Todas las modificaciones realizadas en este archivo se perderán si se vuelve a compilar el esquema de origen.
|
|
||||||
// Generado el: 2019.05.19 a las 04:09:02 PM CEST
|
|
||||||
//
|
|
||||||
|
|
||||||
@javax.xml.bind.annotation.XmlSchema(namespace = "http://www.manalejandro.com/person", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
|
|
||||||
package com.manalejandro.ws.model;
|
|
@ -4,7 +4,6 @@ import java.util.GregorianCalendar;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import javax.annotation.PostConstruct;
|
|
||||||
import javax.xml.datatype.DatatypeConfigurationException;
|
import javax.xml.datatype.DatatypeConfigurationException;
|
||||||
import javax.xml.datatype.DatatypeFactory;
|
import javax.xml.datatype.DatatypeFactory;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
@ -12,6 +11,8 @@ import org.springframework.util.Assert;
|
|||||||
|
|
||||||
import com.manalejandro.ws.model.Person;
|
import com.manalejandro.ws.model.Person;
|
||||||
|
|
||||||
|
import jakarta.annotation.PostConstruct;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
public class PersonRepository {
|
public class PersonRepository {
|
||||||
private static final Map<String, Person> persons = new HashMap<String, Person>();
|
private static final Map<String, Person> persons = new HashMap<String, Person>();
|
||||||
|
Loading…
Reference in New Issue
Block a user