这可能是一个长期问题..
我正在开发一个仅基于 JSP/Javascript 的应用程序(没有 Web 框架!)
有没有办法为 JSP bean 进行依赖注入?jsp beans 我的意思是像这样定义的bean
<jsp:useBean id="cart" scope="session" class="session.Carts" />
Run Code Online (Sandbox Code Playgroud)
有没有一种方法/库/黑客来拦截bean的创建,以便当第一次引用“cart”时,会发生一些注入?
我可以在某处为 JSP bean 定义一个“监听器”吗(例如,就像您可以为 JSF bean 所做的那样)?
我可以在后端自由地做任何我想做的事情,但我无法在前端添加 Web 框架(不要问!)
我想从我的 yaml 文件中加载 POJO 列表。我可以使用蛇 yaml 来做到这一点吗?
我的 yaml 文件看起来像这样——
- pty1:val1
pty2:val2
- pty1:val1
pty2:val2
Run Code Online (Sandbox Code Playgroud)
还有我的 pojo -
class pojo {
String pty1;
String pty2;
}
Run Code Online (Sandbox Code Playgroud)
Snakeyaml 文档确实说要使用 loadAs() ,但这会加载单个元素。我可以使用自动类型绑定加载此类元素的列表吗?
谢谢!
我需要在已定义 POJO 的列表中动态排除某些属性。要序列化的主要 POJO 是:
public class Foo
{
List<Bar> bar;
public void setBar(List<Bar> bar)
{
this.bar = bar;
}
public List<Bar> getBar()
{
return this.bar;
}
public static class Bar
{
private int id;
private boolean ignoreId;
private String name;
public void setId(int id)
{
this.id = id;
}
public int getId()
{
return this.id;
}
public void setIgnoreId(boolean ignoreId)
{
this.ignoreId = ignoreId;
}
public boolean isIgnoreId()
{
return this.ignoreId;
}
public void setName(String name)
{
this.name = …Run Code Online (Sandbox Code Playgroud) 我是 android 新手,我是 usig retrofit。
问题是我无法POJO从请求中获得我的。
我的要求是:
@FormUrlEncoded
@POST("/index.php")
void login(@Field("io") String command,
@Field("lu") String userName,
@Field("lp") String password,
@Field("lm") String imei,
@Field("l") int language,
RestCallback<ModelLoginResponse> callback);
Run Code Online (Sandbox Code Playgroud)
服务器 JSON 响应是:
{
"tk": "thdoz4hwer32",
"pn": "1",
"lc": {
"1": "Opel Combo",
"3": "VW Crafter",
"7": "Opel Vivaro"
},
"stg": {
"rs": "30",
"sml": "http://exemple.mob.ru",
"ssl": "index.php"
}
}
where 1,3,7 are different every time
Run Code Online (Sandbox Code Playgroud)
和我的 POJO 课程:
@Parcel
public class ModelLoginResponse {
@SerializedName("pn")
private String personalNumber;
@SerializedName("tk")
private …Run Code Online (Sandbox Code Playgroud) 在大多数定义中,POJO(Plain Old Java Object)是具有属性和 getter/setter 的对象。有些人将这些命名为 DTO。所以基本上它们就是我喜欢称之为“数据类”的东西。无论名称是什么,我都知道有这些对象只有 getter/setter。这些通常用于开发多层 MVC Web 应用程序 - 这些对象将通过不同的层传递。
也许我的问题有点自以为是——但这是否是纯粹的面向对象编程?我决心找出这个问题的答案,即什么是对的,什么是错的?
...因为,我从小就了解到 OOP 就是通过交互将现实生活中的场景/情况建模为对象。对象本身封装了数据和作用于这些数据的行为。- 在我看来,只有 getter/setter 的对象不符合这个定义。
此外,数据类很糟糕(代码异味)——这就是我在大学里教过的。
对象序列化逻辑(字段到 XML 或 JSON 名称和值的映射)应该放在哪里?在每个实体对象内部或进入一组仅与序列化有关的不同类?与此问题相关的任何其他最佳实践?
例如:
class Person {
String name;
}
Run Code Online (Sandbox Code Playgroud)
有些人是这样处理的:
class Person {
String name;
public String toJson () {
// build JSON, use 'name' field
}
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我们还需要 toXML()、toCSV()、toXYZ() 保持该方向将创建严重污染的代码并破坏单一职责原则,即使使用单个 toJson 方法,恕我直言,该原则已经被打破。
另一种选择,这就是我通常做的:
interface Serializer { public String toJson (); }
class PersonJsonSerializer implements Serializer {
private Person p;
public PersonJsonSerializer (Person p) { this.person = p; }
public String toJson () {
// build JSON, use p.name
}
}
Run Code Online (Sandbox Code Playgroud)
然后工厂根据实体类型分发序列化程序:
class JsonSerializerFactory {
public Serializer …Run Code Online (Sandbox Code Playgroud) 我有一个 JSON 文件,我想将它转换为 POJO,为此我在 maven 中使用 org.jsonschema2pojo 插件。我无法生成结果 pojo。这是 pom.xml 中的片段
<build>
<plugins>
<plugin>
<groupId>org.jsonschema2pojo</groupId>
<artifactId>jsonschema2pojo-maven-plugin</artifactId>
<version>0.4.23</version>
<configuration>
<sourceDirectory>${basedir}/src/main/resources/schema</sourceDirectory>
<targetPackage>${basedir}/src/main/resources/result</targetPackage>
</configuration>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
Run Code Online (Sandbox Code Playgroud)
我在 maven 中使用 generate source 目标。我的期望是它应该在 ${basedir}/src/main/resources/result 位置给我 pojo 文件。但是我越来越了。请帮帮我。谢谢,拉吉特
我正在使用以下示例代码下载我从这篇文章中找到的 pojo :
import h2o
h2o.init()
iris_df = h2o.import_file("https://s3.amazonaws.com/h2o-public-test-data/smalldata/iris/iris.csv")
from h2o.estimators.glm import H2OGeneralizedLinearEstimator
predictors = iris_df.columns[0:4]
response_col = "C5"
train,valid,test = iris_df.split_frame([.7,.15], seed =1234)
glm_model = H2OGeneralizedLinearEstimator(family="multinomial")
glm_model.train(predictors, response_col, training_frame = train, validation_frame = valid)
h2o.download_pojo(glm_model, path = '/Users/your_user_name/Desktop/', get_jar = True)
Run Code Online (Sandbox Code Playgroud)
当我打开下载的 java 文件时,我得到了一些关于如何编译它的说明。以下编译成功:
javac -cp h2o-genmodel.jar -J-Xmx2g -J-XX:MaxPermSize=128m GLM_model_python_1488677745392_2.java
Run Code Online (Sandbox Code Playgroud)
现在,我不确定如何使用它。我尝试了以下方法:
java -cp h2o-genmodel.jar javac -cp h2o-genmodel.jar -J-Xmx2g -J-XX:MaxPermSize=128m GLM_model_python_1488677745392_2.java
Run Code Online (Sandbox Code Playgroud)
以下是pojo中的代码:
/*
Licensed under the Apache License, Version 2.0
http://www.apache.org/licenses/LICENSE-2.0.html
AUTOGENERATED BY H2O at 2017-03-05T01:51:46.237Z
3.10.3.2
Standalone …Run Code Online (Sandbox Code Playgroud) 我目前正在尝试在 Spring Boot 中为已经处于开发阶段的应用程序实现 R2DBC - 不幸的是,这意味着我们的 DDL 不灵活,因为其他微服务依赖于此,反之亦然。R2DBC 的一个重要限制是不支持嵌套类。此外,它不支持 JPA,因为这会破坏全面非阻塞的目的。因此,所有这些有用的注释也不在表中。
我正在处理的类看起来像这样:
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class Stats {
@Id
StatsPK statsPK
@Column(stat_name)
String stat;
...
@Data
@AllArgsConstructor
@NoArgsConstructor
@Embeddable
public static class StatsPK implements Serializable {
@Column("store_id")
private Integer storeId;
@Column("empl_id")
private String emplId;
@Column("app_version")
private String appVersion;
}
}
Run Code Online (Sandbox Code Playgroud)
在研究了我的问题后,我找到了很多方法来计算复合键,包括上面示例中已经显示的内容(使用 @Embeddable 注释),使用自定义 PK 对象(类似,但会有使用为此目的设计的类的选项,例如 CompositeKeyHolder)、JPA @TableId(TableId.class) 注释,以及其他一些似乎不太有希望的注释。
所有这些选项似乎都在使用 JPA 或使用嵌套对象,这是我做不到的。我真的想不出绕过这些限制的方法。但由于我是初学者,我决定询问是否有人以前处理过这个问题。感谢任何反馈。
我有以下控制器:
public interface GetScoreController {
@GetMapping(value = "/score", produces = MediaType.APPLICATION_JSON_VALUE)
@Operation(parameters = {@Parameter(in = ParameterIn.QUERY, name = "request")})
Score getScore(ScoreRequest request);
}
Run Code Online (Sandbox Code Playgroud)
我希望 OpenApiScoreRequest在生成 Swagger 文档时将所有属性显示为查询参数,因为这是请求是 POJO 时的结果:
我不知道实际上 OpenApi 是否允许这样做,但是如果我有太多请求参数,将它们收集到一个独特的 POJO 中会更有用。