小编nie*_*els的帖子

如何扩展playframework?

有时需要扩展框架.有时需要挂钩请求/响应生命周期,例如参数绑定或编写安全模块.怎么可以在playframework 1.x中完成?

playframework playframework-1.x

30
推荐指数
1
解决办法
8913
查看次数

Ebean或锡耶纳有多成熟?

在上一次我听到很多关于hibernate的抱怨.事实上,我对休眠也有一些痛苦的经历.所以我读到了Ebean锡耶纳.

两者都有有趣的方法.不幸的是,数据库访问层很容易编写,但是如果你的项目增长并且你必须处理好的数据库表,你知道它们是否好.所以评估这样一个工具真的很难.Hibernate是众所周知的,你可以肯定你可以用它来解决你的问题.有时你需要学习很多,但你可以解决它.

Ebean怎么样?有没有真实的应用程序?支持哪些数据库?它可靠吗?

在搜索了一下后,我发现有更多的ORM框架,那么至少有一个可靠的框架吗?

java orm persistence siena ebean

25
推荐指数
2
解决办法
6509
查看次数

没有tomcat嵌入式的spring boot war

我想创建一个没有嵌入式tomcat和maven的war文件.这是我的pom的相关部分

...
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.1.6.RELEASE</version>
</parent>
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
    <!-- Add tomcat only if I want to run directly -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>
</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>
...
Run Code Online (Sandbox Code Playgroud)

如果我运行mvn包我得到一个战争,其中tomcat*.jar在提供的lib文件夹中,但仍然在lib文件夹中.我读了build-tool-plugins-maven-packaging,但找不到什么问题.

我知道一个主要的想法是将其作为一个应用程序运行,我们的客户希望如何将其部署在他的应用程序服务器上.

spring war maven spring-boot

24
推荐指数
4
解决办法
5万
查看次数

如何为play-framework编写自定义检查/验证

我尝试为play-framework编写检查,并看到两种不同的可能性.我描述了两者,并想知道我的理解是否正确(所以它更像是一个教程而不是一个问题,特别是因为我没有得到任何我错过的回复).那么存在什么可能性.

  1. 简单方法:扩展类Check:
    优点:更易于编写,更易于阅读
    缺点:您无法对参数进行参数化检查,您只能定义消息.
  2. 高级方法:根据OVal编写支票AbstractAnnotationCheck.
    优点:您可以参数化检查并使用更简单的注释
    缺点:稍微复杂一点.

在我们查看实现之前,我想解释一下这些消息.您始终可以直接设置消息,也可以使用密钥在消息属性中引用消息.最后一个是更清洁和推荐的方式.每个验证都至少获得1个参数:属性的名称无效.因此,验证或检查特定参数总是%i$s在i> 1的情况下引用.消息字符串的格式应遵循Formatter的规则,但我不确定是否支持所有功能.据我所知只有%s,%d和%f支持定位.所以%[argument_index$][flags]conversion转换只能是s,d或f.

让我们看看两个例子:我在模块中用于乐观锁定的简单方法:

/**
 * Check with proof if the version of the current edited object is lesser
 * than the version in db.
 * Messagecode: optimisticLocking.modelHasChanged
 * Parameter: 1 the request URL.
 * Example-Message: The object was changed. <a href="%2$s">Reload</a> and do your changes again.
 *
 */
static class OptimisticLockingCheck extends Check {

    /**
     * {@inheritDoc}
     */
    @Override
    public boolean …
Run Code Online (Sandbox Code Playgroud)

java validation playframework

19
推荐指数
1
解决办法
8546
查看次数

如何影响播放控制器中的重定向行为?

在游戏中,如果从控制器的公共方法调用,则始终遵循Redirect-After-Post-Pattern.在大多数情况下,这是一种很好的行为,但有时它可能是令人讨厌的.所以我试着找出它在play 1.1中是如何工作的!:基本是一些字节码增强,这是在play.classloading.enhancers.ControllersEnhancer.在那里你可以发现仍然存在一些默认行为的例外:

  1. 如果您的方法由包中的注释注释play.mvc,例如Before-annotation.
  2. 您使用ByPass-Annotation 注释您的操作,此Annotation必须是内部类,因此名称endsWith $ByPass.

如果您总是想要抑制重定向,那么这两种解决方案都可以.但是如果你只想在特殊情况下这样做呢?然后你可以打电话ControllerInstrumentation.initActionCall().

我没有找到关于它的描述,我只是分析代码.那么我的结论是正确的还是有任何缺点?

playframework playframework-1.x

13
推荐指数
1
解决办法
1195
查看次数

如何在playframework 2.0上设置eclipse-ide工作

Github上有一个如何从头开始构建框架的描述.我多么想了解一些事情是如何在内部工作的,所以我想设置Eclipse-IDE以使其尽可能舒适.有没有人描述如何轻松完成这项工作?

为了说清楚,我不想知道如何设置eclipse来处理play-project.

scala playframework-2.0

9
推荐指数
1
解决办法
5336
查看次数

如何在play2.0中操作Session,Request和Response进行测试

嗨我有一个身份验证服务,它可以处理Request(一些Header-Data和Cookie),Response(设置或删除cookie)和session(存储userId和rememberMe-information).

在播放1.x中很容易伪造请求,响应,Cookie和会话.它可以轻松设置Session.current().set(new Session()).在游戏2.0中,这不再起作用.

如何在请求中添加cookie?我怎么能操纵会话?我看到存在FakeApplication和FakeRequest,但我没有得到它,如何使用它们.

任何提示都表示赞赏.

playframework-2.0

7
推荐指数
2
解决办法
8338
查看次数

自定义配置文件 - 播放!框架2.0

我有一个关于从自定义配置文件加载属性的问题.我已经尝试了两种不同的方法来加载我的oauth.properties文件,但我无法工作,所以我希望有人可以帮助我.

我尝试的第一种方法是将文件添加到conf目录并因此引用它:

String oauthPropertiesFile = ClassLoader.getSystemResource("oauth.properties").getFile();
Run Code Online (Sandbox Code Playgroud)

但那刚刚回来了NULL.

我尝试的第二种方法是添加:

@include.oauthProperties = oauth.properties
Run Code Online (Sandbox Code Playgroud)

application.conf文件,然后在我的控制器中引用它,如:

String clientId = oauthProperties.clientId;
Run Code Online (Sandbox Code Playgroud)

但是这不会编译.

任何人都可以解释我在这里做错了什么吗?

java file custom-configuration playframework-2.0

7
推荐指数
3
解决办法
1万
查看次数

如何恢复协程的真实通话记录?

对于使用异步API的任何人来说,这都是一个痛苦的熟悉问题:当您的调用遇到故障时,异步库的私有线程会检测到它,创建一个异常对象,并将其传递给您的回调。值得一毛钱的唯一信息就是该消息及其类型。堆栈跟踪毫无价值。

与Google Play报告应用程序崩溃的方式混杂在一起:消息被剥离,而您得到的只是堆栈跟踪。现在,您已一无所有。您只知道您的应用程序存在您在自己的测试中未检测到的错误。

Kotlin的协程至少给我们一些希望,可以将其做得更好。协程堆栈跟踪在概念上在那里,只是很难提取。但是,当前我们获得的堆栈跟踪与我上面描述的相同,没有用。

我熟悉kotlinx-coroutines-debug模块,并且在实现方面有一些规定可以重新创建协程堆栈跟踪,但是如何在用户智能手机上安装的生产应用程序中利用这些功能?

android kotlin kotlin-coroutines

7
推荐指数
2
解决办法
169
查看次数

Android中可能存在哪些安全问题

为了理解在Android设备上应该如何保护强大的数据,我想了解哪些攻击是可能的.我开始写下我的知识,并希望得到更正,我错了或我遗失的地方.我首先假设谷歌不是邪恶的,所以将忽略谷歌自己的攻击.

每个应用程序进行签名,并以自己的用户ID运行,因此应用程序只能读取属于他的数据,除了应用程序创建一个公共的存储.此外,使用相同密钥签名的app可以共享数据.如果应用程序想要获得特殊权限,例如阅读或写入日历或联系人,则用户必须接受它.

所以默认情况下它是一个安全的设计.不幸的是,每个系统都存在安全问题,因此系统会损坏.在桌面系统上定期更新是常见的做法.在Android上它取决于供应商,除了Nexus大多是坏的.因此可能存在长期打开的安全漏洞.

那么Android手机怎么会被攻击?

  1. Google可以静默删除和安装应用(链接).如果某人破解了这种机制,攻击者可以在设备上安装任意应用程序.不确定此应用程序是否自动拥有它想拥有的所有权限.直到现在才发生这种情况,但这是可能的.您只能通过定期检查所有已安装的应用和权限来保护您的手机.这种机制可能被黑客滥用.

  2. 恶意应用程序可以做很多坏事,但如果你不给每一个应用程序的应用程序想要的权利,并认为一点点,可以保护您的手机.

  3. 浏览器或系统中的某些安全漏洞允许应用程序获得root访问权限.在这种情况下,应用程序可以执行它想要的一切.我不知道有任何保护措施.据我所知,android有这样的安全漏洞,所以这是最危险的问题.

总而言之,对数据的唯一安全保护似乎是加密.取决于您的数据必须使用默认密钥或单个密钥(换句话说是密码)的安全性.

security android

6
推荐指数
1
解决办法
1190
查看次数

为什么所有领域都在playframework中公开?

我仍然在质疑为什么使用playframework类中的所有字段都应该公开?

class A {
  public int a;
  public int b;
}
Run Code Online (Sandbox Code Playgroud)

一些简短的解释会很好.

据我所知,如果它们是公开的,那么playframework会为它们使用生成的隐形getter和setter吗?但如果他们是私人的,那么......没有吸气剂和二传手,然后我应该自己写呢?

如果它有效,为什么那么这不再是Java了?我觉得这太简单了.

java playframework-1.x

5
推荐指数
1
解决办法
1256
查看次数

如何以编程方式禁用Android USB调试

某些三星Android手机有一个错误,如果插入USB,USB调试会自动打开.这显然是一个安全问题.我想编写一个程序来禁用USB调试,这样我就可以在插入usb-plug时启动它.关于如何做到这一点的任何想法?

debugging usb android

4
推荐指数
1
解决办法
1万
查看次数