提交 f336fa4a 编写于 作者: W wizardforcel

2020-06-09 23:06:03

上级 c950cc9d
......@@ -29,7 +29,7 @@ Table of Contents
#### 2.1 包装图
使用抽象工厂模式参与全球汽车工厂设计的课程的类图。
使用抽象工厂模式参与全球汽车工厂设计的的类图。
![Abstract factory design pattern package diagram](img/539d4a4d7d62c886a580fcd475ecbefe.png "Abstract_factory_package_diagram")
......
......@@ -62,7 +62,7 @@ Support desk > supervisor > manager > director
上面的链也可以使用 Java 中的编程解决方案进行管理,但是在本教程中,我将使用 spring 注入依赖项,从而形成该链。 同样,系统将首先将请求仅分配给前台。
## **参与者的课程图**
## **参与者的图**
我已经绘制了解决方案中涉及的所有实体的结构,如下所示。
......
......@@ -76,7 +76,7 @@ Composite design pattern
在这里,我们正在处理形成树状结构的帐户对象,在该结构中,我们将遍历帐户对象并仅对帐户对象执​​行一些操作,因此可以应用复合设计模式。
让我们来看看参与的课程
让我们来看看参与的
**Component.java**
......
......@@ -110,7 +110,7 @@ public class HelloWorldAction extends Action
> “派生类型必须完全可以替代其基本类型”
这意味着通过扩展我们的课程而创建的同级开发人员应该能够适合应用而不会失败。 这要求子类的对象的行为与父类的对象相同。 这通常在我们进行运行时类型识别然后将其转换为适当的引用类型的地方看到。
这意味着通过扩展我们的而创建的同级开发人员应该能够适合应用而不会失败。 这要求子类的对象的行为与父类的对象相同。 这通常在我们进行运行时类型识别然后将其转换为适当的引用类型的地方看到。
#### 3.1 Liskov 替代原理示例
......
......@@ -58,7 +58,7 @@ public class EmployeeStore implements IEmployeeStore
现在假设产品发布后,我们要求电子邮件内容可以是两种类型,即 HTML 和文本。 上课支持仅文本内容。 你会做什么?
解决此问题的一种方法是创建另一种方法 **sendHtmlEmail()**,但是当我们被要求支持为两种内容类型发送电子邮件的不同协议时会发生什么。 整体课程看起来非常丑陋,难以阅读和维护。
解决此问题的一种方法是创建另一种方法 **sendHtmlEmail()**,但是当我们被要求支持为两种内容类型发送电子邮件的不同协议时会发生什么。 整体看起来非常丑陋,难以阅读和维护。
而且总是有机会在修改期间,某些开发人员可以更改用于共享员工方法的获取/添加员工方法的逻辑。
......
......@@ -52,7 +52,7 @@
#### [可序列化的接口指南](//howtodoinjava.com/java/serialization/a-mini-guide-for-implementing-serializable-interface-in-java/ "A mini guide for implementing serializable interface in java")
我们都知道 Serializable 接口的作用。 但是我们真的知道,您的课程中有哪些更改会破坏您的设计?
我们都知道 Serializable 接口的作用。 但是我们真的知道,您的中有哪些更改会破坏您的设计?
#### [对象初始化最佳做法](//howtodoinjava.com/java/related-concepts/object-initialization-best-practices-internal-caching-in-wrapper-classes/ "Object initialization best practices : Internal caching in wrapper classes")
......
......@@ -2,7 +2,7 @@
> 原文: [https://howtodoinjava.com/gson/google-gson-tutorial/](https://howtodoinjava.com/gson/google-gson-tutorial/)
[**Gson**](https://sites.google.com/site/gson/ "google gson") (由 Google 提供)是可用于*将 Java 对象转换为 JSON 字符串*的 Java 库。 此外,它还可以用于*将 JSON 字符串转换为等效的 Java 对象*
[**Gson**](https://sites.google.com/site/gson/ "google gson")(由 Google 提供)是可用于*将 Java 对象转换为 JSON 字符串*的 Java 库。 此外,它还可以用于*将 JSON 字符串转换为等效的 Java 对象*
还有其他一些 Java 库也可以执行此转换,但是 Gson 处于极少数情况,不需要任何预先注释的 Java 类或 Java 类的源代码。
......@@ -26,7 +26,7 @@ Table of Contents
## 1.先决条件和依赖项
#### 1.1 POJO 课程
#### 1.1 POJO
在介绍示例之前,让我们先准备一个 POJO 类,该类将在给定的示例中使用。
......@@ -79,7 +79,7 @@ compile group: 'com.google.code.gson', name: 'gson', version: '2.8.5'
## 2.创建 Gson 对象
Gson 对象可以通过两种方式创建。 第一种方法为您准备了快速的 Gson 对象,可以进行更快的编码,而第二种方法使用 **`GsonBuilder`** 来构建更复杂的 Gson 对象。
Gson 对象可以通过两种方式创建。 第一种方法为您准备了快速的 Gson 对象,可以进行更快的编码,而第二种方法使用`GsonBuilder`来构建更复杂的 Gson 对象。
```java
//1\. Default constructor
......@@ -97,9 +97,9 @@ Gson gson = new GsonBuilder()
使用`GsonBuilder`时,可以为`Gson`对象提供许多其他[有用选项](https://static.javadoc.io/com.google.code.gson/gson/2.7/com/google/gson/GsonBuilder.html)。 继续检查一下。
## 3\. Gson toJson()– 将 Java 对象转换为 JSON 字符串
## 3\. Gson `toJson() `– 将 Java 对象转换为 JSON 字符串
要将**将对象转换为 json** ,请使用 **`toJson()`** 方法。
要将**将对象转换为 json**,请使用`toJson()`方法。
```java
Employee employee = new Employee();
......@@ -121,7 +121,7 @@ System.out.println(gson.toJson(employee));
```
## 4\. 3\. Gson fromJson()– 将 JSON 字符串转换为 Object
## 4\. 3\. Gson `fromJson()` – 将 JSON 字符串转换为对象
**将 json 解析为对象**,请使用 **`fromJson()`** 方法。
......@@ -141,7 +141,7 @@ Employee [id=1, firstName=Lokesh, lastName=Gupta, roles=[ADMIN, MANAGER]]
```
## 5\. Gson InstanceCreator – 给定对象中不存在无参构造函数时
## 5\. Gson `InstanceCreator`– 给定对象中不存在无参构造函数时
在大多数情况下,即使任何类都不提供默认的无参数构造函数, **Gson** 库也足以创建实例。 但是,如果使用无参数构造函数的类发现任何问题,则可以使用`InstanceCreator`支持。 使用它之前,您需要先向 Gson 注册 Java 类类型的`InstanceCreator`
......@@ -192,7 +192,7 @@ public class Employee
```
要正确使用`Department`类,我们需要为`Department`注册一个 **InstanceCreator** ,如下所示:
要正确使用`Department`类,我们需要为`Department`注册一个`InstanceCreator`,如下所示:
```java
class DepartmentInstanceCreator implements InstanceCreator<Department> {
......@@ -227,13 +227,13 @@ Employee [id=1, firstName=Lokesh, lastName=Gupta, roles=[ADMIN, MANAGER], depart
```
## 6\. Gson 定制序列化和反序列化
## 6\. Gson 自定义序列化和反序列化
很多时候,我们需要写入/读取不是 Java 对象默认表示形式的 JSON 值。 在这种情况下,我们需要编写该 Java 类型的自定义序列化器和反序列化器。
在我们的示例中,我正在为`java.util.Date`类编写序列化器和反序列化器,这将有助于以“ ***dd / MM / yyyy*** ”格式编写日期格式。
在我们的示例中,我正在为`java.util.Date`类编写序列化器和反序列化器,这将有助于以“`dd/MM/yyyy`”格式编写日期格式。
#### 6.1 Gson 定制序列化器
#### 6.1 Gson 自定义序列化器
```java
import java.lang.reflect.Type;
......@@ -256,7 +256,7 @@ public class DateSerializer implements JsonSerializer<Date>
```
#### 6.2 Gson 定制反序列化器
#### 6.2 Gson 自定义反序列化器
```java
import java.lang.reflect.Type;
......@@ -289,7 +289,7 @@ public class DateDeserializer implements JsonDeserializer<Date>
#### 6.3 注册自定义序列化器和反序列化器
现在,您可以在 **`GsonBuilder`** 中注册这些串行器和反序列化器,如下所示:
现在,您可以在`GsonBuilder`中注册这些串行器和反序列化器,如下所示:
```java
GsonBuilder gsonBuilder = new GsonBuilder();
......@@ -298,7 +298,7 @@ gsonBuilder.registerTypeAdapter(Date.class, new DateDeserializer());
```
#### 6.4 Gson 定制序列化器和反序列化器示例
#### 6.4 Gson 自定义序列化器和反序列化器示例
串行器和反序列化器的完整示例如下。
......@@ -334,9 +334,9 @@ Employee [id=1, firstName=Lokesh, lastName=Gupta, roles=[ADMIN, MANAGER], birthD
```
## 7\. Gson setPrettyPrinting()– 精美打印 JSON 输出
## 7\. Gson `setPrettyPrinting()` – 精美打印 JSON 输出
Gson 提供的默认 JSON 输出是紧凑的 JSON 格式。 这意味着在输出 JSON 结构中将没有任何空格。 要生成更具可读性和美观的 JSON,请使用`GsonBuilder`中的 **setPrettyPrinting()**
Gson 提供的默认 JSON 输出是紧凑的 JSON 格式。 这意味着在输出 JSON 结构中将没有任何空格。 要生成更具可读性和美观的 JSON,请使用`GsonBuilder`中的 `setPrettyPrinting()`
```java
Gson gson = new GsonBuilder().setPrettyPrinting().create();
......@@ -360,9 +360,9 @@ String jsonOutput = gson.toJson(employee);
```
## 8\. Gson setVersion()- 版本支持
## 8\. Gson `setVersion()` - 版本支持
如果您正在使用的类文件已在不同版本中进行了修改,并且使用[`@Since`](https://code.google.com/p/google-gson/source/browse/trunk/gson/src/main/java/com/google/gson/annotations/Since.java "since")注释了字段,则可以使用此功能。 您需要做的就是使用`GsonBuilder` **setVersion()**方法。
如果您正在使用的类文件已在不同版本中进行了修改,并且使用[`@Since`](https://code.google.com/p/google-gson/source/browse/trunk/gson/src/main/java/com/google/gson/annotations/Since.java "since")注释了字段,则可以使用此功能。 您需要做的就是使用`GsonBuilder``setVersion()`方法。
```java
GsonBuilder gsonBuilder = new GsonBuilder();
......@@ -377,7 +377,7 @@ Gson gson = gsonBuilder.create();
```
#### 8.1 在 Employee.java 中以各种版本添加的字段
#### 8.1 在`Employee.java`中以各种版本添加的字段
```java
public class Employee
......@@ -398,7 +398,7 @@ public class Employee
```
#### Gson @Since 示例
#### Gson `@Since`示例
```java
//Using version 1.0 fields
......@@ -427,15 +427,15 @@ Output:
## 9.更多的 Gson 教程
1. [Gson-GsonBuilder 教程](https://howtodoinjava.com/library/gson-gsonbuilder-configuration/)
1. [Gson - `GsonBuilder`教程](https://howtodoinjava.com/library/gson-gsonbuilder-configuration/)
2. [Gson – 序列化和反序列化 JSON](https://howtodoinjava.com/library/gson-serialize-deserialize-json/)
3. [Gson – 序列化和反序列化映射](https://howtodoinjava.com/java/serialization/gson-serialize-deserialize-hashmap/)
4. [Gson – 序列化和反序列化设置](https://howtodoinjava.com/library/gson-serialize-deserialize-set/)
4. [Gson – 序列化和反序列化集合](https://howtodoinjava.com/library/gson-serialize-deserialize-set/)
5. [Gson – 序列化和反序列化数组](https://howtodoinjava.com/library/gson-parse-json-array/)
6. [Gson-@SerializedName 注释示例](https://howtodoinjava.com/library/gson-serializedname/)
7. [Gson- 球衣+ Gson 示例](https://howtodoinjava.com/jersey/jax-rs-gson-example/)
6. [Gson - `@SerializedName`注释示例](https://howtodoinjava.com/library/gson-serializedname/)
7. [Gson- Jersey + Gson 示例](https://howtodoinjava.com/jersey/jax-rs-gson-example/)
这就是这个非常有用的 java gson 库的全部内容,可以将**从/对象转换为 JSON** 。 如果您有任何疑问或反馈,请发表评论。
这就是这个非常有用的 java gson 库的全部内容,可以将**对象转换为 JSON** 。 如果您有任何疑问或反馈,请发表评论。
学习愉快!
......
# 杰克逊将对象转换为 json 并将 json 转换为对象
# Jackson 将对象转换为 json 并将 json 转换为对象
> 原文: [https://howtodoinjava.com/jackson/jackson-convert-object-to-from-json/](https://howtodoinjava.com/jackson/jackson-convert-object-to-from-json/)
**Jackson** *将对象转换为 JSON* 示例,*将 json 转换为对象*示例。 学习使用 jackson objectmapper 从 json 字符串填充 Java 对象,并从 java 对象写入 json 字符串。
**Jackson** *将对象转换为 JSON* 示例,*将 json 转换为对象*示例。 学习使用 jackson `objectmapper`从 json 字符串填充 Java 对象,并从 java 对象写入 json 字符串。
Jackson 用于**将 Java 对象转换为 json****则将 json 转换为 Java 对象**。 在这个快速的 **jackson 教程**中,我给出了将 Java 对象以编程方式转换为 json 的示例。
Jackson 用于**将 Java 对象转换为 json****将 json 转换为 Java 对象**。 在这个快速的 **jackson 教程**中,我给出了将 Java 对象以编程方式转换为 json 的示例。
```java
Table of Contents
......@@ -46,13 +46,13 @@ public class Employee
```
## 1.杰克逊依赖
## 1.Jackson 依赖
您可以通过两种方式添加 Jackson 依赖项,具体取决于您的项目类型。
#### 1.1 基于 Maven 的项目
pom.xml 文件中添加以下依赖项。
`pom.xml`文件中添加以下依赖项。
```java
<dependencies>
......@@ -67,11 +67,11 @@ public class Employee
#### 1.2 对于 ANT 或其他项目类型
对于非 Maven 用例,可以从 [Central Maven 仓库](https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/)下载 jar。
对于非 Maven 用例,可以从 [Maven 中央仓库](https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/)下载 jar。
## 2.杰克逊 ObjectMapper
## 2.Jackson `ObjectMapper`
ObjectMapper 是用于数据绑定的主要 API。 它带有几种读取器/写入器方法,以执行从 Java 到 JSON 的转换。 它将使用`JsonParser``JsonGenerator`的实例来实现 JSON 的实际读取/写入。
`ObjectMapper`是用于数据绑定的主要 API。 它带有几种读取器/写入器方法,以执行从 Java 到 JSON 的转换。 它将使用`JsonParser``JsonGenerator`的实例来实现 JSON 的实际读取/写入。
#### 2.1 将 json 转换为对象的语法
......@@ -148,7 +148,7 @@ public class JavaToJSONExample
## 4\. Jackson 精美打印 JSON 输出
如果看上面的输出,那么写在文本文件中的输出是非常原始的并且没有格式化。 您可以使用 ~~`defaultPrettyPrintingWriter()`~~ **`writerWithDefaultPrettyPrinter`** 实例编写格式化的 JSON 内容,如下所示:
如果看上面的输出,那么写在文本文件中的输出是非常原始的并且没有格式化。 您可以使用`writerWithDefaultPrettyPrinter`而不是`defaultPrettyPrintingWriter()`实例编写格式化的 JSON 内容,如下所示:
```java
package test.jackson;
......@@ -199,7 +199,7 @@ public class JavaToPrettyJSONExample
## 5\. Jackson 将 JSON 转换为 Java 对象
要将 json 字符串转换为 java 对象(例如 Employee 对象),请使用以下代码:
要将 json 字符串转换为 java 对象(例如`Employee`对象),请使用以下代码:
```java
package test.jackson;
......@@ -243,6 +243,6 @@ Employee [id=1, firstName=Lokesh, lastName=Gupta]
```
Make sure you have defined a default constructor in your POJO class (e.g. `Employee.java` in our case). Jackson uses default constructor to create the instances of java class using reflection. If default constructor is not provided, then you will get `JsonMappingException` in runtime.
确保在 POJO 类中定义了默认的构造函数(例如,本例中为`Employee.java`)。 Jackson 使用默认构造函数通过反射来创建 Java 类的实例。 如果没有提供默认的构造函数,那么您将在运行时得到`JsonMappingException`
学习愉快!
\ No newline at end of file
......@@ -7,20 +7,21 @@
## 1)JAXB 注释列表
| 注解 | 范围 | 描述 |
| --- | --- | --- |
| [`@XmlRootElement`](#XmlRootElement) | 类,枚举 | 定义 XML 根元素。 根 Java 类在创建时需要在 JAXB 上下文中注册。 |
| [`@XmlAccessorType`](#XmlAccessorType) | 包装,等级 | 定义 JAXB 引擎用于绑定的 Java 类的字段和属性。 它具有四个值:`PUBLIC_MEMBER``FIELD``PROPERTY``NONE`。 |
| [`@XmlAccessorOrder`](#XmlAccessorOrder) | Package, Class | 定义子项的顺序。 |
| [`@XmlType`](#XmlType) | Class, Enum | 将 Java 类映射到架构类型。 它定义了其子类型的名称和顺序。 |
| [`@XmlElement`](#XmlElement) | 领域 | 将字段或属性映射到 XML 元素 |
| [`@XmlAttribute`](#XmlAttribute) | Field | 将字段或属性映射到 XML 属性 |
| [`@XmlTransient`](#XmlTransient) | Field | 防止将字段或属性映射到 XML 模式 |
| [`@XmlValue`](#XmlValue) | Field | 将字段或属性映射到 XML 标记上的文本值。 |
| [`@XmlAccessorType`](#XmlAccessorType) | 包,类 | 定义 JAXB 引擎用于绑定的 Java 类的字段和属性。 它具有四个值:`PUBLIC_MEMBER``FIELD``PROPERTY``NONE`。 |
| [`@XmlAccessorOrder`](#XmlAccessorOrder) | 包,类 | 定义子项的顺序。 |
| [`@XmlType`](#XmlType) | 类,枚举 | 将 Java 类映射到架构类型。 它定义了其子类型的名称和顺序。 |
| [`@XmlElement`](#XmlElement) | 字段 | 将字段或属性映射到 XML 元素 |
| [`@XmlAttribute`](#XmlAttribute) | 字段 | 将字段或属性映射到 XML 属性 |
| [`@XmlTransient`](#XmlTransient) | 字段 | 防止将字段或属性映射到 XML 模式 |
| [`@XmlValue`](#XmlValue) | 字段 | 将字段或属性映射到 XML 标记上的文本值。 |
| [`@XmlList`](#XmlList) | 字段,参数 | 将集合映射到以空格分隔的值列表。 |
| [`@XmlElementWrapper`](#XmlElementWrapper) | Field | 将 Java 集合映射到 XML 包装的集合 |
| [`@XmlElementWrapper`](#XmlElementWrapper) | 字段 | 将 Java 集合映射到 XML 包的集合 |
> 阅读更多:[将 Java 对象转换为 XML](https://howtodoinjava.com/jaxb/write-object-to-xml/)
#### 1.1)@XmlRootElement
#### 1.1)`@XmlRootElement`
这将类或枚举类型映射到 XML 根元素。 当使用`@XmlRootElement`注解对顶级类或枚举类型进行注解时,则其值将表示为 XML 文档中的 XML 元素。
......@@ -44,7 +45,7 @@ public class Employee implements Serializable
```
#### 1.2)@XmlAccessorType
#### 1.2)`@XmlAccessorType`
它定义 JAXB 引擎用来包含到生成的 XML 中的 Java 类的字段或属性。 它有四个可能的值。
......@@ -66,7 +67,7 @@ public class Employee implements Serializable
```
Above will result into:
以上将产生:
```java
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
......@@ -78,7 +79,7 @@ Above will result into:
```
#### 1.3)@XmlAccessorOrder
#### 1.3)`@XmlAccessorOrder`
控制类中字段和属性的顺序。 您可以具有预定义的值`ALPHABETICAL``UNDEFINED`
......@@ -95,7 +96,7 @@ public class Employee implements Serializable
```
Above will result into:
以上将产生:
```java
<?xml version="1.0" encoding="UTF-8"?>
......@@ -111,7 +112,7 @@ Above will result into:
```
#### 1.4)@XmlType
#### 1.4)`@XmlType`
它将 Java 类或枚举类型映射到架构类型。 它定义了其子代的类型名称,名称空间和顺序。 它用于将架构中的元素与模型中的元素进行匹配。
......@@ -128,7 +129,7 @@ public class Employee implements Serializable
```
#### 1.5)@XmlElement
#### 1.5)`@XmlElement`
将 JavaBean 属性映射到从属性名称派生的 XML 元素。
......@@ -148,7 +149,7 @@ public class Employee implements Serializable
```
Above will result into:
以上将产生:
```java
<?xml version="1.0" encoding="UTF-8"?>
......@@ -159,7 +160,7 @@ Above will result into:
```
#### 1.6)@XmlAttribute
#### 1.6)`@XmlAttribute`
将 JavaBean 属性映射到 XML 属性。
......@@ -177,7 +178,7 @@ public class Employee implements Serializable
```
Above will result into:
以上将产生:
```java
<?xml version="1.0" encoding="UTF-8"?>
......@@ -192,7 +193,7 @@ Above will result into:
```
#### 1.7)@XmlTransient
#### 1.7)`@XmlTransient`
防止将 JavaBean 属性/类型映射到 XML 表示形式。 当放置在一个类上时,它指示该类不应单独映射到 XML。 此类的属性将与其派生类一起映射到 XML,就好像该类是内联的一样。
......@@ -213,7 +214,7 @@ public class Employee implements Serializable
```
Above will result into:
以上将产生:
```java
<?xml version="1.0" encoding="UTF-8"?>
......@@ -228,11 +229,11 @@ Above will result into:
```
#### 1.8)@XmlValue
#### 1.8)`@XmlValue`
允许将类映射到具有 simpleContent 或 XML Schema 简单类型的 XML Schema 复杂类型。 它与架构映射到模型映射的关系更大。
允许将类映射到具有`simpleContent`或 XML Schema 简单类型的 XML Schema 复杂类型。 它与架构映射到模型映射的关系更大。
#### 1.9)@XmlList
#### 1.9)`@XmlList`
用于将属性映射到列表简单类型。 它允许将多个值表示为单个元素中的**由空格分隔的标记**
......@@ -277,9 +278,9 @@ public class Employee implements Serializable
]
#### 1.10)@XmlElementWrapper
#### 1.10)`@XmlElementWrapper`
围绕 XML 表示生成包装器元素。 它主要用于在集合周围产生包装 XML 元素。 因此,它必须与 collection 属性一起使用。
围绕 XML 表示生成包器元素。 它主要用于在集合周围产生包 XML 元素。 因此,它必须与`collection`属性一起使用。
```java
@XmlRootElement(name = "employee")
......@@ -293,7 +294,7 @@ public class Employee implements Serializable
```
Above will result into:
以上将产生:
```java
<?xml version="1.0" encoding="UTF-8"?>
......@@ -307,7 +308,7 @@ Above will result into:
```
## 2)JAXB 注示例
## 2)JAXB 注示例
学习在模型类上应用 JAXB 注解,然后将对象编组到 XML 文件中。
......@@ -420,4 +421,4 @@ public class JaxbExample
学习愉快!
参考: [JAXB 注释 Java 文档](https://docs.oracle.com/javaee/6/api/javax/xml/bind/annotation/adapters/XmlJavaTypeAdapter.html)
\ No newline at end of file
参考: [JAXB 注解 Java 文档](https://docs.oracle.com/javaee/6/api/javax/xml/bind/annotation/adapters/XmlJavaTypeAdapter.html)
\ No newline at end of file
# JAXB @XmlRootElement 注释示例
# JAXB `@XmlRootElement`注解示例
> 原文: [https://howtodoinjava.com/jaxb/xmlrootelement-annotation/](https://howtodoinjava.com/jaxb/xmlrootelement-annotation/)
**[JAXB](https://howtodoinjava.com/jaxb/jaxb-annotations/) @XmlRootElement 注解**的 Java 示例及其在编组和解组操作期间的用法详细说明。
**[JAXB](https://howtodoinjava.com/jaxb/jaxb-annotations/) `@XmlRootElement`注解**的 Java 示例及其在编组和解组操作期间的用法详细说明。
## 1\. JAXB @XmlRootElement 注解类型
## 1\. JAXB `@XmlRootElement`注解类型
`@XmlRootElement`将类或[枚举类型](https://howtodoinjava.com/java/enum/guide-for-understanding-enum-in-java/)映射到 XML 元素。 当使用`@XmlRootElement`注解注释顶级类或枚举类型时,则其值在 XML 文档中表示为 XML 元素。
`@XmlRootElement`注释可以与以下注释一起使用:`XmlType``XmlEnum``XmlAccessorType``XmlAccessorOrder`
#### 1.1
#### 1.1
```java
//Without name attribute
......@@ -21,11 +21,11 @@
```
## 2\. JAXB @XmlRootElement 示例
## 2\. JAXB `@XmlRootElement`示例
现在来看几个使用`@XmlRootElement`更改 XML 表示形式的示例。
#### 2.1 @XmlRootElement 具有“名称”属性
#### 2.1 具有`name`属性的`@XmlRootElement`
```java
@XmlRootElement(name = "employee")
......@@ -52,7 +52,7 @@ public class EmployeeData implements Serializable {
```
#### 2.2 @XmlRootElement,不带“名称”属性
#### 2.2 不带`name`属性的`@XmlRootElement`
```java
@XmlRootElement
......@@ -68,7 +68,7 @@ public class EmployeeData implements Serializable {
```
Above converts to:
以上转换为:
```java
<EmployeeData>
......@@ -83,4 +83,4 @@ Above converts to:
学习愉快!
参考: [XmlRootElement Java 文档](https://docs.oracle.com/javase/7/docs/api/javax/xml/bind/annotation/XmlRootElement.html)
\ No newline at end of file
参考: [`XmlRootElement` Java 文档](https://docs.oracle.com/javase/7/docs/api/javax/xml/bind/annotation/XmlRootElement.html)
\ No newline at end of file
......@@ -75,7 +75,7 @@ public class Employee implements Serializable {
```
Above converts to:
以上转换为:
```java
<employee>
......@@ -113,7 +113,7 @@ public class Employee implements Serializable {
```
Above converts to:
以上转换为:
```java
<employee>
......
......@@ -73,7 +73,7 @@ public class Employee implements Serializable {
缺少`@XmlRootElement`注解时,JAXB 无法为`Employee`对象构建[`JAXBElement`](https://docs.oracle.com/javaee/7/api/javax/xml/bind/JAXBElement.html)实例。 这就是我们必须帮助 JAXB 手动构建它的地方。
#### 2.1
#### 2.1
```java
/**
......
......@@ -85,7 +85,7 @@ public class Employee implements Serializable {
缺少`@XmlRootElement`注解时,JAXB 无法为`Employee`对象构建`JAXBElement`实例。 因此,您必须在此帮助 JAXB 手动构建它。
#### 2.1
#### 2.1
```java
/**
......
# 杰克逊 2 – 将 Java 对象转换为 JSON,并将 JSON 字符串转换为对象
# Jackson 2 – 将 Java 对象转换为 JSON,并将 JSON 字符串转换为对象
> 原文: [https://howtodoinjava.com/jackson/jackson-2-convert-json-to-from-java-object/](https://howtodoinjava.com/jackson/jackson-2-convert-json-to-from-java-object/)
......@@ -12,7 +12,7 @@ Convert Java object to JSON
Convert JSON to Java object
```
## 1.杰克逊 2 专家的依赖
## 1.Jackson 2 专家的依赖
要将 Jackson 2 库包含在您的项目中,请在 pom.xml 中包含以下依赖项。
......
# 杰克逊将对象转换为 json 并将 json 转换为对象
# Jackson将对象转换为 json 并将 json 转换为对象
> 原文: [https://howtodoinjava.com/jackson/jackson-convert-object-to-from-json/](https://howtodoinjava.com/jackson/jackson-convert-object-to-from-json/)
......@@ -46,7 +46,7 @@ public class Employee
```
## 1.杰克逊依赖
## 1.Jackson依赖
您可以通过两种方式添加 Jackson 依赖项,具体取决于您的项目类型。
......@@ -69,7 +69,7 @@ public class Employee
对于非 Maven 用例,可以从 [Central Maven 仓库](https://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/)下载 jar。
## 2.杰克逊 ObjectMapper
## 2.Jackson ObjectMapper
ObjectMapper 是用于数据绑定的主要 API。 它带有几种读取器/写入器方法,以执行从 Java 到 JSON 的转换。 它将使用`JsonParser``JsonGenerator`的实例来实现 JSON 的实际读取/写入。
......
# 杰克逊 – 将 JSON 转换为 Map 并将 Map 转换为 JSON
# Jackson – 将 JSON 转换为 Map 并将 Map 转换为 JSON
> 原文: [https://howtodoinjava.com/jackson/jackson-json-to-from-hashmap/](https://howtodoinjava.com/jackson/jackson-json-to-from-hashmap/)
......
......@@ -77,6 +77,6 @@ Git 是开源的,免费的。 此外,开发人员可以在各种平台(如
**关于作者:**
以上文章由该博客的其中一位读者 Pradeep Kumar( [**@pradeepkumarl**](https://twitter.com/pradeepkumarl) )提供。 他是一位拥有 10 多年经验的软件开发人员,并且曾使用过各种版本控制工具,例如 SVN,Perforce,ClearCase 和 Git。 他对技术充满热情,并热爱教技术。 您可以在 [**Git – 专家新手**](http://prashdeep.usefedora.com) 上查看他的在线课程之一。
以上文章由该博客的其中一位读者 Pradeep Kumar( [**@pradeepkumarl**](https://twitter.com/pradeepkumarl) )提供。 他是一位拥有 10 多年经验的软件开发人员,并且曾使用过各种版本控制工具,例如 SVN,Perforce,ClearCase 和 Git。 他对技术充满热情,并热爱教技术。 您可以在 [**Git – 专家新手**](http://prashdeep.usefedora.com) 上查看他的在线之一。
**祝您学习愉快!**
\ No newline at end of file
......@@ -43,6 +43,6 @@
**关于作者:**
以上文章由该博客的其中一位读者 Pradeep Kumar( [**@pradeepkumarl**](https://twitter.com/pradeepkumarl) )提供。 他是一位拥有 10 多年经验的软件开发人员,并且曾使用过各种版本控制工具,例如 SVN,Perforce,ClearCase 和 Git。 他对技术充满热情,并热爱教技术。 您可以在 [**Git – 专家新手**](http://prashdeep.usefedora.com) 上查看他的在线课程之一。
以上文章由该博客的其中一位读者 Pradeep Kumar( [**@pradeepkumarl**](https://twitter.com/pradeepkumarl) )提供。 他是一位拥有 10 多年经验的软件开发人员,并且曾使用过各种版本控制工具,例如 SVN,Perforce,ClearCase 和 Git。 他对技术充满热情,并热爱教技术。 您可以在 [**Git – 专家新手**](http://prashdeep.usefedora.com) 上查看他的在线之一。
**祝您学习愉快!**
\ No newline at end of file
......@@ -97,7 +97,7 @@ Tomcat 的默认配置包括名为 **localhost** 的主机。 可以通过在文
**服务是驻留在服务器内部的一个中间组件,并且将一个或多个连接器与一个引擎完全绑定在一起。** Tomcat 的默认配置包括服务 Catalina,该服务将 HTTP 和 AJP 连接器关联到 Catalina 引擎。 因此,连接器和引擎是 Service 元素的子元素。
用户很少定制 Service 元素,因为默认实现很简单并且足够。
用户很少自定义 Service 元素,因为默认实现很简单并且足够。
#### **服务器[第 2 行]**
......
......@@ -175,7 +175,7 @@ public enum EnumSingleton {
假设您的应用是分布式的,并且经常将对象序列化到文件系统中,直到以后需要时才读取它们。 请注意,反序列化总是创建一个新实例。 我们来看一个例子:
我们的单例课程是:
我们的单例是:
```java
public class DemoSingleton implements Serializable {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册